From 0b122a2891399c0a4983aa6a58e25fc6a3b32474 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sun, 11 Apr 2004 21:36:45 +0000 Subject: gst-libs/gst/riff/riff-media.c: Add MS video v1. Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps), (gst_riff_create_video_template_caps): Add MS video v1. * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_data): Add support for "rec-list" chunks. --- gst/avi/gstavidemux.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gst/avi/gstavidemux.c') diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 1c03ef2c..4061d096 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -1065,6 +1065,9 @@ gst_avi_demux_stream_index (GstAviDemux * avi) entry.size = GUINT32_FROM_LE (_entry->size); target = &avi->index_entries[i]; + if (entry.id == GST_RIFF_rec) + continue; + stream_nr = CHUNKID_TO_STREAMNR (entry.id); if (stream_nr >= avi->num_streams || stream_nr < 0) { g_warning ("Index entry %d has invalid stream nr %d", i, stream_nr); @@ -1388,6 +1391,20 @@ gst_avi_demux_stream_data (GstAviDemux * avi) /* And then, we get the data */ if (!(tag = gst_riff_peek_tag (riff, NULL))) return FALSE; + + /* Support for rec-list files */ + if (tag == GST_RIFF_TAG_LIST) { + if (!(tag = gst_riff_peek_list (riff))) + return FALSE; + if (tag == GST_RIFF_rec) { + /* Simply skip the list */ + if (!gst_riff_read_list (riff, &tag)) + return FALSE; + if (!(tag = gst_riff_peek_tag (riff, NULL))) + return FALSE; + } + } + stream_nr = CHUNKID_TO_STREAMNR (tag); if (stream_nr < 0 || stream_nr >= avi->num_streams) { /* recoverable */ -- cgit