From a616e75b74f6d199ed64c2292f59dc3bf86b4530 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 29 Apr 2004 00:13:16 +0000 Subject: [PATCH] ext/mad/gstid3tag.c: rewrite buffer offset Original commit message from CVS: * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event), (gst_id3_tag_chain): rewrite buffer offset --- ChangeLog | 6 ++++++ ext/mad/gstid3tag.c | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 15fac99910..7fc40e837c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-04-29 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event), + (gst_id3_tag_chain): + rewrite buffer offset + 2004-04-28 Ronald Bultje * configure.ac: diff --git a/ext/mad/gstid3tag.c b/ext/mad/gstid3tag.c index 8b02ec5e74..ade3006cef 100644 --- a/ext/mad/gstid3tag.c +++ b/ext/mad/gstid3tag.c @@ -760,7 +760,10 @@ gst_id3_tag_handle_event (GstPad * pad, GstEvent * event) GST_BUFFER_SIZE (tag->buffer) : 0)) GST_ELEMENT_ERROR (tag, CORE, EVENT, (NULL), - ("Seek during ID3v2 tag reading")); + ("Got seek to %" G_GUINT64_FORMAT " during ID3v2 tag reading" + " (allowed was %" G_GUINT64_FORMAT ")", value, + (guint64) (tag->buffer ? GST_BUFFER_OFFSET (tag->buffer) + + GST_BUFFER_SIZE (tag->buffer) : 0))); } gst_data_unref (GST_DATA (event)); break; @@ -1162,6 +1165,16 @@ gst_id3_tag_chain (GstPad * pad, GstData * data) gst_data_unref (GST_DATA (buffer)); buffer = sub; } + if (tag->v2tag_size) { + GstBuffer *sub = + gst_buffer_create_sub (buffer, 0, GST_BUFFER_SIZE (buffer)); + GST_BUFFER_OFFSET (sub) = + GST_BUFFER_OFFSET (buffer) - tag->v2tag_size; + GST_BUFFER_OFFSET_END (sub) = + GST_BUFFER_OFFSET_END (buffer) - tag->v2tag_size; + gst_data_unref (GST_DATA (buffer)); + buffer = sub; + } gst_pad_push (tag->srcpad, GST_DATA (buffer)); } return;