OLD | NEW |
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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 | 201 |
202 webrtc::RTPHeader rtp_header; | 202 webrtc::RTPHeader rtp_header; |
203 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( | 203 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( |
204 packet_, kPayload, expect_cvo /* marker_bit */, kTimestamp, 0)); | 204 packet_, kPayload, expect_cvo /* marker_bit */, kTimestamp, 0)); |
205 if (expect_cvo) { | 205 if (expect_cvo) { |
206 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), | 206 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), |
207 length); | 207 length); |
208 } else { | 208 } else { |
209 ASSERT_EQ(kRtpHeaderSize, length); | 209 ASSERT_EQ(kRtpHeaderSize, length); |
210 } | 210 } |
211 ASSERT_TRUE(rtp_parser.Parse(rtp_header, map)); | 211 ASSERT_TRUE(rtp_parser.Parse(&rtp_header, map)); |
212 ASSERT_FALSE(rtp_parser.RTCP()); | 212 ASSERT_FALSE(rtp_parser.RTCP()); |
213 EXPECT_EQ(payload_, rtp_header.payloadType); | 213 EXPECT_EQ(payload_, rtp_header.payloadType); |
214 EXPECT_EQ(seq_num, rtp_header.sequenceNumber); | 214 EXPECT_EQ(seq_num, rtp_header.sequenceNumber); |
215 EXPECT_EQ(kTimestamp, rtp_header.timestamp); | 215 EXPECT_EQ(kTimestamp, rtp_header.timestamp); |
216 EXPECT_EQ(rtp_sender_->SSRC(), rtp_header.ssrc); | 216 EXPECT_EQ(rtp_sender_->SSRC(), rtp_header.ssrc); |
217 EXPECT_EQ(0, rtp_header.numCSRCs); | 217 EXPECT_EQ(0, rtp_header.numCSRCs); |
218 EXPECT_EQ(0U, rtp_header.paddingLength); | 218 EXPECT_EQ(0U, rtp_header.paddingLength); |
219 EXPECT_EQ(ConvertVideoRotationToCVOByte(rotation), | 219 EXPECT_EQ(ConvertVideoRotationToCVOByte(rotation), |
220 rtp_header.extension.videoRotation); | 220 rtp_header.extension.videoRotation); |
221 } | 221 } |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 | 328 |
329 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacket) { | 329 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacket) { |
330 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( | 330 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( |
331 packet_, kPayload, kMarkerBit, kTimestamp, 0)); | 331 packet_, kPayload, kMarkerBit, kTimestamp, 0)); |
332 ASSERT_EQ(kRtpHeaderSize, length); | 332 ASSERT_EQ(kRtpHeaderSize, length); |
333 | 333 |
334 // Verify | 334 // Verify |
335 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 335 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
336 webrtc::RTPHeader rtp_header; | 336 webrtc::RTPHeader rtp_header; |
337 | 337 |
338 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, nullptr); | 338 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, nullptr); |
339 | 339 |
340 ASSERT_TRUE(valid_rtp_header); | 340 ASSERT_TRUE(valid_rtp_header); |
341 ASSERT_FALSE(rtp_parser.RTCP()); | 341 ASSERT_FALSE(rtp_parser.RTCP()); |
342 VerifyRTPHeaderCommon(rtp_header); | 342 VerifyRTPHeaderCommon(rtp_header); |
343 EXPECT_EQ(length, rtp_header.headerLength); | 343 EXPECT_EQ(length, rtp_header.headerLength); |
344 EXPECT_FALSE(rtp_header.extension.hasTransmissionTimeOffset); | 344 EXPECT_FALSE(rtp_header.extension.hasTransmissionTimeOffset); |
345 EXPECT_FALSE(rtp_header.extension.hasAbsoluteSendTime); | 345 EXPECT_FALSE(rtp_header.extension.hasAbsoluteSendTime); |
346 EXPECT_FALSE(rtp_header.extension.hasAudioLevel); | 346 EXPECT_FALSE(rtp_header.extension.hasAudioLevel); |
347 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); | 347 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); |
348 EXPECT_EQ(0u, rtp_header.extension.absoluteSendTime); | 348 EXPECT_EQ(0u, rtp_header.extension.absoluteSendTime); |
(...skipping 14 matching lines...) Expand all Loading... |
363 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), | 363 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), |
364 length); | 364 length); |
365 | 365 |
366 // Verify | 366 // Verify |
367 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 367 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
368 webrtc::RTPHeader rtp_header; | 368 webrtc::RTPHeader rtp_header; |
369 | 369 |
370 RtpHeaderExtensionMap map; | 370 RtpHeaderExtensionMap map; |
371 map.Register(kRtpExtensionTransmissionTimeOffset, | 371 map.Register(kRtpExtensionTransmissionTimeOffset, |
372 kTransmissionTimeOffsetExtensionId); | 372 kTransmissionTimeOffsetExtensionId); |
373 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 373 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map); |
374 | 374 |
375 ASSERT_TRUE(valid_rtp_header); | 375 ASSERT_TRUE(valid_rtp_header); |
376 ASSERT_FALSE(rtp_parser.RTCP()); | 376 ASSERT_FALSE(rtp_parser.RTCP()); |
377 VerifyRTPHeaderCommon(rtp_header); | 377 VerifyRTPHeaderCommon(rtp_header); |
378 EXPECT_EQ(length, rtp_header.headerLength); | 378 EXPECT_EQ(length, rtp_header.headerLength); |
379 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); | 379 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); |
380 EXPECT_EQ(kTimeOffset, rtp_header.extension.transmissionTimeOffset); | 380 EXPECT_EQ(kTimeOffset, rtp_header.extension.transmissionTimeOffset); |
381 | 381 |
382 // Parse without map extension | 382 // Parse without map extension |
383 webrtc::RTPHeader rtp_header2; | 383 webrtc::RTPHeader rtp_header2; |
384 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); | 384 const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr); |
385 | 385 |
386 ASSERT_TRUE(valid_rtp_header2); | 386 ASSERT_TRUE(valid_rtp_header2); |
387 VerifyRTPHeaderCommon(rtp_header2); | 387 VerifyRTPHeaderCommon(rtp_header2); |
388 EXPECT_EQ(length, rtp_header2.headerLength); | 388 EXPECT_EQ(length, rtp_header2.headerLength); |
389 EXPECT_FALSE(rtp_header2.extension.hasTransmissionTimeOffset); | 389 EXPECT_FALSE(rtp_header2.extension.hasTransmissionTimeOffset); |
390 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); | 390 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); |
391 } | 391 } |
392 | 392 |
393 TEST_F(RtpSenderTestWithoutPacer, | 393 TEST_F(RtpSenderTestWithoutPacer, |
394 BuildRTPPacketWithNegativeTransmissionOffsetExtension) { | 394 BuildRTPPacketWithNegativeTransmissionOffsetExtension) { |
395 const int kNegTimeOffset = -500; | 395 const int kNegTimeOffset = -500; |
396 EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kNegTimeOffset)); | 396 EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kNegTimeOffset)); |
397 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 397 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
398 kRtpExtensionTransmissionTimeOffset, | 398 kRtpExtensionTransmissionTimeOffset, |
399 kTransmissionTimeOffsetExtensionId)); | 399 kTransmissionTimeOffsetExtensionId)); |
400 | 400 |
401 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( | 401 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( |
402 packet_, kPayload, kMarkerBit, kTimestamp, 0)); | 402 packet_, kPayload, kMarkerBit, kTimestamp, 0)); |
403 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), | 403 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), |
404 length); | 404 length); |
405 | 405 |
406 // Verify | 406 // Verify |
407 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 407 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
408 webrtc::RTPHeader rtp_header; | 408 webrtc::RTPHeader rtp_header; |
409 | 409 |
410 RtpHeaderExtensionMap map; | 410 RtpHeaderExtensionMap map; |
411 map.Register(kRtpExtensionTransmissionTimeOffset, | 411 map.Register(kRtpExtensionTransmissionTimeOffset, |
412 kTransmissionTimeOffsetExtensionId); | 412 kTransmissionTimeOffsetExtensionId); |
413 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 413 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map); |
414 | 414 |
415 ASSERT_TRUE(valid_rtp_header); | 415 ASSERT_TRUE(valid_rtp_header); |
416 ASSERT_FALSE(rtp_parser.RTCP()); | 416 ASSERT_FALSE(rtp_parser.RTCP()); |
417 VerifyRTPHeaderCommon(rtp_header); | 417 VerifyRTPHeaderCommon(rtp_header); |
418 EXPECT_EQ(length, rtp_header.headerLength); | 418 EXPECT_EQ(length, rtp_header.headerLength); |
419 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); | 419 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); |
420 EXPECT_EQ(kNegTimeOffset, rtp_header.extension.transmissionTimeOffset); | 420 EXPECT_EQ(kNegTimeOffset, rtp_header.extension.transmissionTimeOffset); |
421 } | 421 } |
422 | 422 |
423 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAbsoluteSendTimeExtension) { | 423 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAbsoluteSendTimeExtension) { |
424 EXPECT_EQ(0, rtp_sender_->SetAbsoluteSendTime(kAbsoluteSendTime)); | 424 EXPECT_EQ(0, rtp_sender_->SetAbsoluteSendTime(kAbsoluteSendTime)); |
425 EXPECT_EQ( | 425 EXPECT_EQ( |
426 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, | 426 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, |
427 kAbsoluteSendTimeExtensionId)); | 427 kAbsoluteSendTimeExtensionId)); |
428 | 428 |
429 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( | 429 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( |
430 packet_, kPayload, kMarkerBit, kTimestamp, 0)); | 430 packet_, kPayload, kMarkerBit, kTimestamp, 0)); |
431 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), | 431 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), |
432 length); | 432 length); |
433 | 433 |
434 // Verify | 434 // Verify |
435 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 435 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
436 webrtc::RTPHeader rtp_header; | 436 webrtc::RTPHeader rtp_header; |
437 | 437 |
438 RtpHeaderExtensionMap map; | 438 RtpHeaderExtensionMap map; |
439 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); | 439 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); |
440 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 440 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map); |
441 | 441 |
442 ASSERT_TRUE(valid_rtp_header); | 442 ASSERT_TRUE(valid_rtp_header); |
443 ASSERT_FALSE(rtp_parser.RTCP()); | 443 ASSERT_FALSE(rtp_parser.RTCP()); |
444 VerifyRTPHeaderCommon(rtp_header); | 444 VerifyRTPHeaderCommon(rtp_header); |
445 EXPECT_EQ(length, rtp_header.headerLength); | 445 EXPECT_EQ(length, rtp_header.headerLength); |
446 EXPECT_TRUE(rtp_header.extension.hasAbsoluteSendTime); | 446 EXPECT_TRUE(rtp_header.extension.hasAbsoluteSendTime); |
447 EXPECT_EQ(kAbsoluteSendTime, rtp_header.extension.absoluteSendTime); | 447 EXPECT_EQ(kAbsoluteSendTime, rtp_header.extension.absoluteSendTime); |
448 | 448 |
449 // Parse without map extension | 449 // Parse without map extension |
450 webrtc::RTPHeader rtp_header2; | 450 webrtc::RTPHeader rtp_header2; |
451 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); | 451 const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr); |
452 | 452 |
453 ASSERT_TRUE(valid_rtp_header2); | 453 ASSERT_TRUE(valid_rtp_header2); |
454 VerifyRTPHeaderCommon(rtp_header2); | 454 VerifyRTPHeaderCommon(rtp_header2); |
455 EXPECT_EQ(length, rtp_header2.headerLength); | 455 EXPECT_EQ(length, rtp_header2.headerLength); |
456 EXPECT_FALSE(rtp_header2.extension.hasAbsoluteSendTime); | 456 EXPECT_FALSE(rtp_header2.extension.hasAbsoluteSendTime); |
457 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime); | 457 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime); |
458 } | 458 } |
459 | 459 |
460 // Test CVO header extension is only set when marker bit is true. | 460 // Test CVO header extension is only set when marker bit is true. |
461 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithVideoRotation_MarkerBit) { | 461 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithVideoRotation_MarkerBit) { |
462 rtp_sender_->SetVideoRotation(kRotation); | 462 rtp_sender_->SetVideoRotation(kRotation); |
463 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 463 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
464 kRtpExtensionVideoRotation, kVideoRotationExtensionId)); | 464 kRtpExtensionVideoRotation, kVideoRotationExtensionId)); |
465 EXPECT_TRUE(rtp_sender_->ActivateCVORtpHeaderExtension()); | 465 EXPECT_TRUE(rtp_sender_->ActivateCVORtpHeaderExtension()); |
466 | 466 |
467 RtpHeaderExtensionMap map; | 467 RtpHeaderExtensionMap map; |
468 map.Register(kRtpExtensionVideoRotation, kVideoRotationExtensionId); | 468 map.Register(kRtpExtensionVideoRotation, kVideoRotationExtensionId); |
469 | 469 |
470 size_t length = static_cast<size_t>( | 470 size_t length = static_cast<size_t>( |
471 rtp_sender_->BuildRTPheader(packet_, kPayload, true, kTimestamp, 0)); | 471 rtp_sender_->BuildRTPheader(packet_, kPayload, true, kTimestamp, 0)); |
472 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), | 472 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), |
473 length); | 473 length); |
474 | 474 |
475 // Verify | 475 // Verify |
476 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 476 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
477 webrtc::RTPHeader rtp_header; | 477 webrtc::RTPHeader rtp_header; |
478 | 478 |
479 ASSERT_TRUE(rtp_parser.Parse(rtp_header, &map)); | 479 ASSERT_TRUE(rtp_parser.Parse(&rtp_header, &map)); |
480 ASSERT_FALSE(rtp_parser.RTCP()); | 480 ASSERT_FALSE(rtp_parser.RTCP()); |
481 VerifyRTPHeaderCommon(rtp_header); | 481 VerifyRTPHeaderCommon(rtp_header); |
482 EXPECT_EQ(length, rtp_header.headerLength); | 482 EXPECT_EQ(length, rtp_header.headerLength); |
483 EXPECT_TRUE(rtp_header.extension.hasVideoRotation); | 483 EXPECT_TRUE(rtp_header.extension.hasVideoRotation); |
484 EXPECT_EQ(ConvertVideoRotationToCVOByte(kRotation), | 484 EXPECT_EQ(ConvertVideoRotationToCVOByte(kRotation), |
485 rtp_header.extension.videoRotation); | 485 rtp_header.extension.videoRotation); |
486 } | 486 } |
487 | 487 |
488 // Test CVO header extension is not set when marker bit is false. | 488 // Test CVO header extension is not set when marker bit is false. |
489 TEST_F(RtpSenderTestWithoutPacer, | 489 TEST_F(RtpSenderTestWithoutPacer, |
490 DISABLED_BuildRTPPacketWithVideoRotation_NoMarkerBit) { | 490 DISABLED_BuildRTPPacketWithVideoRotation_NoMarkerBit) { |
491 rtp_sender_->SetVideoRotation(kRotation); | 491 rtp_sender_->SetVideoRotation(kRotation); |
492 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 492 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
493 kRtpExtensionVideoRotation, kVideoRotationExtensionId)); | 493 kRtpExtensionVideoRotation, kVideoRotationExtensionId)); |
494 EXPECT_TRUE(rtp_sender_->ActivateCVORtpHeaderExtension()); | 494 EXPECT_TRUE(rtp_sender_->ActivateCVORtpHeaderExtension()); |
495 | 495 |
496 RtpHeaderExtensionMap map; | 496 RtpHeaderExtensionMap map; |
497 map.Register(kRtpExtensionVideoRotation, kVideoRotationExtensionId); | 497 map.Register(kRtpExtensionVideoRotation, kVideoRotationExtensionId); |
498 | 498 |
499 size_t length = static_cast<size_t>( | 499 size_t length = static_cast<size_t>( |
500 rtp_sender_->BuildRTPheader(packet_, kPayload, false, kTimestamp, 0)); | 500 rtp_sender_->BuildRTPheader(packet_, kPayload, false, kTimestamp, 0)); |
501 ASSERT_EQ(kRtpHeaderSize, length); | 501 ASSERT_EQ(kRtpHeaderSize, length); |
502 | 502 |
503 // Verify | 503 // Verify |
504 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 504 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
505 webrtc::RTPHeader rtp_header; | 505 webrtc::RTPHeader rtp_header; |
506 | 506 |
507 ASSERT_TRUE(rtp_parser.Parse(rtp_header, &map)); | 507 ASSERT_TRUE(rtp_parser.Parse(&rtp_header, &map)); |
508 ASSERT_FALSE(rtp_parser.RTCP()); | 508 ASSERT_FALSE(rtp_parser.RTCP()); |
509 VerifyRTPHeaderCommon(rtp_header, false); | 509 VerifyRTPHeaderCommon(rtp_header, false); |
510 EXPECT_EQ(length, rtp_header.headerLength); | 510 EXPECT_EQ(length, rtp_header.headerLength); |
511 EXPECT_FALSE(rtp_header.extension.hasVideoRotation); | 511 EXPECT_FALSE(rtp_header.extension.hasVideoRotation); |
512 } | 512 } |
513 | 513 |
514 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAudioLevelExtension) { | 514 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAudioLevelExtension) { |
515 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAudioLevel, | 515 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAudioLevel, |
516 kAudioLevelExtensionId)); | 516 kAudioLevelExtensionId)); |
517 | 517 |
518 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( | 518 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( |
519 packet_, kPayload, kMarkerBit, kTimestamp, 0)); | 519 packet_, kPayload, kMarkerBit, kTimestamp, 0)); |
520 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), | 520 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), |
521 length); | 521 length); |
522 | 522 |
523 // Verify | 523 // Verify |
524 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 524 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
525 webrtc::RTPHeader rtp_header; | 525 webrtc::RTPHeader rtp_header; |
526 | 526 |
527 // Updating audio level is done in RTPSenderAudio, so simulate it here. | 527 // Updating audio level is done in RTPSenderAudio, so simulate it here. |
528 rtp_parser.Parse(rtp_header); | 528 rtp_parser.Parse(&rtp_header); |
529 rtp_sender_->UpdateAudioLevel(packet_, length, rtp_header, true, kAudioLevel); | 529 rtp_sender_->UpdateAudioLevel(packet_, length, rtp_header, true, kAudioLevel); |
530 | 530 |
531 RtpHeaderExtensionMap map; | 531 RtpHeaderExtensionMap map; |
532 map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId); | 532 map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId); |
533 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 533 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map); |
534 | 534 |
535 ASSERT_TRUE(valid_rtp_header); | 535 ASSERT_TRUE(valid_rtp_header); |
536 ASSERT_FALSE(rtp_parser.RTCP()); | 536 ASSERT_FALSE(rtp_parser.RTCP()); |
537 VerifyRTPHeaderCommon(rtp_header); | 537 VerifyRTPHeaderCommon(rtp_header); |
538 EXPECT_EQ(length, rtp_header.headerLength); | 538 EXPECT_EQ(length, rtp_header.headerLength); |
539 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); | 539 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); |
540 EXPECT_TRUE(rtp_header.extension.voiceActivity); | 540 EXPECT_TRUE(rtp_header.extension.voiceActivity); |
541 EXPECT_EQ(kAudioLevel, rtp_header.extension.audioLevel); | 541 EXPECT_EQ(kAudioLevel, rtp_header.extension.audioLevel); |
542 | 542 |
543 // Parse without map extension | 543 // Parse without map extension |
544 webrtc::RTPHeader rtp_header2; | 544 webrtc::RTPHeader rtp_header2; |
545 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); | 545 const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr); |
546 | 546 |
547 ASSERT_TRUE(valid_rtp_header2); | 547 ASSERT_TRUE(valid_rtp_header2); |
548 VerifyRTPHeaderCommon(rtp_header2); | 548 VerifyRTPHeaderCommon(rtp_header2); |
549 EXPECT_EQ(length, rtp_header2.headerLength); | 549 EXPECT_EQ(length, rtp_header2.headerLength); |
550 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); | 550 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); |
551 EXPECT_FALSE(rtp_header2.extension.voiceActivity); | 551 EXPECT_FALSE(rtp_header2.extension.voiceActivity); |
552 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); | 552 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); |
553 } | 553 } |
554 | 554 |
555 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithHeaderExtensions) { | 555 TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithHeaderExtensions) { |
(...skipping 16 matching lines...) Expand all Loading... |
572 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( | 572 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( |
573 packet_, kPayload, kMarkerBit, kTimestamp, 0)); | 573 packet_, kPayload, kMarkerBit, kTimestamp, 0)); |
574 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), | 574 ASSERT_EQ(kRtpHeaderSize + rtp_sender_->RtpHeaderExtensionTotalLength(), |
575 length); | 575 length); |
576 | 576 |
577 // Verify | 577 // Verify |
578 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 578 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
579 webrtc::RTPHeader rtp_header; | 579 webrtc::RTPHeader rtp_header; |
580 | 580 |
581 // Updating audio level is done in RTPSenderAudio, so simulate it here. | 581 // Updating audio level is done in RTPSenderAudio, so simulate it here. |
582 rtp_parser.Parse(rtp_header); | 582 rtp_parser.Parse(&rtp_header); |
583 rtp_sender_->UpdateAudioLevel(packet_, length, rtp_header, true, kAudioLevel); | 583 rtp_sender_->UpdateAudioLevel(packet_, length, rtp_header, true, kAudioLevel); |
584 | 584 |
585 RtpHeaderExtensionMap map; | 585 RtpHeaderExtensionMap map; |
586 map.Register(kRtpExtensionTransmissionTimeOffset, | 586 map.Register(kRtpExtensionTransmissionTimeOffset, |
587 kTransmissionTimeOffsetExtensionId); | 587 kTransmissionTimeOffsetExtensionId); |
588 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); | 588 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); |
589 map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId); | 589 map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId); |
590 map.Register(kRtpExtensionTransportSequenceNumber, | 590 map.Register(kRtpExtensionTransportSequenceNumber, |
591 kTransportSequenceNumberExtensionId); | 591 kTransportSequenceNumberExtensionId); |
592 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 592 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map); |
593 | 593 |
594 ASSERT_TRUE(valid_rtp_header); | 594 ASSERT_TRUE(valid_rtp_header); |
595 ASSERT_FALSE(rtp_parser.RTCP()); | 595 ASSERT_FALSE(rtp_parser.RTCP()); |
596 VerifyRTPHeaderCommon(rtp_header); | 596 VerifyRTPHeaderCommon(rtp_header); |
597 EXPECT_EQ(length, rtp_header.headerLength); | 597 EXPECT_EQ(length, rtp_header.headerLength); |
598 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); | 598 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); |
599 EXPECT_TRUE(rtp_header.extension.hasAbsoluteSendTime); | 599 EXPECT_TRUE(rtp_header.extension.hasAbsoluteSendTime); |
600 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); | 600 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); |
601 EXPECT_TRUE(rtp_header.extension.hasTransportSequenceNumber); | 601 EXPECT_TRUE(rtp_header.extension.hasTransportSequenceNumber); |
602 EXPECT_EQ(kTimeOffset, rtp_header.extension.transmissionTimeOffset); | 602 EXPECT_EQ(kTimeOffset, rtp_header.extension.transmissionTimeOffset); |
603 EXPECT_EQ(kAbsoluteSendTime, rtp_header.extension.absoluteSendTime); | 603 EXPECT_EQ(kAbsoluteSendTime, rtp_header.extension.absoluteSendTime); |
604 EXPECT_TRUE(rtp_header.extension.voiceActivity); | 604 EXPECT_TRUE(rtp_header.extension.voiceActivity); |
605 EXPECT_EQ(kAudioLevel, rtp_header.extension.audioLevel); | 605 EXPECT_EQ(kAudioLevel, rtp_header.extension.audioLevel); |
606 EXPECT_EQ(kTransportSequenceNumber, | 606 EXPECT_EQ(kTransportSequenceNumber, |
607 rtp_header.extension.transportSequenceNumber); | 607 rtp_header.extension.transportSequenceNumber); |
608 | 608 |
609 // Parse without map extension | 609 // Parse without map extension |
610 webrtc::RTPHeader rtp_header2; | 610 webrtc::RTPHeader rtp_header2; |
611 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); | 611 const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr); |
612 | 612 |
613 ASSERT_TRUE(valid_rtp_header2); | 613 ASSERT_TRUE(valid_rtp_header2); |
614 VerifyRTPHeaderCommon(rtp_header2); | 614 VerifyRTPHeaderCommon(rtp_header2); |
615 EXPECT_EQ(length, rtp_header2.headerLength); | 615 EXPECT_EQ(length, rtp_header2.headerLength); |
616 EXPECT_FALSE(rtp_header2.extension.hasTransmissionTimeOffset); | 616 EXPECT_FALSE(rtp_header2.extension.hasTransmissionTimeOffset); |
617 EXPECT_FALSE(rtp_header2.extension.hasAbsoluteSendTime); | 617 EXPECT_FALSE(rtp_header2.extension.hasAbsoluteSendTime); |
618 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); | 618 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); |
619 EXPECT_FALSE(rtp_header2.extension.hasTransportSequenceNumber); | 619 EXPECT_FALSE(rtp_header2.extension.hasTransportSequenceNumber); |
620 | 620 |
621 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); | 621 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 EXPECT_EQ(1, transport_.packets_sent_); | 660 EXPECT_EQ(1, transport_.packets_sent_); |
661 EXPECT_EQ(rtp_length, transport_.last_sent_packet_len_); | 661 EXPECT_EQ(rtp_length, transport_.last_sent_packet_len_); |
662 // Parse sent packet. | 662 // Parse sent packet. |
663 webrtc::RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, | 663 webrtc::RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, |
664 rtp_length); | 664 rtp_length); |
665 webrtc::RTPHeader rtp_header; | 665 webrtc::RTPHeader rtp_header; |
666 RtpHeaderExtensionMap map; | 666 RtpHeaderExtensionMap map; |
667 map.Register(kRtpExtensionTransmissionTimeOffset, | 667 map.Register(kRtpExtensionTransmissionTimeOffset, |
668 kTransmissionTimeOffsetExtensionId); | 668 kTransmissionTimeOffsetExtensionId); |
669 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); | 669 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); |
670 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 670 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map); |
671 ASSERT_TRUE(valid_rtp_header); | 671 ASSERT_TRUE(valid_rtp_header); |
672 | 672 |
673 // Verify transmission time offset. | 673 // Verify transmission time offset. |
674 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); | 674 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); |
675 uint64_t expected_send_time = | 675 uint64_t expected_send_time = |
676 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 676 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); |
677 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 677 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); |
678 } | 678 } |
679 | 679 |
680 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) { | 680 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 EXPECT_EQ(rtp_length, transport_.last_sent_packet_len_); | 720 EXPECT_EQ(rtp_length, transport_.last_sent_packet_len_); |
721 | 721 |
722 // Parse sent packet. | 722 // Parse sent packet. |
723 webrtc::RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, | 723 webrtc::RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, |
724 rtp_length); | 724 rtp_length); |
725 webrtc::RTPHeader rtp_header; | 725 webrtc::RTPHeader rtp_header; |
726 RtpHeaderExtensionMap map; | 726 RtpHeaderExtensionMap map; |
727 map.Register(kRtpExtensionTransmissionTimeOffset, | 727 map.Register(kRtpExtensionTransmissionTimeOffset, |
728 kTransmissionTimeOffsetExtensionId); | 728 kTransmissionTimeOffsetExtensionId); |
729 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); | 729 map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId); |
730 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 730 const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map); |
731 ASSERT_TRUE(valid_rtp_header); | 731 ASSERT_TRUE(valid_rtp_header); |
732 | 732 |
733 // Verify transmission time offset. | 733 // Verify transmission time offset. |
734 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); | 734 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); |
735 uint64_t expected_send_time = | 735 uint64_t expected_send_time = |
736 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 736 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); |
737 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 737 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); |
738 } | 738 } |
739 | 739 |
740 // This test sends 1 regular video packet, then 4 padding packets, and then | 740 // This test sends 1 regular video packet, then 4 padding packets, and then |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 uint8_t payload[] = {47, 11, 32, 93, 89}; | 927 uint8_t payload[] = {47, 11, 32, 93, 89}; |
928 | 928 |
929 // Send keyframe | 929 // Send keyframe |
930 ASSERT_EQ( | 930 ASSERT_EQ( |
931 0, rtp_sender_->SendOutgoingData(kVideoFrameKey, payload_type, 1234, 4321, | 931 0, rtp_sender_->SendOutgoingData(kVideoFrameKey, payload_type, 1234, 4321, |
932 payload, sizeof(payload), nullptr)); | 932 payload, sizeof(payload), nullptr)); |
933 | 933 |
934 RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, | 934 RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, |
935 transport_.last_sent_packet_len_); | 935 transport_.last_sent_packet_len_); |
936 webrtc::RTPHeader rtp_header; | 936 webrtc::RTPHeader rtp_header; |
937 ASSERT_TRUE(rtp_parser.Parse(rtp_header)); | 937 ASSERT_TRUE(rtp_parser.Parse(&rtp_header)); |
938 | 938 |
939 const uint8_t* payload_data = | 939 const uint8_t* payload_data = |
940 GetPayloadData(rtp_header, transport_.last_sent_packet_); | 940 GetPayloadData(rtp_header, transport_.last_sent_packet_); |
941 uint8_t generic_header = *payload_data++; | 941 uint8_t generic_header = *payload_data++; |
942 | 942 |
943 ASSERT_EQ(sizeof(payload) + sizeof(generic_header), | 943 ASSERT_EQ(sizeof(payload) + sizeof(generic_header), |
944 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); | 944 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); |
945 | 945 |
946 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); | 946 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); |
947 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); | 947 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); |
948 | 948 |
949 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); | 949 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); |
950 | 950 |
951 // Send delta frame | 951 // Send delta frame |
952 payload[0] = 13; | 952 payload[0] = 13; |
953 payload[1] = 42; | 953 payload[1] = 42; |
954 payload[4] = 13; | 954 payload[4] = 13; |
955 | 955 |
956 ASSERT_EQ(0, rtp_sender_->SendOutgoingData(kVideoFrameDelta, payload_type, | 956 ASSERT_EQ(0, rtp_sender_->SendOutgoingData(kVideoFrameDelta, payload_type, |
957 1234, 4321, payload, | 957 1234, 4321, payload, |
958 sizeof(payload), nullptr)); | 958 sizeof(payload), nullptr)); |
959 | 959 |
960 RtpUtility::RtpHeaderParser rtp_parser2(transport_.last_sent_packet_, | 960 RtpUtility::RtpHeaderParser rtp_parser2(transport_.last_sent_packet_, |
961 transport_.last_sent_packet_len_); | 961 transport_.last_sent_packet_len_); |
962 ASSERT_TRUE(rtp_parser.Parse(rtp_header)); | 962 ASSERT_TRUE(rtp_parser.Parse(&rtp_header)); |
963 | 963 |
964 payload_data = GetPayloadData(rtp_header, transport_.last_sent_packet_); | 964 payload_data = GetPayloadData(rtp_header, transport_.last_sent_packet_); |
965 generic_header = *payload_data++; | 965 generic_header = *payload_data++; |
966 | 966 |
967 EXPECT_FALSE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); | 967 EXPECT_FALSE(generic_header & RtpFormatVideoGeneric::kKeyFrameBit); |
968 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); | 968 EXPECT_TRUE(generic_header & RtpFormatVideoGeneric::kFirstPacketBit); |
969 | 969 |
970 ASSERT_EQ(sizeof(payload) + sizeof(generic_header), | 970 ASSERT_EQ(sizeof(payload) + sizeof(generic_header), |
971 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); | 971 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); |
972 | 972 |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1210 0, 1500)); | 1210 0, 1500)); |
1211 uint8_t payload[] = {47, 11, 32, 93, 89}; | 1211 uint8_t payload[] = {47, 11, 32, 93, 89}; |
1212 | 1212 |
1213 ASSERT_EQ( | 1213 ASSERT_EQ( |
1214 0, rtp_sender_->SendOutgoingData(kAudioFrameCN, payload_type, 1234, 4321, | 1214 0, rtp_sender_->SendOutgoingData(kAudioFrameCN, payload_type, 1234, 4321, |
1215 payload, sizeof(payload), nullptr)); | 1215 payload, sizeof(payload), nullptr)); |
1216 | 1216 |
1217 RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, | 1217 RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, |
1218 transport_.last_sent_packet_len_); | 1218 transport_.last_sent_packet_len_); |
1219 webrtc::RTPHeader rtp_header; | 1219 webrtc::RTPHeader rtp_header; |
1220 ASSERT_TRUE(rtp_parser.Parse(rtp_header)); | 1220 ASSERT_TRUE(rtp_parser.Parse(&rtp_header)); |
1221 | 1221 |
1222 const uint8_t* payload_data = | 1222 const uint8_t* payload_data = |
1223 GetPayloadData(rtp_header, transport_.last_sent_packet_); | 1223 GetPayloadData(rtp_header, transport_.last_sent_packet_); |
1224 | 1224 |
1225 ASSERT_EQ(sizeof(payload), | 1225 ASSERT_EQ(sizeof(payload), |
1226 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); | 1226 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); |
1227 | 1227 |
1228 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); | 1228 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); |
1229 } | 1229 } |
1230 | 1230 |
1231 TEST_F(RtpSenderAudioTest, SendAudioWithAudioLevelExtension) { | 1231 TEST_F(RtpSenderAudioTest, SendAudioWithAudioLevelExtension) { |
1232 EXPECT_EQ(0, rtp_sender_->SetAudioLevel(kAudioLevel)); | 1232 EXPECT_EQ(0, rtp_sender_->SetAudioLevel(kAudioLevel)); |
1233 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAudioLevel, | 1233 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAudioLevel, |
1234 kAudioLevelExtensionId)); | 1234 kAudioLevelExtensionId)); |
1235 | 1235 |
1236 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "PAYLOAD_NAME"; | 1236 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "PAYLOAD_NAME"; |
1237 const uint8_t payload_type = 127; | 1237 const uint8_t payload_type = 127; |
1238 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 48000, | 1238 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 48000, |
1239 0, 1500)); | 1239 0, 1500)); |
1240 uint8_t payload[] = {47, 11, 32, 93, 89}; | 1240 uint8_t payload[] = {47, 11, 32, 93, 89}; |
1241 | 1241 |
1242 ASSERT_EQ( | 1242 ASSERT_EQ( |
1243 0, rtp_sender_->SendOutgoingData(kAudioFrameCN, payload_type, 1234, 4321, | 1243 0, rtp_sender_->SendOutgoingData(kAudioFrameCN, payload_type, 1234, 4321, |
1244 payload, sizeof(payload), nullptr)); | 1244 payload, sizeof(payload), nullptr)); |
1245 | 1245 |
1246 RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, | 1246 RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_, |
1247 transport_.last_sent_packet_len_); | 1247 transport_.last_sent_packet_len_); |
1248 webrtc::RTPHeader rtp_header; | 1248 webrtc::RTPHeader rtp_header; |
1249 ASSERT_TRUE(rtp_parser.Parse(rtp_header)); | 1249 ASSERT_TRUE(rtp_parser.Parse(&rtp_header)); |
1250 | 1250 |
1251 const uint8_t* payload_data = | 1251 const uint8_t* payload_data = |
1252 GetPayloadData(rtp_header, transport_.last_sent_packet_); | 1252 GetPayloadData(rtp_header, transport_.last_sent_packet_); |
1253 | 1253 |
1254 ASSERT_EQ(sizeof(payload), | 1254 ASSERT_EQ(sizeof(payload), |
1255 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); | 1255 GetPayloadDataLength(rtp_header, transport_.last_sent_packet_len_)); |
1256 | 1256 |
1257 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); | 1257 EXPECT_EQ(0, memcmp(payload, payload_data, sizeof(payload))); |
1258 | 1258 |
1259 uint8_t extension[] = { | 1259 uint8_t extension[] = { |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1418 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), | 1418 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), |
1419 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); | 1419 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); |
1420 | 1420 |
1421 // Verify that this packet does have CVO byte. | 1421 // Verify that this packet does have CVO byte. |
1422 VerifyCVOPacket( | 1422 VerifyCVOPacket( |
1423 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), | 1423 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), |
1424 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, | 1424 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, |
1425 hdr.rotation); | 1425 hdr.rotation); |
1426 } | 1426 } |
1427 } // namespace webrtc | 1427 } // namespace webrtc |
OLD | NEW |