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

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

Issue 2355503002: Stopped using the NetEqDecoder enum internally in NetEq. (Closed)
Patch Set: Created 4 years, 3 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) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 })); 59 }));
60 DecoderDatabase db(factory); 60 DecoderDatabase db(factory);
61 const uint8_t kPayloadType = 0; 61 const uint8_t kPayloadType = 0;
62 const std::string kCodecName = "Robert\'); DROP TABLE Students;"; 62 const std::string kCodecName = "Robert\'); DROP TABLE Students;";
63 EXPECT_EQ( 63 EXPECT_EQ(
64 DecoderDatabase::kOK, 64 DecoderDatabase::kOK,
65 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCMu, kCodecName)); 65 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCMu, kCodecName));
66 const DecoderDatabase::DecoderInfo* info; 66 const DecoderDatabase::DecoderInfo* info;
67 info = db.GetDecoderInfo(kPayloadType); 67 info = db.GetDecoderInfo(kPayloadType);
68 ASSERT_TRUE(info != NULL); 68 ASSERT_TRUE(info != NULL);
69 EXPECT_EQ(NetEqDecoder::kDecoderPCMu, info->codec_type); 69 EXPECT_TRUE(info->IsType("pcmu"));
70 EXPECT_EQ(kCodecName, info->name); 70 EXPECT_EQ(kCodecName, info->name);
71 EXPECT_EQ(decoder, db.GetDecoder(kPayloadType)); 71 EXPECT_EQ(decoder, db.GetDecoder(kPayloadType));
72 info = db.GetDecoderInfo(kPayloadType + 1); // Other payload type. 72 info = db.GetDecoderInfo(kPayloadType + 1); // Other payload type.
73 EXPECT_TRUE(info == NULL); // Should not be found. 73 EXPECT_TRUE(info == NULL); // Should not be found.
74 } 74 }
75 75
76 TEST(DecoderDatabase, GetRtpPayloadType) {
77 DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>);
78 const uint8_t kPayloadType = 0;
79 const std::string kCodecName = "Robert\'); DROP TABLE Students;";
80 EXPECT_EQ(
81 DecoderDatabase::kOK,
82 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCMu, kCodecName));
83 EXPECT_EQ(kPayloadType, db.GetRtpPayloadType(NetEqDecoder::kDecoderPCMu));
84 const uint8_t expected_value = DecoderDatabase::kRtpPayloadTypeError;
85 EXPECT_EQ(expected_value,
86 db.GetRtpPayloadType(
87 NetEqDecoder::kDecoderISAC)); // iSAC is not registered.
88 }
89
90 TEST(DecoderDatabase, GetDecoder) { 76 TEST(DecoderDatabase, GetDecoder) {
91 DecoderDatabase db(CreateBuiltinAudioDecoderFactory()); 77 DecoderDatabase db(CreateBuiltinAudioDecoderFactory());
92 const uint8_t kPayloadType = 0; 78 const uint8_t kPayloadType = 0;
93 const std::string kCodecName = "Robert\'); DROP TABLE Students;"; 79 const std::string kCodecName = "Robert\'); DROP TABLE Students;";
94 EXPECT_EQ(DecoderDatabase::kOK, 80 EXPECT_EQ(DecoderDatabase::kOK,
95 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCM16B, 81 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCM16B,
96 kCodecName)); 82 kCodecName));
97 AudioDecoder* dec = db.GetDecoder(kPayloadType); 83 AudioDecoder* dec = db.GetDecoder(kPayloadType);
98 ASSERT_TRUE(dec != NULL); 84 ASSERT_TRUE(dec != NULL);
99 } 85 }
(...skipping 19 matching lines...) Expand all
119 DecoderDatabase::kOK, 105 DecoderDatabase::kOK,
120 db.RegisterPayload(kPayloadTypeRed, NetEqDecoder::kDecoderRED, "red")); 106 db.RegisterPayload(kPayloadTypeRed, NetEqDecoder::kDecoderRED, "red"));
121 EXPECT_EQ(4, db.Size()); 107 EXPECT_EQ(4, db.Size());
122 // Test. 108 // Test.
123 EXPECT_FALSE(db.IsComfortNoise(kPayloadNotUsed)); 109 EXPECT_FALSE(db.IsComfortNoise(kPayloadNotUsed));
124 EXPECT_FALSE(db.IsDtmf(kPayloadNotUsed)); 110 EXPECT_FALSE(db.IsDtmf(kPayloadNotUsed));
125 EXPECT_FALSE(db.IsRed(kPayloadNotUsed)); 111 EXPECT_FALSE(db.IsRed(kPayloadNotUsed));
126 EXPECT_FALSE(db.IsComfortNoise(kPayloadTypePcmU)); 112 EXPECT_FALSE(db.IsComfortNoise(kPayloadTypePcmU));
127 EXPECT_FALSE(db.IsDtmf(kPayloadTypePcmU)); 113 EXPECT_FALSE(db.IsDtmf(kPayloadTypePcmU));
128 EXPECT_FALSE(db.IsRed(kPayloadTypePcmU)); 114 EXPECT_FALSE(db.IsRed(kPayloadTypePcmU));
129 EXPECT_FALSE(db.IsType(kPayloadTypePcmU, NetEqDecoder::kDecoderISAC)); 115 EXPECT_FALSE(db.IsType(kPayloadTypePcmU, "isac"));
130 EXPECT_TRUE(db.IsType(kPayloadTypePcmU, NetEqDecoder::kDecoderPCMu)); 116 EXPECT_TRUE(db.IsType(kPayloadTypePcmU, "pcmu"));
131 EXPECT_TRUE(db.IsComfortNoise(kPayloadTypeCng)); 117 EXPECT_TRUE(db.IsComfortNoise(kPayloadTypeCng));
132 EXPECT_TRUE(db.IsDtmf(kPayloadTypeDtmf)); 118 EXPECT_TRUE(db.IsDtmf(kPayloadTypeDtmf));
133 EXPECT_TRUE(db.IsRed(kPayloadTypeRed)); 119 EXPECT_TRUE(db.IsRed(kPayloadTypeRed));
134 } 120 }
135 121
136 TEST(DecoderDatabase, ExternalDecoder) { 122 TEST(DecoderDatabase, ExternalDecoder) {
137 DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>); 123 DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>);
138 const uint8_t kPayloadType = 0; 124 const uint8_t kPayloadType = 0;
139 const std::string kCodecName = "Robert\'); DROP TABLE Students;"; 125 const std::string kCodecName = "Robert\'); DROP TABLE Students;";
140 MockAudioDecoder decoder; 126 MockAudioDecoder decoder;
141 // Load into database. 127 // Load into database.
142 EXPECT_EQ(DecoderDatabase::kOK, 128 EXPECT_EQ(DecoderDatabase::kOK,
143 db.InsertExternal(kPayloadType, NetEqDecoder::kDecoderPCMu, 129 db.InsertExternal(kPayloadType, NetEqDecoder::kDecoderPCMu,
144 kCodecName, &decoder)); 130 kCodecName, &decoder));
145 EXPECT_EQ(1, db.Size()); 131 EXPECT_EQ(1, db.Size());
146 // Get decoder and make sure we get the external one. 132 // Get decoder and make sure we get the external one.
147 EXPECT_EQ(&decoder, db.GetDecoder(kPayloadType)); 133 EXPECT_EQ(&decoder, db.GetDecoder(kPayloadType));
148 // Get the decoder info struct and check it too. 134 // Get the decoder info struct and check it too.
149 const DecoderDatabase::DecoderInfo* info; 135 const DecoderDatabase::DecoderInfo* info;
150 info = db.GetDecoderInfo(kPayloadType); 136 info = db.GetDecoderInfo(kPayloadType);
151 ASSERT_TRUE(info != NULL); 137 ASSERT_TRUE(info != NULL);
152 EXPECT_EQ(NetEqDecoder::kDecoderPCMu, info->codec_type); 138 EXPECT_TRUE(info->IsType("pcmu"));
139 EXPECT_EQ(info->name, kCodecName);
153 EXPECT_EQ(kCodecName, info->name); 140 EXPECT_EQ(kCodecName, info->name);
154 // Expect not to delete the decoder when removing it from the database, since 141 // Expect not to delete the decoder when removing it from the database, since
155 // it was declared externally. 142 // it was declared externally.
156 EXPECT_CALL(decoder, Die()).Times(0); 143 EXPECT_CALL(decoder, Die()).Times(0);
157 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(kPayloadType)); 144 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(kPayloadType));
158 EXPECT_TRUE(db.Empty()); 145 EXPECT_TRUE(db.Empty());
159 146
160 EXPECT_CALL(decoder, Die()).Times(1); // Will be called when |db| is deleted. 147 EXPECT_CALL(decoder, Die()).Times(1); // Will be called when |db| is deleted.
161 } 148 }
162 149
163 TEST(DecoderDatabase, CheckPayloadTypes) { 150 TEST(DecoderDatabase, CheckPayloadTypes) {
164 DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>); 151 DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>);
165 // Load a number of payloads into the database. Payload types are 0, 1, ..., 152 // Load a number of payloads into the database. Payload types are 0, 1, ...,
166 // while the decoder type is the same for all payload types (this does not 153 // while the decoder type is the same for all payload types (this does not
167 // matter for the test). 154 // matter for the test).
168 const int kNumPayloads = 10; 155 const int kNumPayloads = 10;
169 for (uint8_t payload_type = 0; payload_type < kNumPayloads; ++payload_type) { 156 for (uint8_t payload_type = 0; payload_type < kNumPayloads; ++payload_type) {
170 EXPECT_EQ( 157 EXPECT_EQ(
171 DecoderDatabase::kOK, 158 DecoderDatabase::kOK,
172 db.RegisterPayload(payload_type, NetEqDecoder::kDecoderArbitrary, "")); 159 db.RegisterPayload(payload_type, NetEqDecoder::kDecoderPCMu, ""));
173 } 160 }
174 PacketList packet_list; 161 PacketList packet_list;
175 for (int i = 0; i < kNumPayloads + 1; ++i) { 162 for (int i = 0; i < kNumPayloads + 1; ++i) {
176 // Create packet with payload type |i|. The last packet will have a payload 163 // Create packet with payload type |i|. The last packet will have a payload
177 // type that is not registered in the decoder database. 164 // type that is not registered in the decoder database.
178 Packet* packet = new Packet; 165 Packet* packet = new Packet;
179 packet->header.payloadType = i; 166 packet->header.payloadType = i;
180 packet_list.push_back(packet); 167 packet_list.push_back(packet);
181 } 168 }
182 169
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(13)); 236 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(13));
250 EXPECT_EQ(NULL, db.GetActiveCngDecoder()); 237 EXPECT_EQ(NULL, db.GetActiveCngDecoder());
251 238
252 // Try to set non-existing codecs as active. 239 // Try to set non-existing codecs as active.
253 EXPECT_EQ(DecoderDatabase::kDecoderNotFound, 240 EXPECT_EQ(DecoderDatabase::kDecoderNotFound,
254 db.SetActiveDecoder(17, &changed)); 241 db.SetActiveDecoder(17, &changed));
255 EXPECT_EQ(DecoderDatabase::kDecoderNotFound, 242 EXPECT_EQ(DecoderDatabase::kDecoderNotFound,
256 db.SetActiveCngDecoder(17)); 243 db.SetActiveCngDecoder(17));
257 } 244 }
258 } // namespace webrtc 245 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698