diff options
author | Anton Khirnov <anton@khirnov.net> | 2023-05-04 08:47:33 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-05-15 14:17:49 +0200 |
commit | e10a5b91bc1b138174ab2661171038431ca44213 (patch) | |
tree | 7b3e89ed37f2e308a2e1d844eca56ae0cb27fd8b /libavcodec/av1dec.c | |
parent | 7be945a011917f3cff0ca8d7c09e0a71fe31d2c2 (diff) | |
download | ffmpeg-e10a5b91bc1b138174ab2661171038431ca44213.tar.gz |
lavc/av1*: fix exporting framerate
* take num_ticks_per_picture_minus_1 into account, since that is a part
of the framerate computation
* stop exporting num_ticks_per_picture_minus_1 into
AVCodecContext.ticks_per_frame, as that field is used for other
purposes (in conjunction with repeat_pict, which is not used at all by
av1)
Diffstat (limited to 'libavcodec/av1dec.c')
-rw-r--r-- | libavcodec/av1dec.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index c90c9c1a69..d46ee48335 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -26,6 +26,7 @@ #include "libavutil/pixdesc.h" #include "libavutil/opt.h" #include "avcodec.h" +#include "av1_parse.h" #include "av1dec.h" #include "atsc_a53.h" #include "bytestream.h" @@ -709,15 +710,10 @@ static int set_context_with_sequence(AVCodecContext *avctx, } avctx->sample_aspect_ratio = (AVRational) { 1, 1 }; - if (seq->timing_info.num_units_in_display_tick && - seq->timing_info.time_scale) { - av_reduce(&avctx->framerate.den, &avctx->framerate.num, - seq->timing_info.num_units_in_display_tick, - seq->timing_info.time_scale, - INT_MAX); - if (seq->timing_info.equal_picture_interval) - avctx->ticks_per_frame = seq->timing_info.num_ticks_per_picture_minus_1 + 1; - } + if (seq->timing_info_present_flag) + avctx->framerate = ff_av1_framerate(1LL + seq->timing_info.num_ticks_per_picture_minus_1, + seq->timing_info.num_units_in_display_tick, + seq->timing_info.time_scale); return 0; } |