dvdlpcmdec: Fix parsing of headers to set correct width to allow decode.

This commit is contained in:
Michael Smith 2012-11-05 13:16:52 -08:00
parent 9c690b2018
commit e4a82bdbb1

View file

@ -360,7 +360,7 @@ static void
parse_header (GstDvdLpcmDec * dec, guint32 header)
{
GstAudioFormat format;
gint rate, channels;
gint rate, channels, width;
/* We don't actually use 'dynamic range', 'mute', or 'emphasis' currently,
* but parse them out */
@ -374,16 +374,21 @@ parse_header (GstDvdLpcmDec * dec, guint32 header)
case 0x8000:
/* 24 bits in 3 bytes */
format = GST_AUDIO_FORMAT_S24BE;
width = 24;
break;
case 0x4000:
/* 20 bits in 3 bytes */
format = GST_AUDIO_FORMAT_S24BE;
width = 20;
break;
default:
format = GST_AUDIO_FORMAT_S16BE;
width = 16;
break;
}
dec->width = width;
/* Only four sample rates supported */
switch (header & 0x3000) {
case 0x0000: