diff options
author | Inho Lee <inho.lee@qt.io> | 2022-12-15 11:19:33 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-12-16 09:08:10 +0000 |
commit | 51a26b91aff4581ac4c9095a5217dbe555d0290e (patch) | |
tree | d0ff95df7665fb7d7a0e9b450af3edd1e9270886 /src | |
parent | 6f9762c51a53f02c7f559fc3a9a0f86d57b57add (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.cpp | 5 |
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(); |