diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2024-05-03 17:33:58 +0100 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2024-05-05 11:56:29 +0100 |
commit | f8a613d6a86f1f2875cbebc8f1f60cfe39256fd1 (patch) | |
tree | 77ee64f711b1526f6fefec1f9760d6aa8213572e | |
parent | 088bf6e8c1ca99c7db2d250ca9b04bb2568f6ecb (diff) | |
download | ffmpeg-f8a613d6a86f1f2875cbebc8f1f60cfe39256fd1.tar.gz |
fftools/ffprobe: Avoid overflow when calculating DAR
Both the codecpar's width and height, and the SAR num and den are
ints, which can overflow. Cast to int64_t, which is what av_reduce
takes.
Without this, occasionally, display_aspect_ratio can be negative in
ffprobe's -show_stream output.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-rw-r--r-- | fftools/ffprobe.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 0d4cd0b048..5b40dad527 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -3324,8 +3324,8 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id if (sar.num) { print_q("sample_aspect_ratio", sar, ':'); av_reduce(&dar.num, &dar.den, - par->width * sar.num, - par->height * sar.den, + (int64_t) par->width * sar.num, + (int64_t) par->height * sar.den, 1024*1024); print_q("display_aspect_ratio", dar, ':'); } else { |