[FFmpeg-cvslog] avcodec/librav1e: Use the framerate when available for ratecontrol
Derek Buitenhuis
git at videolan.org
Fri May 1 22:01:01 EEST 2020
ffmpeg | branch: master | Derek Buitenhuis <derek.buitenhuis at gmail.com> | Thu Apr 30 20:06:43 2020 +0100| [3c740f2d9f573542313ea64d7ab45fd1669ee511] | committer: Derek Buitenhuis
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 at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3c740f2d9f573542313ea64d7ab45fd1669ee511
---
libavcodec/librav1e.c | 19 +++++++++++++++----
1 file 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) {
More information about the ffmpeg-cvslog
mailing list