This is 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,
 };
-- 
1.7.5.1

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

Reply via email to