diff --git a/ChangeLog b/ChangeLog index 731d0795ff..a8d5ed4463 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-09-14 Tim-Philipp Müller + + * 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 * gst/icydemux/gsticydemux.c: (gst_icydemux_reset), diff --git a/gst/apetag/gsttagdemux.c b/gst/apetag/gsttagdemux.c index 4a18b07c91..2dd189a0ff 100644 --- a/gst/apetag/gsttagdemux.c +++ b/gst/apetag/gsttagdemux.c @@ -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; diff --git a/gst/id3demux/gstid3demux.c b/gst/id3demux/gstid3demux.c index 72bff1386f..511ef63bc2 100644 --- a/gst/id3demux/gstid3demux.c +++ b/gst/id3demux/gstid3demux.c @@ -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;