[FFmpeg-devel] [PATCH 2/2] libvpx: Fix CQ encoding without a specified bitrate

James Zern jzern at google.com
Fri Aug 17 20:16:29 CEST 2012


On Fri, Aug 17, 2012 at 8:55 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> Also print a warning if neither quality nor bitrate is specified
> and use the libvpx default bitrate in this case.
>
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>  libavcodec/libvpxenc.c |   17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
> index b438301..ffe2db7 100644
> --- a/libavcodec/libvpxenc.c
> +++ b/libavcodec/libvpxenc.c
> @@ -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 contstrained quality specified, using default bitrate of %dkbit/sec\n",

s/contstrained/constrained/

> +                   enccfg.rc_target_bitrate);
> +        }
> +    }
> +
>      if (avctx->qmin > 0)
>          enccfg.rc_min_quantizer = avctx->qmin;
>      if (avctx->qmax > 0)
> --
> 1.7.9.5
>
Should be ok.


More information about the ffmpeg-devel mailing list