diff options
author | Arwed v. Merkatz <v.merkatz@gmx.net> | 2004-08-27 14:10:09 +0000 |
---|---|---|
committer | Arwed v. Merkatz <v.merkatz@gmx.net> | 2004-08-27 14:10:09 +0000 |
commit | 7e9f0b9582399a1e6194cf6d0ba2091674e61d01 (patch) | |
tree | 5dfb554fe3eb5754cc213a834bdc1531a6c61234 /gst/matroska/ebml-read.c | |
parent | 2c45f60b465110d9f47ca8cb24f505e51fd6efda (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.c | 8 |
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; |