OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2017 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 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 ASSERT_EQ(2u, codec.parameters.size()); | 449 ASSERT_EQ(2u, codec.parameters.size()); |
450 EXPECT_EQ("bar", codec.parameters["foo"]); | 450 EXPECT_EQ("bar", codec.parameters["foo"]); |
451 EXPECT_EQ("param", codec.parameters["ANOTHER"]); | 451 EXPECT_EQ("param", codec.parameters["ANOTHER"]); |
452 EXPECT_EQ(2u, codec.rtcp_feedback.size()); | 452 EXPECT_EQ(2u, codec.rtcp_feedback.size()); |
453 EXPECT_EQ(RtcpFeedback(RtcpFeedbackType::TRANSPORT_CC), | 453 EXPECT_EQ(RtcpFeedback(RtcpFeedbackType::TRANSPORT_CC), |
454 codec.rtcp_feedback[0]); | 454 codec.rtcp_feedback[0]); |
455 EXPECT_EQ(RtcpFeedback(RtcpFeedbackType::NACK, RtcpFeedbackMessageType::PLI), | 455 EXPECT_EQ(RtcpFeedback(RtcpFeedbackType::NACK, RtcpFeedbackMessageType::PLI), |
456 codec.rtcp_feedback[1]); | 456 codec.rtcp_feedback[1]); |
457 } | 457 } |
458 | 458 |
| 459 TEST(RtpParametersConversionTest, ToRtpEncodingsWithEmptyStreamParamsVec) { |
| 460 cricket::StreamParamsVec streams; |
| 461 auto rtp_encodings = ToRtpEncodings(streams); |
| 462 ASSERT_EQ(0u, rtp_encodings.size()); |
| 463 } |
| 464 |
| 465 TEST(RtpParametersConversionTest, ToRtpEncodingsWithMultipleStreamParams) { |
| 466 cricket::StreamParamsVec streams; |
| 467 cricket::StreamParams stream1; |
| 468 stream1.ssrcs.push_back(1111u); |
| 469 stream1.AddFidSsrc(1111u, 0xaaaaaaaa); |
| 470 |
| 471 cricket::StreamParams stream2; |
| 472 stream2.ssrcs.push_back(2222u); |
| 473 stream2.AddFidSsrc(2222u, 0xaaaaaaab); |
| 474 |
| 475 streams.push_back(stream1); |
| 476 streams.push_back(stream2); |
| 477 |
| 478 auto rtp_encodings = ToRtpEncodings(streams); |
| 479 ASSERT_EQ(2u, rtp_encodings.size()); |
| 480 EXPECT_EQ(1111u, rtp_encodings[0].ssrc); |
| 481 EXPECT_EQ(0xaaaaaaaa, rtp_encodings[0].rtx->ssrc); |
| 482 EXPECT_EQ(2222u, rtp_encodings[1].ssrc); |
| 483 EXPECT_EQ(0xaaaaaaab, rtp_encodings[1].rtx->ssrc); |
| 484 } |
| 485 |
| 486 TEST(RtpParametersConversionTest, ToAudioRtpCodecParameters) { |
| 487 cricket::AudioCodec cricket_codec; |
| 488 cricket_codec.name = "foo"; |
| 489 cricket_codec.id = 50; |
| 490 cricket_codec.clockrate = 22222; |
| 491 cricket_codec.channels = 4; |
| 492 cricket_codec.params["foo"] = "bar"; |
| 493 cricket_codec.feedback_params.Add(cricket::FeedbackParam("transport-cc")); |
| 494 RtpCodecParameters codec = ToRtpCodecParameters(cricket_codec); |
| 495 |
| 496 EXPECT_EQ("foo", codec.name); |
| 497 EXPECT_EQ(cricket::MEDIA_TYPE_AUDIO, codec.kind); |
| 498 EXPECT_EQ(50, codec.payload_type); |
| 499 EXPECT_EQ(rtc::Optional<int>(22222), codec.clock_rate); |
| 500 EXPECT_EQ(rtc::Optional<int>(4), codec.num_channels); |
| 501 ASSERT_EQ(1u, codec.parameters.size()); |
| 502 EXPECT_EQ("bar", codec.parameters["foo"]); |
| 503 EXPECT_EQ(1u, codec.rtcp_feedback.size()); |
| 504 EXPECT_EQ(RtcpFeedback(RtcpFeedbackType::TRANSPORT_CC), |
| 505 codec.rtcp_feedback[0]); |
| 506 } |
| 507 |
| 508 TEST(RtpParametersConversionTest, ToVideoRtpCodecParameters) { |
| 509 cricket::VideoCodec cricket_codec; |
| 510 cricket_codec.name = "VID"; |
| 511 cricket_codec.id = 101; |
| 512 cricket_codec.clockrate = 80000; |
| 513 cricket_codec.params["foo"] = "bar"; |
| 514 cricket_codec.params["ANOTHER"] = "param"; |
| 515 cricket_codec.feedback_params.Add(cricket::FeedbackParam("transport-cc")); |
| 516 cricket_codec.feedback_params.Add({"nack", "pli"}); |
| 517 RtpCodecParameters codec = ToRtpCodecParameters(cricket_codec); |
| 518 |
| 519 EXPECT_EQ("VID", codec.name); |
| 520 EXPECT_EQ(cricket::MEDIA_TYPE_VIDEO, codec.kind); |
| 521 EXPECT_EQ(101, codec.payload_type); |
| 522 EXPECT_EQ(rtc::Optional<int>(80000), codec.clock_rate); |
| 523 ASSERT_EQ(2u, codec.parameters.size()); |
| 524 EXPECT_EQ("bar", codec.parameters["foo"]); |
| 525 EXPECT_EQ("param", codec.parameters["ANOTHER"]); |
| 526 EXPECT_EQ(2u, codec.rtcp_feedback.size()); |
| 527 EXPECT_EQ(RtcpFeedback(RtcpFeedbackType::TRANSPORT_CC), |
| 528 codec.rtcp_feedback[0]); |
| 529 EXPECT_EQ(RtcpFeedback(RtcpFeedbackType::NACK, RtcpFeedbackMessageType::PLI), |
| 530 codec.rtcp_feedback[1]); |
| 531 } |
| 532 |
459 // An unknown feedback param should just be ignored. | 533 // An unknown feedback param should just be ignored. |
460 TEST(RtpParametersConversionTest, ToRtpCodecCapabilityUnknownFeedbackParam) { | 534 TEST(RtpParametersConversionTest, ToRtpCodecCapabilityUnknownFeedbackParam) { |
461 cricket::AudioCodec cricket_codec; | 535 cricket::AudioCodec cricket_codec; |
462 cricket_codec.name = "foo"; | 536 cricket_codec.name = "foo"; |
463 cricket_codec.id = 50; | 537 cricket_codec.id = 50; |
464 cricket_codec.clockrate = 22222; | 538 cricket_codec.clockrate = 22222; |
465 cricket_codec.channels = 4; | 539 cricket_codec.channels = 4; |
466 cricket_codec.params["foo"] = "bar"; | 540 cricket_codec.params["foo"] = "bar"; |
467 cricket_codec.feedback_params.Add({"unknown", "param"}); | 541 cricket_codec.feedback_params.Add({"unknown", "param"}); |
468 cricket_codec.feedback_params.Add(cricket::FeedbackParam("transport-cc")); | 542 cricket_codec.feedback_params.Add(cricket::FeedbackParam("transport-cc")); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 EXPECT_EQ(3u, capabilities.codecs.size()); | 599 EXPECT_EQ(3u, capabilities.codecs.size()); |
526 EXPECT_EQ(2u, capabilities.fec.size()); | 600 EXPECT_EQ(2u, capabilities.fec.size()); |
527 EXPECT_NE(capabilities.fec.end(), | 601 EXPECT_NE(capabilities.fec.end(), |
528 std::find(capabilities.fec.begin(), capabilities.fec.end(), | 602 std::find(capabilities.fec.begin(), capabilities.fec.end(), |
529 FecMechanism::RED)); | 603 FecMechanism::RED)); |
530 EXPECT_NE(capabilities.fec.end(), | 604 EXPECT_NE(capabilities.fec.end(), |
531 std::find(capabilities.fec.begin(), capabilities.fec.end(), | 605 std::find(capabilities.fec.begin(), capabilities.fec.end(), |
532 FecMechanism::FLEXFEC)); | 606 FecMechanism::FLEXFEC)); |
533 } | 607 } |
534 | 608 |
| 609 TEST(RtpParametersConversionTest, ToRtpParameters) { |
| 610 cricket::VideoCodec vp8; |
| 611 vp8.name = "VP8"; |
| 612 vp8.id = 101; |
| 613 vp8.clockrate = 90000; |
| 614 |
| 615 cricket::VideoCodec red; |
| 616 red.name = "red"; |
| 617 red.id = 102; |
| 618 red.clockrate = 90000; |
| 619 |
| 620 cricket::VideoCodec ulpfec; |
| 621 ulpfec.name = "ulpfec"; |
| 622 ulpfec.id = 103; |
| 623 ulpfec.clockrate = 90000; |
| 624 |
| 625 cricket::StreamParamsVec streams; |
| 626 cricket::StreamParams stream; |
| 627 stream.ssrcs.push_back(1234u); |
| 628 streams.push_back(stream); |
| 629 |
| 630 RtpParameters rtp_parameters = ToRtpParameters<cricket::VideoCodec>( |
| 631 {vp8, red, ulpfec}, {{"uri", 1}, {"uri2", 3}}, streams); |
| 632 ASSERT_EQ(3u, rtp_parameters.codecs.size()); |
| 633 EXPECT_EQ("VP8", rtp_parameters.codecs[0].name); |
| 634 EXPECT_EQ("red", rtp_parameters.codecs[1].name); |
| 635 EXPECT_EQ("ulpfec", rtp_parameters.codecs[2].name); |
| 636 ASSERT_EQ(2u, rtp_parameters.header_extensions.size()); |
| 637 EXPECT_EQ("uri", rtp_parameters.header_extensions[0].uri); |
| 638 EXPECT_EQ(1, rtp_parameters.header_extensions[0].id); |
| 639 EXPECT_EQ("uri2", rtp_parameters.header_extensions[1].uri); |
| 640 EXPECT_EQ(3, rtp_parameters.header_extensions[1].id); |
| 641 ASSERT_EQ(1u, rtp_parameters.encodings.size()); |
| 642 EXPECT_EQ(1234u, rtp_parameters.encodings[0].ssrc); |
| 643 } |
| 644 |
535 } // namespace webrtc | 645 } // namespace webrtc |
OLD | NEW |