[FFmpeg-devel] [PATCH V1 2/2] lavc/libx265: Use avctx->framerate first for frame rate setting
Jun Zhao
mypopydev at gmail.com
Sat Apr 27 14:17:56 EEST 2019
From: Jun Zhao <barryjzhao at tencent.com>
perfer avctx->framerate first than use avctx->time_base when setting
the frame rate to encoder. 1/time_base is not the average frame rate
if the frame rate is not constant, so use avctx->framerate if the
value is not zero.
Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
---
libavcodec/libx265.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index fe39f45..07bca81 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -110,8 +110,13 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
}
ctx->params->frameNumThreads = avctx->thread_count;
- ctx->params->fpsNum = avctx->time_base.den;
- ctx->params->fpsDenom = avctx->time_base.num * avctx->ticks_per_frame;
+ if (avctx->framerate.num > 0 && avctx->framerate.den > 0) {
+ ctx->params->fpsNum = avctx->framerate.num;
+ ctx->params->fpsDenom = avctx->framerate.den;
+ } else {
+ ctx->params->fpsNum = avctx->time_base.den;
+ ctx->params->fpsDenom = avctx->time_base.num * avctx->ticks_per_frame;
+ }
ctx->params->sourceWidth = avctx->width;
ctx->params->sourceHeight = avctx->height;
ctx->params->bEnablePsnr = !!(avctx->flags & AV_CODEC_FLAG_PSNR);
--
1.7.1
More information about the ffmpeg-devel
mailing list