From e4a82bdbb101ca8f6fe6a16e3e875901975b5b18 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Mon, 5 Nov 2012 13:16:52 -0800 Subject: [PATCH] dvdlpcmdec: Fix parsing of headers to set correct width to allow decode. --- gst/dvdlpcmdec/gstdvdlpcmdec.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/dvdlpcmdec/gstdvdlpcmdec.c b/gst/dvdlpcmdec/gstdvdlpcmdec.c index 2980f4e6..03024b75 100644 --- a/gst/dvdlpcmdec/gstdvdlpcmdec.c +++ b/gst/dvdlpcmdec/gstdvdlpcmdec.c @@ -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: -- 2.34.1