Fix parsing of the flags in rmdemux
authorRoland Moser <rmoser@gmx.at>
Wed, 18 Feb 2009 11:55:16 +0000 (12:55 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 18 Feb 2009 11:55:16 +0000 (12:55 +0100)
Fix parsing of the flags in version 1 realmedia streams.
Fixes #571358.

gst/realmedia/rmdemux.c

index 9dfd9e7..fa8ac26 100644 (file)
@@ -2522,19 +2522,16 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version)
   data += (2 + 4);
   size -= (2 + 4);
 
-  /* skip other stuff */
-  if (version == 0) {
-    /* uint8 packet_group */
-    /* uint8 flags        */
-    flags = GST_READ_UINT8 (data + 1);
-    data += 2;
-    size -= 2;
-  } else {
-    /* uint16 asm_rule */
-    /* uint8 asm_flags */
-    flags = GST_READ_UINT8 (data + 2);
-    data += 3;
-    size -= 3;
+  /* get flags */
+  flags = GST_READ_UINT8 (data + 1);
+
+  data += 2;
+  size -= 2;
+
+  /* version 1 has an extra byte */
+  if (version == 1) {
+    data += 1;
+    size -= 1;
   }
   key = (flags & 0x02) != 0;
   GST_DEBUG_OBJECT (rmdemux, "flags %d, Keyframe %d", flags, key);