[FFmpeg-cvslog] lavc/libx265: signal CPB properties through side data
Jan Ekström
git at videolan.org
Sun Mar 3 23:43:42 EET 2019
ffmpeg | branch: master | Jan Ekström <jeebjp at gmail.com> | Sat Feb 23 02:35:28 2019 +0200| [4635f649534bb4e3e051be4e416bfdd78074d0b7] | committer: Jan Ekström
lavc/libx265: signal CPB properties through side data
This way values such as maxrate/bufsize can be utilized
further down the chain.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4635f649534bb4e3e051be4e416bfdd78074d0b7
---
libavcodec/libx265.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 98415366da..fe39f45241 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -79,6 +79,7 @@ static av_cold int libx265_encode_close(AVCodecContext *avctx)
static av_cold int libx265_encode_init(AVCodecContext *avctx)
{
libx265Context *ctx = avctx->priv_data;
+ AVCPBProperties *cpb_props = NULL;
ctx->api = x265_api_get(av_pix_fmt_desc_get(avctx->pix_fmt)->comp[0].depth);
if (!ctx->api)
@@ -208,6 +209,13 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
ctx->params->rc.vbvBufferSize = avctx->rc_buffer_size / 1000;
ctx->params->rc.vbvMaxBitrate = avctx->rc_max_rate / 1000;
+ cpb_props = ff_add_cpb_side_data(avctx);
+ if (!cpb_props)
+ return AVERROR(ENOMEM);
+ cpb_props->buffer_size = ctx->params->rc.vbvBufferSize * 1000;
+ cpb_props->max_bitrate = ctx->params->rc.vbvMaxBitrate * 1000;
+ cpb_props->avg_bitrate = ctx->params->rc.bitrate * 1000;
+
if (!(avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER))
ctx->params->bRepeatHeaders = 1;
More information about the ffmpeg-cvslog
mailing list