summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.c
diff options
context:
space:
mode:
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];