summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-01-15 22:49:11 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-01-15 22:49:11 +0000
commit126c7c995cb1268911bd3c4f20b3cc71d9e6a968 (patch)
treec81c13a24b67df58ff260f6b384a21371470c704 /gst/avi/gstavidemux.c
parentc23749df769ce03804f12026d1cd3d76f61c398b (diff)
Somewhat handle events too.
Original commit message from CVS: Somewhat handle events too.
Diffstat (limited to 'gst/avi/gstavidemux.c')
-rw-r--r--gst/avi/gstavidemux.c37
1 files changed, 19 insertions, 18 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 74d06577..34273b58 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -435,23 +435,6 @@ gst_avidemux_parse_index (GstAviDemux *avi_demux,
buf = gst_pad_pullregion(avi_demux->sinkpad, GST_REGION_OFFSET_LEN, avi_demux->index_offset, 0);
}
-static inline gboolean
-gst_avidemux_read_chunk (GstByteStream *bs, guint32 *id, guint32 *size)
-{
- gst_riff_chunk *chunk;
-
- chunk = (gst_riff_chunk *) gst_bytestream_peek_bytes (bs, sizeof (gst_riff_chunk));
- if (chunk) {
- *id = GUINT32_FROM_LE (chunk->id);
- *size = GUINT32_FROM_LE (chunk->size);
-
- gst_bytestream_flush (bs, sizeof (gst_riff_chunk));
-
- return TRUE;
- }
- return FALSE;
-}
-
static void
gst_avidemux_forall_pads (GstAviDemux *avi_demux, GFunc func, gpointer user_data)
{
@@ -505,6 +488,24 @@ gst_avidemux_handle_event (GstAviDemux *avi_demux)
return TRUE;
}
+static inline gboolean
+gst_avidemux_read_chunk (GstAviDemux *avi_demux, guint32 *id, guint32 *size)
+{
+ gst_riff_chunk *chunk;
+ GstByteStream *bs = avi_demux->bs;
+
+ chunk = (gst_riff_chunk *) gst_bytestream_peek_bytes (bs, sizeof (gst_riff_chunk));
+ if (chunk) {
+ *id = GUINT32_FROM_LE (chunk->id);
+ *size = GUINT32_FROM_LE (chunk->size);
+
+ gst_bytestream_flush (bs, sizeof (gst_riff_chunk));
+
+ return TRUE;
+ }
+ return gst_avidemux_handle_event (avi_demux);
+}
+
static gboolean
gst_avidemux_process_chunk (GstAviDemux *avi_demux, guint64 *filepos,
guint32 desired_tag,
@@ -513,7 +514,7 @@ gst_avidemux_process_chunk (GstAviDemux *avi_demux, guint64 *filepos,
guint32 chunkid;
GstByteStream *bs = avi_demux->bs;
- if (!gst_avidemux_read_chunk (bs, &chunkid, chunksize)) {
+ if (!gst_avidemux_read_chunk (avi_demux, &chunkid, chunksize)) {
g_print (" ***** Error reading chunk at filepos 0x%08llx\n", *filepos);
return FALSE;
}