diff --git a/gst/dvdlpcmdec/gstdvdlpcmdec.c b/gst/dvdlpcmdec/gstdvdlpcmdec.c index 2980f4e63a..03024b753a 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: