gst-libs/gst/riff/riff-read.c: Fix handling of odd chunks in riff metadata.
authorStefan Kost <ensonic@users.sourceforge.net>
Tue, 9 Dec 2008 17:21:37 +0000 (17:21 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Tue, 9 Dec 2008 17:21:37 +0000 (17:21 +0000)
Original commit message from CVS:
* gst-libs/gst/riff/riff-read.c:
Fix handling of odd chunks in riff metadata.

ChangeLog
gst-libs/gst/riff/riff-read.c

index 7f0dfea..b627288 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-09  Stefan Kost  <ensonic@users.sf.net>
+
+       * gst-libs/gst/riff/riff-read.c:
+         Fix handling of odd chunks in riff metadata.
+
 2008-12-08  Wim Taymans  <wim.taymans@collabora.co.uk>
 
        * gst/volume/gstvolume.c: (gst_volume_class_init),
index dc29cf3..b39ba2c 100644 (file)
@@ -614,6 +614,10 @@ gst_riff_parse_info (GstElement * element,
     tsize = GST_READ_UINT32_LE (data + 4);
     size -= 8;
     data += 8;
+
+    GST_DEBUG ("tag %" GST_FOURCC_FORMAT ", size %u",
+        GST_FOURCC_ARGS (tag), tsize);
+
     if (tsize > size) {
       GST_WARNING_OBJECT (element,
           "Tagsize %d is larger than available data %d", tsize, size);
@@ -715,6 +719,9 @@ gst_riff_parse_info (GstElement * element,
       }
     }
 
+    if (tsize & 1)
+      tsize++;
+
     data += tsize;
     size -= tsize;
   }