diff --git a/ChangeLog b/ChangeLog index d562f776b8..346903560e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-10-29 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain): + Prevent division by zero (#155212). + 2004-10-29 Ronald S. Bultje * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_avpicture_fill): diff --git a/ext/ffmpeg/gstffmpegdec.c b/ext/ffmpeg/gstffmpegdec.c index cff103759f..db4d084a11 100644 --- a/ext/ffmpeg/gstffmpegdec.c +++ b/ext/ffmpeg/gstffmpegdec.c @@ -425,12 +425,15 @@ gst_ffmpegdec_chain (GstPad * pad, GstData * _data) ffmpegdec->context->width, ffmpegdec->context->height); /* note that ffmpeg sometimes gets the FPS wrong */ - if (GST_CLOCK_TIME_IS_VALID (expected_ts)) { + if (GST_CLOCK_TIME_IS_VALID (expected_ts) && + ffmpegdec->context->frame_rate > 0) { GST_BUFFER_TIMESTAMP (outbuf) = expected_ts; GST_BUFFER_DURATION (outbuf) = GST_SECOND * ffmpegdec->context->frame_rate_base / ffmpegdec->context->frame_rate; expected_ts += GST_BUFFER_DURATION (outbuf); + } else { + GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (inbuf); } } break;