summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/id3demux/id3tags.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 45dd94df..6cef9400 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-28 Jan Schmidt <thaytan@mad.scientist.com>
+
+ * gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
+ If a broken tag has 0 bytes payload, at least still skip
+ the 10 byte header
+
2005-12-22 Philippe Khalaf <burger@speedy.org>
* gst-plugins-good/gst/rtp/gstrtph263pdepay.h:
diff --git a/gst/id3demux/id3tags.c b/gst/id3demux/id3tags.c
index 1cc8c14e..e25b4291 100644
--- a/gst/id3demux/id3tags.c
+++ b/gst/id3demux/id3tags.c
@@ -143,9 +143,12 @@ id3demux_read_id3v2_tag (GstBuffer * buffer, guint * id3v2_size,
/* Read the size from the header */
read_size = read_synch_uint (data + 6, 4);
if (read_size == 0) {
+ /* Tag has no frames attached. Ignore it, but skip the header */
+ if (id3v2_size)
+ *id3v2_size = ID3V2_HDR_SIZE;
return ID3TAGS_BROKEN_TAG;
}
- read_size += 10;
+ read_size += ID3V2_HDR_SIZE;
/* Expand the read size to include a footer if there is one */
if (flags & ID3V2_HDR_FLAG_FOOTER) {