On 06/18/2011 08:53 AM, Anton Khirnov wrote:

> This makes output with defaults settings actually default.
> 
> It's also the first test of codec-specific defaults.
> ---
>  libavcodec/libmp3lame.c |   13 ++++++++++---
>  1 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c
> index 68f1bc9..af21be7 100644
> --- a/libavcodec/libmp3lame.c
> +++ b/libavcodec/libmp3lame.c
> @@ -26,6 +26,7 @@
>  
>  #include "libavutil/intreadwrite.h"
>  #include "avcodec.h"
> +#include "internal.h"
>  #include "mpegaudio.h"
>  #include <lame/lame.h>
>  
> @@ -57,11 +58,12 @@ static av_cold int MP3lame_encode_init(AVCodecContext 
> *avctx)
>          lame_set_quality(s->gfp, avctx->compression_level);
>      }
>      lame_set_mode(s->gfp, s->stereo ? JOINT_STEREO : MONO);
> -    lame_set_brate(s->gfp, avctx->bit_rate/1000);
> -    if(avctx->flags & CODEC_FLAG_QSCALE) {
> +    if (avctx->bit_rate)
> +        lame_set_brate(s->gfp, avctx->bit_rate/1000);
> +    else {
>          lame_set_brate(s->gfp, 0);
>          lame_set_VBR(s->gfp, vbr_default);
> -        lame_set_VBR_quality(s->gfp, 
> avctx->global_quality/(float)FF_QP2LAMBDA);
> +        lame_set_VBR_q(s->gfp, avctx->global_quality);
>      }
>      lame_set_bWriteVbrTag(s->gfp,0);
>      lame_set_disable_reservoir(s->gfp, avctx->flags2 & 
> CODEC_FLAG2_BIT_RESERVOIR ? 0 : 1);
> @@ -213,6 +215,10 @@ static av_cold int MP3lame_encode_close(AVCodecContext 
> *avctx)
>      return 0;
>  }
>  
> +static const AVCodecDefault defaults[] = {
> +    { "b", "0" },
> +    { NULL },
> +};
>  
>  AVCodec ff_libmp3lame_encoder = {
>      "libmp3lame",
> @@ -226,4 +232,5 @@ AVCodec ff_libmp3lame_encoder = {
>      .sample_fmts = (const enum 
> AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
>      .supported_samplerates= sSampleRates,
>      .long_name= NULL_IF_CONFIG_SMALL("libmp3lame MP3 (MPEG audio layer 3)"),
> +    .defaults = defaults,
>  };


This doesn't seem quite right. In ffmpeg.c, global_quality is set to
(FF_QP2LAMBDA * audio_qscale) and is a float value. Also, if the default
is VBR, what is the default quality? Shouldn't we add a "global_quality"
default value?

-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to