summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2011-07-11 19:03:47 +0000
committerphintuka <phintuka>2011-07-11 19:03:47 +0000
commita35a498c7dccbdee4021dae1e5484787ffa50029 (patch)
treef79fc2a84b9c7dfca067628113753f590e4a5937
parent8693a350e536b3691c16e69b36f01faf1812a052 (diff)
downloadxineliboutput-a35a498c7dccbdee4021dae1e5484787ffa50029.tar.gz
xineliboutput-a35a498c7dccbdee4021dae1e5484787ffa50029.tar.bz2
Handle 20 bit PCM as 24 bit PCM.
BluRay 20 bit PCM = 20 bit samples padded to 24 bits, 4 lowest bits are 0.
-rw-r--r--xine/BluRay/xine_lpcm_decoder.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xine/BluRay/xine_lpcm_decoder.c b/xine/BluRay/xine_lpcm_decoder.c
index c3552688..a17c49d0 100644
--- a/xine/BluRay/xine_lpcm_decoder.c
+++ b/xine/BluRay/xine_lpcm_decoder.c
@@ -125,7 +125,8 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
num_channels = channels[(buf->decoder_info[2] >> (16+4)) & 0x0f];
switch ((buf->decoder_info[2] >> (24+6)) & 0x03) {
case 1: bits_per_sample = 16; break;
- case 2: bits_per_sample = 20; break;
+ case 2: /*bits_per_sample = 20; break;*/
+ /* 20 bits = padded to 24 bits with four zero bits */
case 3: bits_per_sample = 24; break;
default: bits_per_sample = 0; break;
}