NetEq: Update CNG code to accommodate 48 kHz sample rate

Checksums were updated for NetEq and ACM bitexactness tests (after
verifying the audio quality).

BUG=webrtc:5447

Review-Url: https://codereview.webrtc.org/2266293005
Cr-Commit-Position: refs/heads/master@{#13928}
This commit is contained in:
henrik.lundin
2016-08-25 23:53:38 -07:00
committed by Commit bot
parent 5085b0ca94
commit c76680419e
3 changed files with 31 additions and 30 deletions

View File

@ -958,34 +958,34 @@ class AcmReceiverBitExactnessOldApi : public ::testing::Test {
#if (defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)) && \
defined(WEBRTC_CODEC_ILBC) && defined(WEBRTC_CODEC_G722)
TEST_F(AcmReceiverBitExactnessOldApi, 8kHzOutput) {
Run(8000, PlatformChecksum("86f0e58421dafe3471e1bcd62316174e",
"e2c2176b822f109eab2c3317ff1f3a89",
"9c1058831bef8836d5880f86f03f02cd",
"7294944a869a39085ae69278dca875ad"),
Run(8000, PlatformChecksum("dce4890259e9ded50f472455aa470a6f",
"1c4ada78b12612147f3026920f8dcc14",
"d804791edf2d00be2bc31c81a47368d4",
"b2611f7323ab1209d5056399d0babbf5"),
std::vector<ExternalDecoder>());
}
TEST_F(AcmReceiverBitExactnessOldApi, 16kHzOutput) {
Run(16000, PlatformChecksum("0b895074ede8d93ff7d4b03e48ff4353",
"9b92ee1731bc07e7a802c46883551029",
"1a29721666a594cc56688b442790d0f9",
"c061a9486003d0c096504905521d0fe7"),
Run(16000, PlatformChecksum("27356bddffaa42b5c841b49aa3a070c5",
"5667d1872fc351244092ae995e5a5b32",
"53f5dc8088148479ca112c4c6d0e91cb",
"4061a876d64d6cec5a38450acf4f245d"),
std::vector<ExternalDecoder>());
}
TEST_F(AcmReceiverBitExactnessOldApi, 32kHzOutput) {
Run(32000, PlatformChecksum("ed620557bab00d588db0af699dc05df9",
"9472cfaeba10282187a6376aeddba347",
"0071b9962de77b1d71ecd0a0e5accf45",
"c6cca0a4dd27bb77505343a15ea13c77"),
Run(32000, PlatformChecksum("eb326547e83292305423b0a7ea57fea1",
"be7fc3140e6b5188c2e5fae0a394543b",
"eab9a0bff17320d6457d04f4c56563c6",
"b60241ef0bac4a75f66eead04e71bb12"),
std::vector<ExternalDecoder>());
}
TEST_F(AcmReceiverBitExactnessOldApi, 48kHzOutput) {
Run(48000, PlatformChecksum("e68904bd63da1bad4b00f4bd221f2325",
"3418d41ee693f8fa6d5878de5a8c95d9",
"861e65072b1a10eec56ffde10c99bbce",
"244bafe12206b7e26276ff7c49fc1795"),
Run(48000, PlatformChecksum("7eb79ea39b68472a5b04cf9a56e49cda",
"f8cdd6e018688b2fff25c9b865bebdbb",
"2d18f0f06e7e2fc63b74d06e3c58067f",
"81c3e4d24ebec23ca48f42fbaec4aba0"),
std::vector<ExternalDecoder>());
}
@ -1043,10 +1043,10 @@ TEST_F(AcmReceiverBitExactnessOldApi, 48kHzOutputExternalDecoder) {
std::vector<ExternalDecoder> external_decoders;
external_decoders.push_back(ed);
Run(48000, PlatformChecksum("e68904bd63da1bad4b00f4bd221f2325",
"3418d41ee693f8fa6d5878de5a8c95d9",
"861e65072b1a10eec56ffde10c99bbce",
"244bafe12206b7e26276ff7c49fc1795"),
Run(48000, PlatformChecksum("7eb79ea39b68472a5b04cf9a56e49cda",
"f8cdd6e018688b2fff25c9b865bebdbb",
"2d18f0f06e7e2fc63b74d06e3c58067f",
"81c3e4d24ebec23ca48f42fbaec4aba0"),
external_decoders);
EXPECT_CALL(mock_decoder, Die());

View File

@ -461,16 +461,16 @@ TEST_F(NetEqDecodingTest, MAYBE_TestBitExactness) {
webrtc::test::ResourcePath("audio_coding/neteq_universal_new", "rtp");
const std::string output_checksum = PlatformChecksum(
"472ebe1126f41fdb6b5c63c87f625a52e7604e49",
"36f6fc87c05de077e998173b46b83524de5e8fc2",
"472ebe1126f41fdb6b5c63c87f625a52e7604e49",
"f9749813dbc3fb59dae761de518fec65b8407c5b");
"acd33f5c73625c1529c412ad59b5565132826f1b",
"1a2e82a0410421c1d1d3eb0615334db5e2c63784",
"acd33f5c73625c1529c412ad59b5565132826f1b",
"52797b781758a1d2303140b80b9c5030c9093d6b");
const std::string network_stats_checksum = PlatformChecksum(
"2cf380a05ee07080bd72471e8ec7777a39644ec9",
"f50795e25ec2bab2d418c694ab088012776fd450",
"2cf380a05ee07080bd72471e8ec7777a39644ec9",
"2cf380a05ee07080bd72471e8ec7777a39644ec9");
"9c5bb9e74a583be89313b158a19ea10d41bf9de6",
"e948ec65cf18852ba2a197189a3186635db34c3b",
"9c5bb9e74a583be89313b158a19ea10d41bf9de6",
"9c5bb9e74a583be89313b158a19ea10d41bf9de6");
const std::string rtcp_stats_checksum = PlatformChecksum(
"b8880bf9fed2487efbddcb8d94b9937a29ae521d",

View File

@ -145,14 +145,15 @@ int Normal::Process(const int16_t* input,
}
} else if (last_mode == kModeRfc3389Cng) {
assert(output->Channels() == 1); // Not adapted for multi-channel yet.
static const size_t kCngLength = 32;
static const size_t kCngLength = 48;
RTC_DCHECK_LE(static_cast<size_t>(8 * fs_mult), kCngLength);
int16_t cng_output[kCngLength];
// Reset mute factor and start up fresh.
external_mute_factor_array[0] = 16384;
ComfortNoiseDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder();
if (cng_decoder) {
// Generate long enough for 32kHz.
// Generate long enough for 48kHz.
if (!cng_decoder->Generate(cng_output, 0)) {
// Error returned; set return vector to all zeros.
memset(cng_output, 0, sizeof(cng_output));