summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--gst/apetag/apedemux.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4baa93ad..f6141042 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-12-04 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+
+ * gst/apetag/apedemux.c: (gst_ape_demux_stream_init):
+ Let's make sure we're done typefinding when detecting tags.
+
2004-12-03 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/matroska/ebml-read.c: (gst_ebml_read_class_init),
diff --git a/gst/apetag/apedemux.c b/gst/apetag/apedemux.c
index 8767f1c3..0722595c 100644
--- a/gst/apetag/apedemux.c
+++ b/gst/apetag/apedemux.c
@@ -524,6 +524,14 @@ gst_ape_demux_stream_init (GstApeDemux * ape)
/* start off, we'll want byte-reading here */
bs = gst_bytestream_new (ape->sinkpad);
+ /* peek one byte to not confuse the typefinder */
+ while (gst_bytestream_peek_bytes (bs, &data, 1) != 1) {
+ if (!gst_ape_demux_handle_event (ape, bs)) {
+ res = FALSE;
+ goto the_city;
+ }
+ }
+
/* can we seek? */
if (!gst_bytestream_seek (bs, 0, GST_SEEK_METHOD_END)) {
seekable = FALSE;
@@ -599,6 +607,7 @@ gst_ape_demux_stream_init (GstApeDemux * ape)
goto the_city;
}
}
+
if (!memcmp (data, "APETAGEX", 8)) {
GST_LOG ("Found tags at end");