summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorInho Lee <inho.lee@qt.io>2022-12-15 11:19:33 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-12-16 09:08:10 +0000
commit51a26b91aff4581ac4c9095a5217dbe555d0290e (patch)
treed0ff95df7665fb7d7a0e9b450af3edd1e9270886 /src
parent6f9762c51a53f02c7f559fc3a9a0f86d57b57add (diff)
Fix a divide-by-zero exception for ffmpeg
When calculating duration, there is a possible divide-by-zero error. Task-number: QTBUG-108412 Change-Id: I2399027a39f32125b2336e1ad9aee1c0ff04341f Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit d8e22e3fa321560bed48089a5445edba9cfc535c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp
index 443edcd0d..dd0e59c5d 100644
--- a/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp
+++ b/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp
@@ -651,8 +651,9 @@ void VideoRenderer::loop()
AVStream *stream = frame.codec()->stream();
qint64 startTime = frame.pts();
- qint64 duration = (1000000*stream->avg_frame_rate.den + (stream->avg_frame_rate.num>>1))
- /stream->avg_frame_rate.num;
+ qint64 duration = stream->avg_frame_rate.num == 0 ? 0 :
+ (1000000*stream->avg_frame_rate.den + (stream->avg_frame_rate.num>>1))
+ / stream->avg_frame_rate.num;
if (sink) {
qint64 startTime = frame.pts();