gst/: Don't interpret a first buffer with an offset of NONE as 'from the middle of...
authorTim-Philipp Müller <tim@centricular.net>
Thu, 14 Sep 2006 11:05:35 +0000 (11:05 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Thu, 14 Sep 2006 11:05:35 +0000 (11:05 +0000)
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain_parse_tag):
* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
Don't interpret a first buffer with an offset of NONE as
'from the middle of the stream', but only a first buffer
that has a valid buffer offset that's non-zero (see #345449).

ChangeLog
gst/apetag/gsttagdemux.c
gst/id3demux/gstid3demux.c

index 731d079..a8d5ed4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2006-09-14  Tim-Philipp Müller  <tim at centricular dot net>
 
+       * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain_parse_tag):
+       * gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
+         Don't interpret a first buffer with an offset of NONE as
+         'from the middle of the stream', but only a first buffer
+         that has a valid buffer offset that's non-zero (see #345449).
+
+2006-09-14  Tim-Philipp Müller  <tim at centricular dot net>
+
        * gst/icydemux/gsticydemux.c: (gst_icydemux_reset),
        (gst_icydemux_typefind_or_forward):
        * gst/icydemux/gsticydemux.h:
index 4a18b07..2dd189a 100644 (file)
@@ -461,7 +461,7 @@ gst_tag_demux_chain_parse_tag (GstTagDemux * demux, GstBuffer * collect)
 
   /* If we receive a buffer that's from the middle of the file, 
    * we can't read tags so move to typefinding */
-  if (GST_BUFFER_OFFSET (collect) != 0) {
+  if (GST_BUFFER_OFFSET_IS_VALID (collect) && GST_BUFFER_OFFSET (collect) != 0) {
     GST_DEBUG_OBJECT (demux, "Received buffer from non-zero offset %"
         G_GINT64_FORMAT ". Can't read tags", GST_BUFFER_OFFSET (collect));
     demux->priv->state = GST_TAG_DEMUX_TYPEFINDING;
index 72bff13..511ef63 100644 (file)
@@ -419,9 +419,11 @@ gst_id3demux_chain (GstPad * pad, GstBuffer * buf)
     case GST_ID3DEMUX_READID3V2:
       /* If we receive a buffer that's from the middle of the file, 
        * we can't read tags so move to typefinding */
-      if (GST_BUFFER_OFFSET (id3demux->collect) != 0) {
+      if (GST_BUFFER_OFFSET_IS_VALID (id3demux->collect) &&
+          GST_BUFFER_OFFSET (id3demux->collect) != 0) {
         GST_DEBUG_OBJECT (id3demux,
-            "Received buffer from non-zero offset. Can't read tags");
+            "Received buffer with non-zero offset %" G_GINT64_FORMAT
+            ". Can't read tags", GST_BUFFER_OFFSET (id3demux->collect));
       } else {
         ID3TagsResult tag_result;