diff options
| author | phintuka <phintuka> | 2011-07-11 19:03:47 +0000 |
|---|---|---|
| committer | phintuka <phintuka> | 2011-07-11 19:03:47 +0000 |
| commit | a35a498c7dccbdee4021dae1e5484787ffa50029 (patch) | |
| tree | f79fc2a84b9c7dfca067628113753f590e4a5937 | |
| parent | 8693a350e536b3691c16e69b36f01faf1812a052 (diff) | |
| download | xineliboutput-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.c | 3 |
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; } |
