libmp3lame: use the LAME default bit rate
authorJustin Ruggles <justin.ruggles@gmail.com>
Fri, 17 Feb 2012 04:28:38 +0000 (23:28 -0500)
committerJustin Ruggles <justin.ruggles@gmail.com>
Mon, 20 Feb 2012 17:32:30 +0000 (12:32 -0500)
Also, only set bit rate for CBR.

libavcodec/libmp3lame.c

index a15aed3..79384b8 100644 (file)
@@ -28,6 +28,7 @@
 #include "libavutil/log.h"
 #include "libavutil/opt.h"
 #include "avcodec.h"
+#include "internal.h"
 #include "mpegaudio.h"
 #include "mpegaudiodecheader.h"
 #include <lame/lame.h>
@@ -71,11 +72,12 @@ static av_cold int MP3lame_encode_init(AVCodecContext *avctx)
         lame_set_quality(s->gfp, avctx->compression_level);
     }
     lame_set_mode(s->gfp, avctx->channels > 1 ? JOINT_STEREO : MONO);
-    lame_set_brate(s->gfp, avctx->bit_rate / 1000);
     if (avctx->flags & CODEC_FLAG_QSCALE) {
-        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);
+    } else {
+        if (avctx->bit_rate)
+            lame_set_brate(s->gfp, avctx->bit_rate / 1000);
     }
     lame_set_bWriteVbrTag(s->gfp,0);
     lame_set_disable_reservoir(s->gfp, !s->reservoir);
@@ -171,6 +173,11 @@ static const AVClass libmp3lame_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
+static const AVCodecDefault libmp3lame_defaults[] = {
+    { "b",          "0" },
+    { NULL },
+};
+
 AVCodec ff_libmp3lame_encoder = {
     .name                  = "libmp3lame",
     .type                  = AVMEDIA_TYPE_AUDIO,
@@ -185,4 +192,5 @@ AVCodec ff_libmp3lame_encoder = {
     .supported_samplerates = sSampleRates,
     .long_name             = NULL_IF_CONFIG_SMALL("libmp3lame MP3 (MPEG audio layer 3)"),
     .priv_class            = &libmp3lame_class,
+    .defaults              = libmp3lame_defaults,
 };