Browse Source

libmp3lame: add ABR support

tags/n2.3
Timothy Gu Vittorio Giovara 12 years ago
parent
commit
09fda6bb50
2 changed files with 10 additions and 3 deletions
  1. +9
    -2
      libavcodec/libmp3lame.c
  2. +1
    -1
      libavcodec/version.h

+ 9
- 2
libavcodec/libmp3lame.c View File

@@ -49,6 +49,7 @@ typedef struct LAMEContext {
int buffer_size;
int reservoir;
int joint_stereo;
int abr;
float *samples_flt[2];
AudioFrameQueue afq;
AVFloatDSPContext fdsp;
@@ -114,8 +115,13 @@ static av_cold int mp3lame_encode_init(AVCodecContext *avctx)
lame_set_VBR(s->gfp, vbr_default);
lame_set_VBR_quality(s->gfp, avctx->global_quality / (float)FF_QP2LAMBDA);
} else {
if (avctx->bit_rate) // CBR
lame_set_brate(s->gfp, avctx->bit_rate / 1000);
if (avctx->bit_rate) {
if (s->abr) { // ABR
lame_set_VBR(s->gfp, vbr_abr);
lame_set_VBR_mean_bitrate_kbps(s->gfp, avctx->bit_rate / 1000);
} else // CBR
lame_set_brate(s->gfp, avctx->bit_rate / 1000);
}
}

/* do not get a Xing VBR header frame from LAME */
@@ -262,6 +268,7 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
static const AVOption options[] = {
{ "reservoir", "Use bit reservoir.", OFFSET(reservoir), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, AE },
{ "joint_stereo", "Use joint stereo.", OFFSET(joint_stereo), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, AE },
{ "abr", "Use ABR", OFFSET(abr), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, AE },
{ NULL },
};



+ 1
- 1
libavcodec/version.h View File

@@ -30,7 +30,7 @@

#define LIBAVCODEC_VERSION_MAJOR 55
#define LIBAVCODEC_VERSION_MINOR 41
#define LIBAVCODEC_VERSION_MICRO 1
#define LIBAVCODEC_VERSION_MICRO 2

#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \


Loading…
Cancel
Save