diff options
author | Paul Kelly <paul@stjohnspoint.co.uk> | 2008-02-11 08:01:07 +0000 |
---|---|---|
committer | Andreas Ă–man <andreas@lonelycoder.com> | 2008-02-11 08:01:07 +0000 |
commit | f1618fd939be124555c98f453fc3a8f36e02fc37 (patch) | |
tree | b82e17c5567c3cc3afd15d26c377c4293950e8c2 /libavcodec | |
parent | 03c09e43993a7c8e4db7930a0e6be736457af494 (diff) | |
download | ffmpeg-f1618fd939be124555c98f453fc3a8f36e02fc37.tar.gz |
Add 'reservoir' flag to lavc's flags2 controlling whether or not codes may
utilize a bit reservoir. Also, make the lame encoder utilize this flag.
patch by Paul Kelly, paul a stjohnspoint d co d uk
Originally committed as revision 11903 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/avcodec.h | 5 | ||||
-rw-r--r-- | libavcodec/libmp3lame.c | 1 | ||||
-rw-r--r-- | libavcodec/utils.c | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 146c72a574..feac22d5b0 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -33,8 +33,8 @@ #define AV_STRINGIFY(s) AV_TOSTRING(s) #define AV_TOSTRING(s) #s -#define LIBAVCODEC_VERSION_INT ((51<<16)+(50<<8)+0) -#define LIBAVCODEC_VERSION 51.50.0 +#define LIBAVCODEC_VERSION_INT ((51<<16)+(50<<8)+1) +#define LIBAVCODEC_VERSION 51.50.1 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) @@ -439,6 +439,7 @@ typedef struct RcOverride{ #define CODEC_FLAG2_SKIP_RD 0x00004000 ///< RD optimal MB level residual skipping #define CODEC_FLAG2_CHUNKS 0x00008000 ///< Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries. #define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000 ///< Use MPEG-2 nonlinear quantizer. +#define CODEC_FLAG2_BIT_RESERVOIR 0x00020000 ///< Use a bit reservoir when encoding if possible /* Unsupported options : * Syntax Arithmetic coding (SAC) diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c index e7671d08ea..6fbf2e23d3 100644 --- a/libavcodec/libmp3lame.c +++ b/libavcodec/libmp3lame.c @@ -61,6 +61,7 @@ static int MP3lame_encode_init(AVCodecContext *avctx) lame_set_VBR_q(s->gfp, avctx->global_quality / (float)FF_QP2LAMBDA); } lame_set_bWriteVbrTag(s->gfp,0); + lame_set_disable_reservoir(s->gfp, avctx->flags2 & CODEC_FLAG2_BIT_RESERVOIR ? 0 : 1); if (lame_init_params(s->gfp) < 0) goto err_close; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index c2632ac34e..77dfd0fc7a 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -686,7 +686,7 @@ static const AVOption options[]={ {"nr", "noise reduction", OFFSET(noise_reduction), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, V|E}, {"rc_init_occupancy", "number of bits which should be loaded into the rc buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, V|E}, {"inter_threshold", NULL, OFFSET(inter_threshold), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, V|E}, -{"flags2", NULL, OFFSET(flags2), FF_OPT_TYPE_FLAGS, CODEC_FLAG2_FASTPSKIP, INT_MIN, INT_MAX, V|A|E|D, "flags2"}, +{"flags2", NULL, OFFSET(flags2), FF_OPT_TYPE_FLAGS, CODEC_FLAG2_FASTPSKIP|CODEC_FLAG2_BIT_RESERVOIR, INT_MIN, INT_MAX, V|A|E|D, "flags2"}, {"error", NULL, OFFSET(error_rate), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, V|E}, {"antialias", "MP3 antialias algorithm", OFFSET(antialias_algo), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, V|D, "aa"}, {"auto", NULL, 0, FF_OPT_TYPE_CONST, FF_AA_AUTO, INT_MIN, INT_MAX, V|D, "aa"}, @@ -762,6 +762,7 @@ static const AVOption options[]={ {"non_linear_q", "use non linear quantizer", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_NON_LINEAR_QUANT, INT_MIN, INT_MAX, V|E, "flags2"}, {"request_channels", "set desired number of audio channels", OFFSET(request_channels), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, A|D}, {"drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), FF_OPT_TYPE_FLOAT, 1.0, 0.0, 1.0, A|D}, +{"reservoir", "use bit reservoir", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_BIT_RESERVOIR, INT_MIN, INT_MAX, A|E, "flags2"}, {NULL}, }; |