From 6e277c629183ac2c8cf79fc1422e566f68b5df3e Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin <jmvalin@jmvalin.ca> Date: Fri, 17 May 2013 14:15:31 -0400 Subject: [PATCH] Conservative use of bandwidth detection in CELT Takes into account the bitrate. --- celt/celt_encoder.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c index 7347cb315..cb0cec206 100644 --- a/celt/celt_encoder.c +++ b/celt/celt_encoder.c @@ -1736,7 +1736,20 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, signalBandwidth = st->end-1; #ifndef FIXED_POINT if (st->analysis.valid) - signalBandwidth = st->analysis.bandwidth; + { + int min_bandwidth; + if (st->bitrate < (opus_int32)32000*C) + min_bandwidth = 13; + else if (st->bitrate < (opus_int32)48000*C) + min_bandwidth = 16; + else if (st->bitrate < (opus_int32)60000*C) + min_bandwidth = 18; + else if (st->bitrate < (opus_int32)80000*C) + min_bandwidth = 19; + else + min_bandwidth = 20; + signalBandwidth = IMAX(st->analysis.bandwidth, min_bandwidth); + } #endif codedBands = compute_allocation(mode, st->start, st->end, offsets, cap, alloc_trim, &st->intensity, &dual_stereo, bits, &balance, pulses, -- GitLab