summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--gst/apetag/gsttagdemux.c2
-rw-r--r--gst/id3demux/gstid3demux.c6
3 files changed, 13 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 731d0795..a8d5ed44 100644
--- 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:
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;