summaryrefslogtreecommitdiffstats
path: root/gst/matroska/ebml-read.c
diff options
context:
space:
mode:
authorArwed v. Merkatz <v.merkatz@gmx.net>2004-08-27 14:10:09 +0000
committerArwed v. Merkatz <v.merkatz@gmx.net>2004-08-27 14:10:09 +0000
commit7e9f0b9582399a1e6194cf6d0ba2091674e61d01 (patch)
tree5dfb554fe3eb5754cc213a834bdc1531a6c61234 /gst/matroska/ebml-read.c
parent2c45f60b465110d9f47ca8cb24f505e51fd6efda (diff)
Handle EOS correctly.
Original commit message from CVS: Handle EOS correctly.
Diffstat (limited to 'gst/matroska/ebml-read.c')
-rw-r--r--gst/matroska/ebml-read.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c
index 064d5e1e..00d353dd 100644
--- a/gst/matroska/ebml-read.c
+++ b/gst/matroska/ebml-read.c
@@ -160,8 +160,12 @@ gst_ebml_read_element_id (GstEbmlRead * ebml, guint32 * id, guint * level_up)
/* Here, we might encounter EOS */
gst_bytestream_get_status (ebml->bs, &remaining, &event);
- if (event) {
+ if (event && GST_IS_EVENT (event)) {
+ gboolean eos = (GST_EVENT_TYPE (event) == GST_EVENT_EOS);
+
gst_pad_event_default (ebml->sinkpad, event);
+ if (eos)
+ return FALSE;
} else {
guint64 pos = gst_bytestream_tell (ebml->bs);
@@ -299,7 +303,7 @@ gst_ebml_peek_id (GstEbmlRead * ebml, guint * level_up)
g_assert (level_up);
- if (gst_ebml_read_element_id (ebml, &id, level_up) < 0)
+ if (gst_ebml_read_element_id (ebml, &id, level_up) <= 0)
return 0;
return id;