Commit 03afb62e authored by Anton Khirnov's avatar Anton Khirnov

libvpxenc: export CPB props side data

parent 11c9bd63
...@@ -212,6 +212,7 @@ static av_cold int vpx_init(AVCodecContext *avctx, ...@@ -212,6 +212,7 @@ static av_cold int vpx_init(AVCodecContext *avctx,
{ {
VP8Context *ctx = avctx->priv_data; VP8Context *ctx = avctx->priv_data;
struct vpx_codec_enc_cfg enccfg = { 0 }; struct vpx_codec_enc_cfg enccfg = { 0 };
AVCPBProperties *cpb_props;
int res; int res;
av_log(avctx, AV_LOG_INFO, "%s\n", vpx_codec_version_str()); av_log(avctx, AV_LOG_INFO, "%s\n", vpx_codec_version_str());
...@@ -362,6 +363,18 @@ static av_cold int vpx_init(AVCodecContext *avctx, ...@@ -362,6 +363,18 @@ static av_cold int vpx_init(AVCodecContext *avctx,
vpx_img_wrap(&ctx->rawimg, ff_vpx_pixfmt_to_imgfmt(avctx->pix_fmt), vpx_img_wrap(&ctx->rawimg, ff_vpx_pixfmt_to_imgfmt(avctx->pix_fmt),
avctx->width, avctx->height, 1, (unsigned char *)1); avctx->width, avctx->height, 1, (unsigned char *)1);
cpb_props = ff_add_cpb_side_data(avctx);
if (!cpb_props)
return AVERROR(ENOMEM);
if (enccfg.rc_end_usage == VPX_CBR ||
enccfg.g_pass != VPX_RC_ONE_PASS) {
cpb_props->max_bitrate = avctx->rc_max_rate;
cpb_props->min_bitrate = avctx->rc_min_rate;
cpb_props->avg_bitrate = avctx->bit_rate;
}
cpb_props->buffer_size = avctx->rc_buffer_size;
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment