diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gst/apetag/gsttagdemux.c | 2 | ||||
-rw-r--r-- | gst/id3demux/gstid3demux.c | 6 |
3 files changed, 13 insertions, 3 deletions
@@ -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: diff --git a/gst/apetag/gsttagdemux.c b/gst/apetag/gsttagdemux.c index 4a18b07c..2dd189a0 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 72bff138..511ef63b 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; |