Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(507)

Side by Side Diff: webrtc/modules/audio_coding/neteq/neteq_unittest.cc

Issue 2365653004: AudioCodingModule: Specify decoders using SdpAudioFormat (Closed)
Patch Set: rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 27 matching lines...) Expand all
38 #ifdef WEBRTC_ANDROID_PLATFORM_BUILD 38 #ifdef WEBRTC_ANDROID_PLATFORM_BUILD
39 #include "external/webrtc/webrtc/modules/audio_coding/neteq/neteq_unittest.pb.h" 39 #include "external/webrtc/webrtc/modules/audio_coding/neteq/neteq_unittest.pb.h"
40 #else 40 #else
41 #include "webrtc/audio_coding/neteq/neteq_unittest.pb.h" 41 #include "webrtc/audio_coding/neteq/neteq_unittest.pb.h"
42 #endif 42 #endif
43 RTC_POP_IGNORING_WUNDEF() 43 RTC_POP_IGNORING_WUNDEF()
44 #endif 44 #endif
45 45
46 DEFINE_bool(gen_ref, false, "Generate reference files."); 46 DEFINE_bool(gen_ref, false, "Generate reference files.");
47 47
48 namespace webrtc {
49
48 namespace { 50 namespace {
49 51
50 const std::string& PlatformChecksum(const std::string& checksum_general, 52 const std::string& PlatformChecksum(const std::string& checksum_general,
51 const std::string& checksum_android, 53 const std::string& checksum_android,
52 const std::string& checksum_win_32, 54 const std::string& checksum_win_32,
53 const std::string& checksum_win_64) { 55 const std::string& checksum_win_64) {
54 #if defined(WEBRTC_ANDROID) 56 #if defined(WEBRTC_ANDROID)
55 return checksum_android; 57 return checksum_android;
56 #elif defined(WEBRTC_WIN) 58 #elif defined(WEBRTC_WIN)
57 #ifdef WEBRTC_ARCH_64_BITS 59 #ifdef WEBRTC_ARCH_64_BITS
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 105
104 if (file) 106 if (file)
105 ASSERT_EQ(static_cast<size_t>(size), 107 ASSERT_EQ(static_cast<size_t>(size),
106 fwrite(message.data(), sizeof(char), size, file)); 108 fwrite(message.data(), sizeof(char), size, file));
107 digest->Update(message.data(), sizeof(char) * size); 109 digest->Update(message.data(), sizeof(char) * size);
108 } 110 }
109 111
110 #endif // WEBRTC_NETEQ_UNITTEST_BITEXACT 112 #endif // WEBRTC_NETEQ_UNITTEST_BITEXACT
111 113
112 void LoadDecoders(webrtc::NetEq* neteq) { 114 void LoadDecoders(webrtc::NetEq* neteq) {
113 // Load PCMu. 115 ASSERT_EQ(true,
114 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderPCMu, 116 neteq->RegisterPayloadType(0, SdpAudioFormat("pcmu", 8000, 1)));
115 "pcmu", 0)); 117 // Use non-SdpAudioFormat argument when registering PCMa, so that we get test
116 // Load PCMa. 118 // coverage for that as well.
117 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderPCMa, 119 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderPCMa,
118 "pcma", 8)); 120 "pcma", 8));
119 #ifdef WEBRTC_CODEC_ILBC 121 #ifdef WEBRTC_CODEC_ILBC
120 // Load iLBC. 122 ASSERT_EQ(true,
121 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderILBC, 123 neteq->RegisterPayloadType(102, SdpAudioFormat("ilbc", 8000, 1)));
122 "ilbc", 102));
123 #endif 124 #endif
124 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) 125 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)
125 // Load iSAC. 126 ASSERT_EQ(true,
126 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderISAC, 127 neteq->RegisterPayloadType(103, SdpAudioFormat("isac", 16000, 1)));
127 "isac", 103));
128 #endif 128 #endif
129 #ifdef WEBRTC_CODEC_ISAC 129 #ifdef WEBRTC_CODEC_ISAC
130 // Load iSAC SWB. 130 ASSERT_EQ(true,
131 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderISACswb, 131 neteq->RegisterPayloadType(104, SdpAudioFormat("isac", 32000, 1)));
132 "isac-swb", 104));
133 #endif 132 #endif
134 #ifdef WEBRTC_CODEC_OPUS 133 #ifdef WEBRTC_CODEC_OPUS
135 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderOpus, 134 ASSERT_EQ(true,
136 "opus", 111)); 135 neteq->RegisterPayloadType(
136 111, SdpAudioFormat("opus", 48000, 2, {{"stereo", "0"}})));
137 #endif 137 #endif
138 // Load PCM16B nb. 138 ASSERT_EQ(true,
139 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderPCM16B, 139 neteq->RegisterPayloadType(93, SdpAudioFormat("L16", 8000, 1)));
140 "pcm16-nb", 93)); 140 ASSERT_EQ(true,
141 // Load PCM16B wb. 141 neteq->RegisterPayloadType(94, SdpAudioFormat("L16", 16000, 1)));
142 ASSERT_EQ(0, neteq->RegisterPayloadType( 142 ASSERT_EQ(true,
143 webrtc::NetEqDecoder::kDecoderPCM16Bwb, "pcm16-wb", 94)); 143 neteq->RegisterPayloadType(95, SdpAudioFormat("L16", 32000, 1)));
144 // Load PCM16B swb32. 144 ASSERT_EQ(true,
145 ASSERT_EQ( 145 neteq->RegisterPayloadType(13, SdpAudioFormat("cn", 8000, 1)));
146 0, neteq->RegisterPayloadType( 146 ASSERT_EQ(true,
147 webrtc::NetEqDecoder::kDecoderPCM16Bswb32kHz, "pcm16-swb32", 95)); 147 neteq->RegisterPayloadType(98, SdpAudioFormat("cn", 16000, 1)));
148 // Load CNG 8 kHz.
149 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderCNGnb,
150 "cng-nb", 13));
151 // Load CNG 16 kHz.
152 ASSERT_EQ(0, neteq->RegisterPayloadType(webrtc::NetEqDecoder::kDecoderCNGwb,
153 "cng-wb", 98));
154 } 148 }
155 } // namespace 149 } // namespace
156 150
157 namespace webrtc {
158
159 class ResultSink { 151 class ResultSink {
160 public: 152 public:
161 explicit ResultSink(const std::string& output_file); 153 explicit ResultSink(const std::string& output_file);
162 ~ResultSink(); 154 ~ResultSink();
163 155
164 template<typename T, size_t n> void AddResult( 156 template<typename T, size_t n> void AddResult(
165 const T (&test_results)[n], 157 const T (&test_results)[n],
166 size_t length); 158 size_t length);
167 159
168 void AddResult(const NetEqNetworkStatistics& stats); 160 void AddResult(const NetEqNetworkStatistics& stats);
(...skipping 1420 matching lines...) Expand 10 before | Expand all | Expand 10 after
1589 if (muted) { 1581 if (muted) {
1590 EXPECT_TRUE(AudioFramesEqualExceptData(out_frame1, out_frame2)); 1582 EXPECT_TRUE(AudioFramesEqualExceptData(out_frame1, out_frame2));
1591 } else { 1583 } else {
1592 EXPECT_TRUE(AudioFramesEqual(out_frame1, out_frame2)); 1584 EXPECT_TRUE(AudioFramesEqual(out_frame1, out_frame2));
1593 } 1585 }
1594 } 1586 }
1595 EXPECT_FALSE(muted); 1587 EXPECT_FALSE(muted);
1596 } 1588 }
1597 1589
1598 } // namespace webrtc 1590 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698