From f27b02621d9352206f1b797ba1a979aaadcb6ae6 Mon Sep 17 00:00:00 2001 From: Gyan Doshi Date: Mon, 18 Jun 2018 12:09:54 +0530 Subject: avcodec/libx265: apply lavc maxrate, bufsize & rc_init_occupancy CLI options -maxrate, -bufsize and -rc_init_occupancy can now be picked up by the x265 wrapper. Min. rc init has to be 1001 to avoid x265 setting it to vbv-bufsize. --- libavcodec/libx265.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libavcodec/libx265.c') diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index bb457dfe5a..27c90b323f 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -205,6 +205,9 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) ctx->params->rc.rateControlMode = X265_RC_ABR; } + ctx->params->rc.vbvBufferSize = avctx->rc_buffer_size / 1000; + ctx->params->rc.vbvMaxBitrate = avctx->rc_max_rate / 1000; + if (!(avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER)) ctx->params->bRepeatHeaders = 1; @@ -233,6 +236,11 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) } } + if (ctx->params->rc.vbvBufferSize && avctx->rc_initial_buffer_occupancy > 1000 && + ctx->params->rc.vbvBufferInit == 0.9) { + ctx->params->rc.vbvBufferInit = (float)avctx->rc_initial_buffer_occupancy / 1000; + } + if (ctx->profile) { if (ctx->api->param_apply_profile(ctx->params, ctx->profile) < 0) { int i; -- cgit v1.2.3