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

Side by Side Diff: webrtc/media/base/streamparams_unittest.cc

Issue 2503403004: Add support for FEC-FR semantics in StreamParams. (Closed)
Patch Set: No inline inside class declaration. Created 4 years 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
« no previous file with comments | « webrtc/media/base/streamparams.cc ('k') | webrtc/media/base/testutils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 uint32_t fid_ssrc; 121 uint32_t fid_ssrc;
122 122
123 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(1); 123 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(1);
124 EXPECT_FALSE(sp.AddFidSsrc(10, 20)); 124 EXPECT_FALSE(sp.AddFidSsrc(10, 20));
125 EXPECT_TRUE(sp.AddFidSsrc(1, 2)); 125 EXPECT_TRUE(sp.AddFidSsrc(1, 2));
126 EXPECT_TRUE(sp.GetFidSsrc(1, &fid_ssrc)); 126 EXPECT_TRUE(sp.GetFidSsrc(1, &fid_ssrc));
127 EXPECT_EQ(2u, fid_ssrc); 127 EXPECT_EQ(2u, fid_ssrc);
128 EXPECT_FALSE(sp.GetFidSsrc(15, &fid_ssrc)); 128 EXPECT_FALSE(sp.GetFidSsrc(15, &fid_ssrc));
129 129
130 sp.add_ssrc(20); 130 sp.add_ssrc(20);
131 sp.AddFidSsrc(20, 30); 131 EXPECT_TRUE(sp.AddFidSsrc(20, 30));
132 EXPECT_TRUE(sp.GetFidSsrc(20, &fid_ssrc)); 132 EXPECT_TRUE(sp.GetFidSsrc(20, &fid_ssrc));
133 EXPECT_EQ(30u, fid_ssrc); 133 EXPECT_EQ(30u, fid_ssrc);
134 134
135 // Manually create SsrcGroup to test bounds-checking 135 // Manually create SsrcGroup to test bounds-checking
136 // in GetSecondarySsrc. We construct an invalid StreamParams 136 // in GetSecondarySsrc. We construct an invalid StreamParams
137 // for this. 137 // for this.
138 std::vector<uint32_t> fid_vector; 138 std::vector<uint32_t> fid_vector;
139 fid_vector.push_back(13); 139 fid_vector.push_back(13);
140 cricket::SsrcGroup invalid_fid_group(cricket::kFidSsrcGroupSemantics, 140 cricket::SsrcGroup invalid_fid_group(cricket::kFidSsrcGroupSemantics,
141 fid_vector); 141 fid_vector);
(...skipping 28 matching lines...) Expand all
170 sp.GetFidSsrcs(primary_ssrcs, &fid_ssrcs); 170 sp.GetFidSsrcs(primary_ssrcs, &fid_ssrcs);
171 ASSERT_EQ(3u, primary_ssrcs.size()); 171 ASSERT_EQ(3u, primary_ssrcs.size());
172 EXPECT_EQ(1u, primary_ssrcs[0]); 172 EXPECT_EQ(1u, primary_ssrcs[0]);
173 EXPECT_EQ(2u, primary_ssrcs[1]); 173 EXPECT_EQ(2u, primary_ssrcs[1]);
174 EXPECT_EQ(3u, primary_ssrcs[2]); 174 EXPECT_EQ(3u, primary_ssrcs[2]);
175 ASSERT_EQ(2u, fid_ssrcs.size()); 175 ASSERT_EQ(2u, fid_ssrcs.size());
176 EXPECT_EQ(10u, fid_ssrcs[0]); 176 EXPECT_EQ(10u, fid_ssrcs[0]);
177 EXPECT_EQ(20u, fid_ssrcs[1]); 177 EXPECT_EQ(20u, fid_ssrcs[1]);
178 } 178 }
179 179
180 TEST(StreamParams, FecFrFunctions) {
181 uint32_t fecfr_ssrc;
182
183 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(1);
184 EXPECT_FALSE(sp.AddFecFrSsrc(10, 20));
185 EXPECT_TRUE(sp.AddFecFrSsrc(1, 2));
186 EXPECT_TRUE(sp.GetFecFrSsrc(1, &fecfr_ssrc));
187 EXPECT_EQ(2u, fecfr_ssrc);
188 EXPECT_FALSE(sp.GetFecFrSsrc(15, &fecfr_ssrc));
189
190 sp.add_ssrc(20);
191 EXPECT_TRUE(sp.AddFecFrSsrc(20, 30));
192 EXPECT_TRUE(sp.GetFecFrSsrc(20, &fecfr_ssrc));
193 EXPECT_EQ(30u, fecfr_ssrc);
194
195 // Manually create SsrcGroup to test bounds-checking
196 // in GetSecondarySsrc. We construct an invalid StreamParams
197 // for this.
198 std::vector<uint32_t> fecfr_vector;
199 fecfr_vector.push_back(13);
200 cricket::SsrcGroup invalid_fecfr_group(cricket::kFecFrSsrcGroupSemantics,
201 fecfr_vector);
202 cricket::StreamParams sp_invalid;
203 sp_invalid.add_ssrc(13);
204 sp_invalid.ssrc_groups.push_back(invalid_fecfr_group);
205 EXPECT_FALSE(sp_invalid.GetFecFrSsrc(13, &fecfr_ssrc));
206 }
207
180 TEST(StreamParams, ToString) { 208 TEST(StreamParams, ToString) {
181 cricket::StreamParams sp = 209 cricket::StreamParams sp =
182 CreateStreamParamsWithSsrcGroup("XYZ", kSsrcs2, arraysize(kSsrcs2)); 210 CreateStreamParamsWithSsrcGroup("XYZ", kSsrcs2, arraysize(kSsrcs2));
183 EXPECT_STREQ("{ssrcs:[1,2];ssrc_groups:{semantics:XYZ;ssrcs:[1,2]};}", 211 EXPECT_STREQ("{ssrcs:[1,2];ssrc_groups:{semantics:XYZ;ssrcs:[1,2]};}",
184 sp.ToString().c_str()); 212 sp.ToString().c_str());
185 } 213 }
186 214
187
188 TEST(StreamParams, TestIsOneSsrcStream_LegacyStream) { 215 TEST(StreamParams, TestIsOneSsrcStream_LegacyStream) {
189 EXPECT_TRUE( 216 EXPECT_TRUE(
190 cricket::IsOneSsrcStream(cricket::StreamParams::CreateLegacy(13))); 217 cricket::IsOneSsrcStream(cricket::StreamParams::CreateLegacy(13)));
191 } 218 }
192 219
193 TEST(StreamParams, TestIsOneSsrcStream_SingleRtxStream) { 220 TEST(StreamParams, TestIsOneSsrcStream_SingleRtxStream) {
194 cricket::StreamParams stream; 221 cricket::StreamParams stream;
195 stream.add_ssrc(13); 222 stream.add_ssrc(13);
196 EXPECT_TRUE(stream.AddFidSsrc(13, 14)); 223 EXPECT_TRUE(stream.AddFidSsrc(13, 14));
197 EXPECT_TRUE(cricket::IsOneSsrcStream(stream)); 224 EXPECT_TRUE(cricket::IsOneSsrcStream(stream));
198 } 225 }
199 226
227 TEST(StreamParams, TestIsOneSsrcStream_SingleFlexfecStream) {
228 cricket::StreamParams stream;
229 stream.add_ssrc(13);
230 EXPECT_TRUE(stream.AddFecFrSsrc(13, 14));
231 EXPECT_TRUE(cricket::IsOneSsrcStream(stream));
232 }
233
234 TEST(StreamParams, TestIsOneSsrcStream_SingleFlexfecAndRtxStream) {
235 cricket::StreamParams stream;
236 stream.add_ssrc(13);
237 EXPECT_TRUE(stream.AddFecFrSsrc(13, 14));
238 EXPECT_TRUE(stream.AddFidSsrc(13, 15));
239 EXPECT_TRUE(cricket::IsOneSsrcStream(stream));
240 }
241
200 TEST(StreamParams, TestIsOneSsrcStream_SimulcastStream) { 242 TEST(StreamParams, TestIsOneSsrcStream_SimulcastStream) {
201 EXPECT_FALSE(cricket::IsOneSsrcStream( 243 EXPECT_FALSE(cricket::IsOneSsrcStream(
202 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs2)))); 244 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs2))));
203 EXPECT_FALSE(cricket::IsOneSsrcStream( 245 EXPECT_FALSE(cricket::IsOneSsrcStream(
204 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs3)))); 246 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs3))));
205 } 247 }
206 248
207 TEST(StreamParams, TestIsOneSsrcStream_SimRtxStream) { 249 TEST(StreamParams, TestIsOneSsrcStream_SimRtxStream) {
208 cricket::StreamParams stream = 250 cricket::StreamParams stream =
209 cricket::CreateSimWithRtxStreamParams("cname", 251 cricket::CreateSimWithRtxStreamParams("cname",
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 cricket::StreamParams stream3 = 301 cricket::StreamParams stream3 =
260 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs2)); 302 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs2));
261 std::vector<uint32_t> sim_ssrcs = MAKE_VECTOR(kRtxSsrcs3); 303 std::vector<uint32_t> sim_ssrcs = MAKE_VECTOR(kRtxSsrcs3);
262 cricket::SsrcGroup sg(cricket::kSimSsrcGroupSemantics, sim_ssrcs); 304 cricket::SsrcGroup sg(cricket::kSimSsrcGroupSemantics, sim_ssrcs);
263 for (size_t i = 0; i < sim_ssrcs.size(); i++) { 305 for (size_t i = 0; i < sim_ssrcs.size(); i++) {
264 stream3.add_ssrc(sim_ssrcs[i]); 306 stream3.add_ssrc(sim_ssrcs[i]);
265 } 307 }
266 stream3.ssrc_groups.push_back(sg); 308 stream3.ssrc_groups.push_back(sg);
267 EXPECT_FALSE(cricket::IsSimulcastStream(stream3)); 309 EXPECT_FALSE(cricket::IsSimulcastStream(stream3));
268 } 310 }
OLDNEW
« no previous file with comments | « webrtc/media/base/streamparams.cc ('k') | webrtc/media/base/testutils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698