From c42e090accb95c84aa590d894f4c6c0fcd4f92f1 Mon Sep 17 00:00:00 2001 From: Roland Moser Date: Wed, 18 Feb 2009 12:55:16 +0100 Subject: [PATCH] Fix parsing of the flags in rmdemux Fix parsing of the flags in version 1 realmedia streams. Fixes #571358. --- gst/realmedia/rmdemux.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/gst/realmedia/rmdemux.c b/gst/realmedia/rmdemux.c index 9dfd9e7553..fa8ac26c24 100644 --- a/gst/realmedia/rmdemux.c +++ b/gst/realmedia/rmdemux.c @@ -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);