summaryrefslogtreecommitdiff
path: root/libavcodec/librav1e.c
diff options
context:
space:
mode:
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>2020-04-30 20:06:43 +0100
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>2020-05-01 20:00:42 +0100
commit3c740f2d9f573542313ea64d7ab45fd1669ee511 (patch)
tree0cd8e7595168a5a191ec7c278984c6483af8a1b9 /libavcodec/librav1e.c
parentaaadf0dce8fa7b3b5073089498a84e758ceb975a (diff)
avcodec/librav1e: Use the framerate when available for ratecontrol
Rav1e currently uses the time base given to it only for ratecontrol... where the inverse is taken and used as a framerate. So, do what we do in other wrappers and use the framerate if we can. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavcodec/librav1e.c')
-rw-r--r--libavcodec/librav1e.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/libavcodec/librav1e.c b/libavcodec/librav1e.c
index b8b1b4f8f1..b0ff60d8c7 100644
--- a/libavcodec/librav1e.c
+++ b/libavcodec/librav1e.c
@@ -186,10 +186,21 @@ static av_cold int librav1e_encode_init(AVCodecContext *avctx)
return AVERROR_EXTERNAL;
}
- rav1e_config_set_time_base(cfg, (RaRational) {
- avctx->time_base.num * avctx->ticks_per_frame,
- avctx->time_base.den
- });
+ /*
+ * Rav1e currently uses the time base given to it only for ratecontrol... where
+ * the inverse is taken and used as a framerate. So, do what we do in other wrappers
+ * and use the framerate if we can.
+ */
+ if (avctx->framerate.num > 0 && avctx->framerate.den > 0) {
+ rav1e_config_set_time_base(cfg, (RaRational) {
+ avctx->framerate.den, avctx->framerate.num
+ });
+ } else {
+ rav1e_config_set_time_base(cfg, (RaRational) {
+ avctx->time_base.num * avctx->ticks_per_frame,
+ avctx->time_base.den
+ });
+ }
if (avctx->flags & AV_CODEC_FLAG_PASS2) {
if (!avctx->stats_in) {