diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-04-11 21:36:45 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-04-11 21:36:45 +0000 |
commit | 0b122a2891399c0a4983aa6a58e25fc6a3b32474 (patch) | |
tree | 8172c09824a9bc85b670f4c5c4c5d293c6d6b6ee /gst/avi/gstavidemux.c | |
parent | 1c47f1b8ae8f202d2b04381567c5cd3ea3073373 (diff) |
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.
Diffstat (limited to 'gst/avi/gstavidemux.c')
-rw-r--r-- | gst/avi/gstavidemux.c | 17 |
1 files changed, 17 insertions, 0 deletions
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 */ |