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:
committed by
Commit bot
parent
5085b0ca94
commit
c76680419e
@ -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());
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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));
|
||||
|
||||
Reference in New Issue
Block a user