diff options
author | Danil Chapovalov <danilchap-at-google.com@ffmpeg.org> | 2022-03-30 20:24:32 +0200 |
---|---|---|
committer | James Zern <jzern@google.com> | 2022-04-05 17:38:52 -0700 |
commit | 706f12992dbe22617ba0406cfff09201bc905b4e (patch) | |
tree | fdae5b4cf12e1075f74ce43cf03d89188b04999c /libavcodec/libvpxenc.c | |
parent | c9ecbc08a17d8e7ed52a2abaaa97caa197e2e7bc (diff) | |
download | ffmpeg-706f12992dbe22617ba0406cfff09201bc905b4e.tar.gz |
avcodec/libvpxenc: enable dynamic max quantizer reconfiguration
Signed-off-by: James Zern <jzern@google.com>
Diffstat (limited to 'libavcodec/libvpxenc.c')
-rw-r--r-- | libavcodec/libvpxenc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 7438ad87a3..e35b47b87e 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1629,6 +1629,16 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket *pkt, vpx_svc_layer_id_t layer_id; int layer_id_valid = 0; + if (avctx->qmax >= 0 && enccfg->rc_max_quantizer != avctx->qmax) { + struct vpx_codec_enc_cfg cfg = *enccfg; + cfg.rc_max_quantizer = avctx->qmax; + res = vpx_codec_enc_config_set(&ctx->encoder, &cfg); + if (res != VPX_CODEC_OK) { + log_encoder_error(avctx, "Error reconfiguring encoder"); + return AVERROR_INVALIDDATA; + } + } + if (frame) { const AVFrameSideData *sd = av_frame_get_side_data(frame, AV_FRAME_DATA_REGIONS_OF_INTEREST); rawimg = &ctx->rawimg; |