dvdlpcmdec: Fix parsing of headers to set correct width to allow decode.
authorMichael Smith <msmith@rdio.com>
Mon, 5 Nov 2012 21:16:52 +0000 (13:16 -0800)
committerMichael Smith <msmith@rdio.com>
Mon, 5 Nov 2012 21:20:31 +0000 (13:20 -0800)
gst/dvdlpcmdec/gstdvdlpcmdec.c

index 2980f4e..03024b7 100644 (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: