Commit ceb8773e authored by Michael Niedermayer's avatar Michael Niedermayer

libvpxenc: Fix CQ encoding without a specified bitrate

Also print a warning if neither quality nor bitrate is specified
and use the libvpx default bitrate in this case.

The idea of using the default bitrate is from Luca Barbato
Reviewed-by: 's avatarJames Zern <jzern@google.com>
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 1ee7a295
......@@ -270,8 +270,21 @@ static av_cold int vp8_init(AVCodecContext *avctx)
enccfg.rc_end_usage = VPX_CBR;
else if (ctx->crf)
enccfg.rc_end_usage = VPX_CQ;
enccfg.rc_target_bitrate = av_rescale_rnd(avctx->bit_rate, 1, 1000,
AV_ROUND_NEAR_INF);
if (avctx->bit_rate) {
enccfg.rc_target_bitrate = av_rescale_rnd(avctx->bit_rate, 1, 1000,
AV_ROUND_NEAR_INF);
} else {
if (enccfg.rc_end_usage == VPX_CQ) {
enccfg.rc_target_bitrate = 1000000;
} else {
avctx->bit_rate = enccfg.rc_target_bitrate * 1000;
av_log(avctx, AV_LOG_WARNING,
"Neither bitrate nor constrained quality specified, using default bitrate of %dkbit/sec\n",
enccfg.rc_target_bitrate);
}
}
if (avctx->qmin > 0)
enccfg.rc_min_quantizer = avctx->qmin;
if (avctx->qmax > 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