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}
diff --git a/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest_oldapi.cc b/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest_oldapi.cc
index d95fcf8..6220c05 100644
--- a/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest_oldapi.cc
+++ b/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest_oldapi.cc
@@ -958,34 +958,34 @@
 #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 @@
   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());
diff --git a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
index 976c685..b63d7c1 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
@@ -461,16 +461,16 @@
       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",
diff --git a/webrtc/modules/audio_coding/neteq/normal.cc b/webrtc/modules/audio_coding/neteq/normal.cc
index f99b3f2..7316918 100644
--- a/webrtc/modules/audio_coding/neteq/normal.cc
+++ b/webrtc/modules/audio_coding/neteq/normal.cc
@@ -145,14 +145,15 @@
     }
   } 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));