summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-10-02 20:27:04 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-10-02 20:27:04 +0000
commit993092788c0f0c98850390e78a09f756ceeacd92 (patch)
tree4838cc8728e57e12cdeffaa8c7e5172b55cfb653 /gst/avi/gstavidemux.c
parent89e2912bada430273a6219919366cadad87eb210 (diff)
gst-libs/gst/riff/riff-media.c: Add wing commander format mimetype/fourccs.
Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_video_template_caps): Add wing commander format mimetype/fourccs. * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Don't crash if some value is 0.
Diffstat (limited to 'gst/avi/gstavidemux.c')
-rw-r--r--gst/avi/gstavidemux.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index bfe1c706..4ec1d890 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -1369,12 +1369,15 @@ gst_avi_demux_massage_index (GstAviDemux * avi)
/* init frames */
for (i = 0; i < avi->num_streams; i++) {
stream = &avi->stream[i];
- if (stream->strh->type == GST_RIFF_FCC_vids)
- stream->delay = stream->strh->init_frames * GST_SECOND *
- stream->strh->scale / stream->strh->rate;
- else
- stream->delay = GST_SECOND * stream->strh->init_frames *
- stream->strh->length / (stream->total_frames * stream->bitrate);
+ if (stream->strh->type == GST_RIFF_FCC_vids) {
+ if (stream->strh->rate != 0)
+ stream->delay = stream->strh->init_frames * GST_SECOND *
+ stream->strh->scale / stream->strh->rate;
+ } else {
+ if (stream->total_frames * stream->bitrate != 0)
+ stream->delay = GST_SECOND * stream->strh->init_frames *
+ stream->strh->length / (stream->total_frames * stream->bitrate);
+ }
}
for (i = 0; i < avi->index_size; i++) {
entry = &avi->index_entries[i];