| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 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 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 int w, | 299 int w, |
| 300 int h) { | 300 int h) { |
| 301 rtc::FileStream fs; | 301 rtc::FileStream fs; |
| 302 char filename[256]; | 302 char filename[256]; |
| 303 rtc::sprintfn(filename, sizeof(filename), "%s.%dx%d_ARGB.raw", | 303 rtc::sprintfn(filename, sizeof(filename), "%s.%dx%d_ARGB.raw", |
| 304 prefix.c_str(), w, h); | 304 prefix.c_str(), w, h); |
| 305 fs.Open(filename, "wb", NULL); | 305 fs.Open(filename, "wb", NULL); |
| 306 fs.Write(img, ARGB_SIZE(w, h), NULL, NULL); | 306 fs.Write(img, ARGB_SIZE(w, h), NULL, NULL); |
| 307 } | 307 } |
| 308 | 308 |
| 309 bool VideoFrameEqual(const VideoFrame* frame0, const VideoFrame* frame1) { | |
| 310 const uint8_t* y0 = frame0->GetYPlane(); | |
| 311 const uint8_t* u0 = frame0->GetUPlane(); | |
| 312 const uint8_t* v0 = frame0->GetVPlane(); | |
| 313 const uint8_t* y1 = frame1->GetYPlane(); | |
| 314 const uint8_t* u1 = frame1->GetUPlane(); | |
| 315 const uint8_t* v1 = frame1->GetVPlane(); | |
| 316 | |
| 317 for (size_t i = 0; i < frame0->GetHeight(); ++i) { | |
| 318 if (0 != memcmp(y0, y1, frame0->GetWidth())) { | |
| 319 return false; | |
| 320 } | |
| 321 y0 += frame0->GetYPitch(); | |
| 322 y1 += frame1->GetYPitch(); | |
| 323 } | |
| 324 | |
| 325 for (size_t i = 0; i < frame0->GetChromaHeight(); ++i) { | |
| 326 if (0 != memcmp(u0, u1, frame0->GetChromaWidth())) { | |
| 327 return false; | |
| 328 } | |
| 329 if (0 != memcmp(v0, v1, frame0->GetChromaWidth())) { | |
| 330 return false; | |
| 331 } | |
| 332 u0 += frame0->GetUPitch(); | |
| 333 v0 += frame0->GetVPitch(); | |
| 334 u1 += frame1->GetUPitch(); | |
| 335 v1 += frame1->GetVPitch(); | |
| 336 } | |
| 337 | |
| 338 return true; | |
| 339 } | |
| 340 | |
| 341 cricket::StreamParams CreateSimStreamParams( | 309 cricket::StreamParams CreateSimStreamParams( |
| 342 const std::string& cname, | 310 const std::string& cname, |
| 343 const std::vector<uint32_t>& ssrcs) { | 311 const std::vector<uint32_t>& ssrcs) { |
| 344 cricket::StreamParams sp; | 312 cricket::StreamParams sp; |
| 345 cricket::SsrcGroup sg(cricket::kSimSsrcGroupSemantics, ssrcs); | 313 cricket::SsrcGroup sg(cricket::kSimSsrcGroupSemantics, ssrcs); |
| 346 sp.ssrcs = ssrcs; | 314 sp.ssrcs = ssrcs; |
| 347 sp.ssrc_groups.push_back(sg); | 315 sp.ssrc_groups.push_back(sg); |
| 348 sp.cname = cname; | 316 sp.cname = cname; |
| 349 return sp; | 317 return sp; |
| 350 } | 318 } |
| 351 | 319 |
| 352 // There should be an rtx_ssrc per ssrc. | 320 // There should be an rtx_ssrc per ssrc. |
| 353 cricket::StreamParams CreateSimWithRtxStreamParams( | 321 cricket::StreamParams CreateSimWithRtxStreamParams( |
| 354 const std::string& cname, | 322 const std::string& cname, |
| 355 const std::vector<uint32_t>& ssrcs, | 323 const std::vector<uint32_t>& ssrcs, |
| 356 const std::vector<uint32_t>& rtx_ssrcs) { | 324 const std::vector<uint32_t>& rtx_ssrcs) { |
| 357 cricket::StreamParams sp = CreateSimStreamParams(cname, ssrcs); | 325 cricket::StreamParams sp = CreateSimStreamParams(cname, ssrcs); |
| 358 for (size_t i = 0; i < ssrcs.size(); ++i) { | 326 for (size_t i = 0; i < ssrcs.size(); ++i) { |
| 359 sp.ssrcs.push_back(rtx_ssrcs[i]); | 327 sp.ssrcs.push_back(rtx_ssrcs[i]); |
| 360 std::vector<uint32_t> fid_ssrcs; | 328 std::vector<uint32_t> fid_ssrcs; |
| 361 fid_ssrcs.push_back(ssrcs[i]); | 329 fid_ssrcs.push_back(ssrcs[i]); |
| 362 fid_ssrcs.push_back(rtx_ssrcs[i]); | 330 fid_ssrcs.push_back(rtx_ssrcs[i]); |
| 363 cricket::SsrcGroup fid_group(cricket::kFidSsrcGroupSemantics, fid_ssrcs); | 331 cricket::SsrcGroup fid_group(cricket::kFidSsrcGroupSemantics, fid_ssrcs); |
| 364 sp.ssrc_groups.push_back(fid_group); | 332 sp.ssrc_groups.push_back(fid_group); |
| 365 } | 333 } |
| 366 return sp; | 334 return sp; |
| 367 } | 335 } |
| 368 | 336 |
| 369 } // namespace cricket | 337 } // namespace cricket |
| OLD | NEW |