From 3dd82afc748df0f1c49b76e1cd4ea6e35b1001a5 Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Wed, 13 Apr 2011 11:03:19 +0300 Subject: libopencore-amr, libvo-amrwbenc: Only check the bitrate when changed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also rename the incorrectly named enc_bitrate to enc_mode, use the enc_bitrate variable for storing the last chosen bitrate. This avoids continuous warning log messages if not using an exactly matching bitrate, while still allowing changing bitrate at any point. Signed-off-by: Martin Storsjö --- libavcodec/libvo-amrwbenc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'libavcodec/libvo-amrwbenc.c') diff --git a/libavcodec/libvo-amrwbenc.c b/libavcodec/libvo-amrwbenc.c index b194bf04bb..d3db5f847a 100644 --- a/libavcodec/libvo-amrwbenc.c +++ b/libavcodec/libvo-amrwbenc.c @@ -27,6 +27,7 @@ typedef struct AMRWBContext { void *state; int mode; + int last_bitrate; int allow_dtx; } AMRWBContext; @@ -70,7 +71,8 @@ static av_cold int amr_wb_encode_init(AVCodecContext *avctx) return AVERROR(ENOSYS); } - s->mode = get_wb_bitrate_mode(avctx->bit_rate, avctx); + s->mode = get_wb_bitrate_mode(avctx->bit_rate, avctx); + s->last_bitrate = avctx->bit_rate; avctx->frame_size = 320; avctx->coded_frame = avcodec_alloc_frame(); @@ -97,7 +99,10 @@ static int amr_wb_encode_frame(AVCodecContext *avctx, AMRWBContext *s = avctx->priv_data; int size; - s->mode = get_wb_bitrate_mode(avctx->bit_rate, avctx); + if (s->last_bitrate != avctx->bit_rate) { + s->mode = get_wb_bitrate_mode(avctx->bit_rate, avctx); + s->last_bitrate = avctx->bit_rate; + } size = E_IF_encode(s->state, s->mode, data, frame, s->allow_dtx); return size; } -- cgit v1.2.3