From a35a498c7dccbdee4021dae1e5484787ffa50029 Mon Sep 17 00:00:00 2001 From: phintuka Date: Mon, 11 Jul 2011 19:03:47 +0000 Subject: Handle 20 bit PCM as 24 bit PCM. BluRay 20 bit PCM = 20 bit samples padded to 24 bits, 4 lowest bits are 0. --- xine/BluRay/xine_lpcm_decoder.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; } -- cgit v1.2.3