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

Side by Side Diff: talk/media/webrtc/webrtcvideoengine2_unittest.cc

Issue 1362503003: Use suffixed {uint,int}{8,16,32,64}_t types. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: henrikg@ feedback Created 5 years, 2 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 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 52
53 static const cricket::VideoCodec kVp8Codec(100, "VP8", 640, 400, 30, 0); 53 static const cricket::VideoCodec kVp8Codec(100, "VP8", 640, 400, 30, 0);
54 static const cricket::VideoCodec kVp9Codec(101, "VP9", 640, 400, 30, 0); 54 static const cricket::VideoCodec kVp9Codec(101, "VP9", 640, 400, 30, 0);
55 static const cricket::VideoCodec kH264Codec(102, "H264", 640, 400, 30, 0); 55 static const cricket::VideoCodec kH264Codec(102, "H264", 640, 400, 30, 0);
56 56
57 static const cricket::VideoCodec kRedCodec(116, "red", 0, 0, 0, 0); 57 static const cricket::VideoCodec kRedCodec(116, "red", 0, 0, 0, 0);
58 static const cricket::VideoCodec kUlpfecCodec(117, "ulpfec", 0, 0, 0, 0); 58 static const cricket::VideoCodec kUlpfecCodec(117, "ulpfec", 0, 0, 0, 0);
59 59
60 static const uint8_t kRedRtxPayloadType = 125; 60 static const uint8_t kRedRtxPayloadType = 125;
61 61
62 static const uint32 kSsrcs1[] = {1}; 62 static const uint32_t kSsrcs1[] = {1};
63 static const uint32 kSsrcs3[] = {1, 2, 3}; 63 static const uint32_t kSsrcs3[] = {1, 2, 3};
64 static const uint32 kRtxSsrcs1[] = {4}; 64 static const uint32_t kRtxSsrcs1[] = {4};
65 static const uint32 kIncomingUnsignalledSsrc = 0xC0FFEE; 65 static const uint32_t kIncomingUnsignalledSsrc = 0xC0FFEE;
66 static const char kUnsupportedExtensionName[] = 66 static const char kUnsupportedExtensionName[] =
67 "urn:ietf:params:rtp-hdrext:unsupported"; 67 "urn:ietf:params:rtp-hdrext:unsupported";
68 68
69 void VerifyCodecHasDefaultFeedbackParams(const cricket::VideoCodec& codec) { 69 void VerifyCodecHasDefaultFeedbackParams(const cricket::VideoCodec& codec) {
70 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam( 70 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
71 cricket::kRtcpFbParamNack, cricket::kParamValueEmpty))); 71 cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)));
72 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam( 72 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
73 cricket::kRtcpFbParamNack, cricket::kRtcpFbNackParamPli))); 73 cricket::kRtcpFbParamNack, cricket::kRtcpFbNackParamPli)));
74 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam( 74 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
75 cricket::kRtcpFbParamRemb, cricket::kParamValueEmpty))); 75 cricket::kRtcpFbParamRemb, cricket::kParamValueEmpty)));
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 channel->SetSend(true); 480 channel->SetSend(true);
481 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0]; 481 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0];
482 482
483 FakeVideoCapturer capturer1; 483 FakeVideoCapturer capturer1;
484 EXPECT_TRUE(channel->SetCapturer(kSsrc, &capturer1)); 484 EXPECT_TRUE(channel->SetCapturer(kSsrc, &capturer1));
485 485
486 cricket::CapturedFrame frame; 486 cricket::CapturedFrame frame;
487 frame.width = 1280; 487 frame.width = 1280;
488 frame.height = 720; 488 frame.height = 720;
489 frame.fourcc = cricket::FOURCC_I420; 489 frame.fourcc = cricket::FOURCC_I420;
490 frame.data_size = static_cast<uint32>( 490 frame.data_size = static_cast<uint32_t>(
491 cricket::VideoFrame::SizeOf(frame.width, frame.height)); 491 cricket::VideoFrame::SizeOf(frame.width, frame.height));
492 rtc::scoped_ptr<char[]> data(new char[frame.data_size]); 492 rtc::scoped_ptr<char[]> data(new char[frame.data_size]);
493 frame.data = data.get(); 493 frame.data = data.get();
494 memset(frame.data, 1, frame.data_size); 494 memset(frame.data, 1, frame.data_size);
495 const int kInitialTimestamp = 123456; 495 const int kInitialTimestamp = 123456;
496 frame.time_stamp = kInitialTimestamp; 496 frame.time_stamp = kInitialTimestamp;
497 497
498 // Deliver initial frame. 498 // Deliver initial frame.
499 capturer1.SignalCapturedFrame(&frame); 499 capturer1.SignalCapturedFrame(&frame);
500 // Deliver next frame 1 second later. 500 // Deliver next frame 1 second later.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 552
553 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { 553 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) {
554 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 554 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
555 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); 555 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8");
556 std::vector<cricket::VideoCodec> codecs; 556 std::vector<cricket::VideoCodec> codecs;
557 codecs.push_back(kVp8Codec); 557 codecs.push_back(kVp8Codec);
558 558
559 rtc::scoped_ptr<VideoMediaChannel> channel( 559 rtc::scoped_ptr<VideoMediaChannel> channel(
560 SetUpForExternalEncoderFactory(&encoder_factory, codecs)); 560 SetUpForExternalEncoderFactory(&encoder_factory, codecs));
561 561
562 std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 562 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
563 563
564 EXPECT_TRUE( 564 EXPECT_TRUE(
565 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs))); 565 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs)));
566 EXPECT_TRUE(channel->SetSend(true)); 566 EXPECT_TRUE(channel->SetSend(true));
567 567
568 cricket::FakeVideoCapturer capturer; 568 cricket::FakeVideoCapturer capturer;
569 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer)); 569 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer));
570 EXPECT_EQ(cricket::CS_RUNNING, 570 EXPECT_EQ(cricket::CS_RUNNING,
571 capturer.Start(capturer.GetSupportedFormats()->front())); 571 capturer.Start(capturer.GetSupportedFormats()->front()));
572 EXPECT_TRUE(capturer.CaptureFrame()); 572 EXPECT_TRUE(capturer.CaptureFrame());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 630 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
631 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); 631 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8");
632 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264"); 632 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264");
633 633
634 std::vector<cricket::VideoCodec> codecs; 634 std::vector<cricket::VideoCodec> codecs;
635 codecs.push_back(kVp8Codec); 635 codecs.push_back(kVp8Codec);
636 636
637 rtc::scoped_ptr<VideoMediaChannel> channel( 637 rtc::scoped_ptr<VideoMediaChannel> channel(
638 SetUpForExternalEncoderFactory(&encoder_factory, codecs)); 638 SetUpForExternalEncoderFactory(&encoder_factory, codecs));
639 639
640 std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 640 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
641 641
642 EXPECT_TRUE( 642 EXPECT_TRUE(
643 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs))); 643 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs)));
644 EXPECT_TRUE(channel->SetSend(true)); 644 EXPECT_TRUE(channel->SetSend(true));
645 645
646 // Send a fake frame, or else the media engine will configure the simulcast 646 // Send a fake frame, or else the media engine will configure the simulcast
647 // encoder adapter at a low-enough size that it'll only create a single 647 // encoder adapter at a low-enough size that it'll only create a single
648 // encoder layer. 648 // encoder layer.
649 cricket::FakeVideoCapturer capturer; 649 cricket::FakeVideoCapturer capturer;
650 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer)); 650 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 686
687 TEST_F(WebRtcVideoEngine2Test, SimulcastDisabledForH264) { 687 TEST_F(WebRtcVideoEngine2Test, SimulcastDisabledForH264) {
688 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 688 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
689 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264"); 689 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264");
690 std::vector<cricket::VideoCodec> codecs; 690 std::vector<cricket::VideoCodec> codecs;
691 codecs.push_back(kH264Codec); 691 codecs.push_back(kH264Codec);
692 692
693 rtc::scoped_ptr<VideoMediaChannel> channel( 693 rtc::scoped_ptr<VideoMediaChannel> channel(
694 SetUpForExternalEncoderFactory(&encoder_factory, codecs)); 694 SetUpForExternalEncoderFactory(&encoder_factory, codecs));
695 695
696 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 696 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
697 EXPECT_TRUE( 697 EXPECT_TRUE(
698 channel->AddSendStream(cricket::CreateSimStreamParams("cname", ssrcs))); 698 channel->AddSendStream(cricket::CreateSimStreamParams("cname", ssrcs)));
699 // Set the stream to 720p. This should trigger a "real" encoder 699 // Set the stream to 720p. This should trigger a "real" encoder
700 // initialization. 700 // initialization.
701 cricket::VideoFormat format( 701 cricket::VideoFormat format(
702 1280, 720, cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420); 702 1280, 720, cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420);
703 EXPECT_TRUE(channel->SetSendStreamFormat(ssrcs[0], format)); 703 EXPECT_TRUE(channel->SetSendStreamFormat(ssrcs[0], format));
704 ASSERT_EQ(1u, encoder_factory.encoders().size()); 704 ASSERT_EQ(1u, encoder_factory.encoders().size());
705 FakeWebRtcVideoEncoder* encoder = encoder_factory.encoders()[0]; 705 FakeWebRtcVideoEncoder* encoder = encoder_factory.encoders()[0];
706 EXPECT_EQ(webrtc::kVideoCodecH264, encoder->GetCodecSettings().codecType); 706 EXPECT_EQ(webrtc::kVideoCodecH264, encoder->GetCodecSettings().codecType);
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
1072 return AddSendStream( 1072 return AddSendStream(
1073 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1073 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
1074 } 1074 }
1075 return AddSendStream(CreateSimStreamParams("cname", ssrcs)); 1075 return AddSendStream(CreateSimStreamParams("cname", ssrcs));
1076 } 1076 }
1077 1077
1078 rtc::scoped_ptr<FakeCall> fake_call_; 1078 rtc::scoped_ptr<FakeCall> fake_call_;
1079 rtc::scoped_ptr<VideoMediaChannel> channel_; 1079 rtc::scoped_ptr<VideoMediaChannel> channel_;
1080 cricket::VideoSendParameters send_parameters_; 1080 cricket::VideoSendParameters send_parameters_;
1081 cricket::VideoRecvParameters recv_parameters_; 1081 cricket::VideoRecvParameters recv_parameters_;
1082 uint32 last_ssrc_; 1082 uint32_t last_ssrc_;
1083 }; 1083 };
1084 1084
1085 TEST_F(WebRtcVideoChannel2Test, SetsSyncGroupFromSyncLabel) { 1085 TEST_F(WebRtcVideoChannel2Test, SetsSyncGroupFromSyncLabel) {
1086 const uint32 kVideoSsrc = 123; 1086 const uint32_t kVideoSsrc = 123;
1087 const std::string kSyncLabel = "AvSyncLabel"; 1087 const std::string kSyncLabel = "AvSyncLabel";
1088 1088
1089 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kVideoSsrc); 1089 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kVideoSsrc);
1090 sp.sync_label = kSyncLabel; 1090 sp.sync_label = kSyncLabel;
1091 EXPECT_TRUE(channel_->AddRecvStream(sp)); 1091 EXPECT_TRUE(channel_->AddRecvStream(sp));
1092 1092
1093 EXPECT_EQ(1, fake_call_->GetVideoReceiveStreams().size()); 1093 EXPECT_EQ(1, fake_call_->GetVideoReceiveStreams().size());
1094 EXPECT_EQ(kSyncLabel, 1094 EXPECT_EQ(kSyncLabel,
1095 fake_call_->GetVideoReceiveStreams()[0]->GetConfig().sync_group) 1095 fake_call_->GetVideoReceiveStreams()[0]->GetConfig().sync_group)
1096 << "SyncGroup should be set based on sync_label"; 1096 << "SyncGroup should be set based on sync_label";
1097 } 1097 }
1098 1098
1099 TEST_F(WebRtcVideoChannel2Test, RecvStreamWithSimAndRtx) { 1099 TEST_F(WebRtcVideoChannel2Test, RecvStreamWithSimAndRtx) {
1100 cricket::VideoSendParameters parameters; 1100 cricket::VideoSendParameters parameters;
1101 parameters.codecs = engine_.codecs(); 1101 parameters.codecs = engine_.codecs();
1102 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1102 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1103 EXPECT_TRUE(channel_->SetSend(true)); 1103 EXPECT_TRUE(channel_->SetSend(true));
1104 parameters.options.conference_mode.Set(true); 1104 parameters.options.conference_mode.Set(true);
1105 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1105 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1106 1106
1107 // Send side. 1107 // Send side.
1108 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 1108 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
1109 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 1109 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
1110 FakeVideoSendStream* send_stream = AddSendStream( 1110 FakeVideoSendStream* send_stream = AddSendStream(
1111 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1111 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
1112 1112
1113 ASSERT_EQ(rtx_ssrcs.size(), send_stream->GetConfig().rtp.rtx.ssrcs.size()); 1113 ASSERT_EQ(rtx_ssrcs.size(), send_stream->GetConfig().rtp.rtx.ssrcs.size());
1114 for (size_t i = 0; i < rtx_ssrcs.size(); ++i) 1114 for (size_t i = 0; i < rtx_ssrcs.size(); ++i)
1115 EXPECT_EQ(rtx_ssrcs[i], send_stream->GetConfig().rtp.rtx.ssrcs[i]); 1115 EXPECT_EQ(rtx_ssrcs[i], send_stream->GetConfig().rtp.rtx.ssrcs[i]);
1116 1116
1117 // Receiver side. 1117 // Receiver side.
1118 FakeVideoReceiveStream* recv_stream = AddRecvStream( 1118 FakeVideoReceiveStream* recv_stream = AddRecvStream(
1119 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1119 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
1846 } 1846 }
1847 1847
1848 TEST_F(WebRtcVideoChannel2Test, SetDefaultSendCodecs) { 1848 TEST_F(WebRtcVideoChannel2Test, SetDefaultSendCodecs) {
1849 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); 1849 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_));
1850 1850
1851 VideoCodec codec; 1851 VideoCodec codec;
1852 EXPECT_TRUE(channel_->GetSendCodec(&codec)); 1852 EXPECT_TRUE(channel_->GetSendCodec(&codec));
1853 EXPECT_TRUE(codec.Matches(engine_.codecs()[0])); 1853 EXPECT_TRUE(codec.Matches(engine_.codecs()[0]));
1854 1854
1855 // Using a RTX setup to verify that the default RTX payload type is good. 1855 // Using a RTX setup to verify that the default RTX payload type is good.
1856 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 1856 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
1857 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 1857 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
1858 FakeVideoSendStream* stream = AddSendStream( 1858 FakeVideoSendStream* stream = AddSendStream(
1859 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1859 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
1860 webrtc::VideoSendStream::Config config = stream->GetConfig(); 1860 webrtc::VideoSendStream::Config config = stream->GetConfig();
1861 1861
1862 // Make sure NACK and FEC are enabled on the correct payload types. 1862 // Make sure NACK and FEC are enabled on the correct payload types.
1863 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms); 1863 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms);
1864 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type); 1864 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type);
1865 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type); 1865 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type);
1866 1866
1867 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size()); 1867 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size());
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after
2568 info.bw_estimations[0].actual_enc_bitrate); 2568 info.bw_estimations[0].actual_enc_bitrate);
2569 EXPECT_EQ(1 + 3 + 5 + 7, info.bw_estimations[0].transmit_bitrate) 2569 EXPECT_EQ(1 + 3 + 5 + 7, info.bw_estimations[0].transmit_bitrate)
2570 << "Bandwidth stats should take all streams into account."; 2570 << "Bandwidth stats should take all streams into account.";
2571 EXPECT_EQ(2 + 4 + 6 + 8, info.bw_estimations[0].retransmit_bitrate) 2571 EXPECT_EQ(2 + 4 + 6 + 8, info.bw_estimations[0].retransmit_bitrate)
2572 << "Bandwidth stats should take all streams into account."; 2572 << "Bandwidth stats should take all streams into account.";
2573 } 2573 }
2574 2574
2575 TEST_F(WebRtcVideoChannel2Test, DefaultReceiveStreamReconfiguresToUseRtx) { 2575 TEST_F(WebRtcVideoChannel2Test, DefaultReceiveStreamReconfiguresToUseRtx) {
2576 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2576 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2577 2577
2578 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 2578 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
2579 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2579 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2580 2580
2581 ASSERT_EQ(0u, fake_call_->GetVideoReceiveStreams().size()); 2581 ASSERT_EQ(0u, fake_call_->GetVideoReceiveStreams().size());
2582 const size_t kDataLength = 12; 2582 const size_t kDataLength = 12;
2583 uint8_t data[kDataLength]; 2583 uint8_t data[kDataLength];
2584 memset(data, 0, sizeof(data)); 2584 memset(data, 0, sizeof(data));
2585 rtc::SetBE32(&data[8], ssrcs[0]); 2585 rtc::SetBE32(&data[8], ssrcs[0]);
2586 rtc::Buffer packet(data, kDataLength); 2586 rtc::Buffer packet(data, kDataLength);
2587 rtc::PacketTime packet_time; 2587 rtc::PacketTime packet_time;
2588 channel_->OnPacketReceived(&packet, packet_time); 2588 channel_->OnPacketReceived(&packet, packet_time);
2589 2589
2590 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) 2590 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size())
2591 << "No default receive stream created."; 2591 << "No default receive stream created.";
2592 FakeVideoReceiveStream* recv_stream = fake_call_->GetVideoReceiveStreams()[0]; 2592 FakeVideoReceiveStream* recv_stream = fake_call_->GetVideoReceiveStreams()[0];
2593 EXPECT_EQ(0u, recv_stream->GetConfig().rtp.rtx.size()) 2593 EXPECT_EQ(0u, recv_stream->GetConfig().rtp.rtx.size())
2594 << "Default receive stream should not have configured RTX"; 2594 << "Default receive stream should not have configured RTX";
2595 2595
2596 EXPECT_TRUE(channel_->AddRecvStream( 2596 EXPECT_TRUE(channel_->AddRecvStream(
2597 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs))); 2597 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)));
2598 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) 2598 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size())
2599 << "AddRecvStream should've reconfigured, not added a new receiver."; 2599 << "AddRecvStream should've reconfigured, not added a new receiver.";
2600 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; 2600 recv_stream = fake_call_->GetVideoReceiveStreams()[0];
2601 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.rtx.size()); 2601 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.rtx.size());
2602 EXPECT_EQ(rtx_ssrcs[0], 2602 EXPECT_EQ(rtx_ssrcs[0],
2603 recv_stream->GetConfig().rtp.rtx.begin()->second.ssrc); 2603 recv_stream->GetConfig().rtp.rtx.begin()->second.ssrc);
2604 } 2604 }
2605 2605
2606 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithMissingSsrcsForRtx) { 2606 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithMissingSsrcsForRtx) {
2607 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2607 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2608 2608
2609 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 2609 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
2610 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2610 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2611 2611
2612 StreamParams sp = 2612 StreamParams sp =
2613 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs); 2613 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs);
2614 sp.ssrcs = ssrcs; // Without RTXs, this is the important part. 2614 sp.ssrcs = ssrcs; // Without RTXs, this is the important part.
2615 2615
2616 EXPECT_FALSE(channel_->AddSendStream(sp)); 2616 EXPECT_FALSE(channel_->AddSendStream(sp));
2617 EXPECT_FALSE(channel_->AddRecvStream(sp)); 2617 EXPECT_FALSE(channel_->AddRecvStream(sp));
2618 } 2618 }
2619 2619
2620 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithOverlappingRtxSsrcs) { 2620 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithOverlappingRtxSsrcs) {
2621 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2621 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2622 2622
2623 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 2623 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
2624 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2624 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2625 2625
2626 StreamParams sp = 2626 StreamParams sp =
2627 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs); 2627 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs);
2628 2628
2629 EXPECT_TRUE(channel_->AddSendStream(sp)); 2629 EXPECT_TRUE(channel_->AddSendStream(sp));
2630 EXPECT_TRUE(channel_->AddRecvStream(sp)); 2630 EXPECT_TRUE(channel_->AddRecvStream(sp));
2631 2631
2632 // The RTX SSRC is already used in previous streams, using it should fail. 2632 // The RTX SSRC is already used in previous streams, using it should fail.
2633 sp = cricket::StreamParams::CreateLegacy(rtx_ssrcs[0]); 2633 sp = cricket::StreamParams::CreateLegacy(rtx_ssrcs[0]);
2634 EXPECT_FALSE(channel_->AddSendStream(sp)); 2634 EXPECT_FALSE(channel_->AddSendStream(sp));
2635 EXPECT_FALSE(channel_->AddRecvStream(sp)); 2635 EXPECT_FALSE(channel_->AddRecvStream(sp));
2636 2636
2637 // After removing the original stream this should be fine to add (makes sure 2637 // After removing the original stream this should be fine to add (makes sure
2638 // that RTX ssrcs are not forever taken). 2638 // that RTX ssrcs are not forever taken).
2639 EXPECT_TRUE(channel_->RemoveSendStream(ssrcs[0])); 2639 EXPECT_TRUE(channel_->RemoveSendStream(ssrcs[0]));
2640 EXPECT_TRUE(channel_->RemoveRecvStream(ssrcs[0])); 2640 EXPECT_TRUE(channel_->RemoveRecvStream(ssrcs[0]));
2641 EXPECT_TRUE(channel_->AddSendStream(sp)); 2641 EXPECT_TRUE(channel_->AddSendStream(sp));
2642 EXPECT_TRUE(channel_->AddRecvStream(sp)); 2642 EXPECT_TRUE(channel_->AddRecvStream(sp));
2643 } 2643 }
2644 2644
2645 TEST_F(WebRtcVideoChannel2Test, 2645 TEST_F(WebRtcVideoChannel2Test,
2646 RejectsAddingStreamsWithOverlappingSimulcastSsrcs) { 2646 RejectsAddingStreamsWithOverlappingSimulcastSsrcs) {
2647 static const uint32 kFirstStreamSsrcs[] = {1, 2, 3}; 2647 static const uint32_t kFirstStreamSsrcs[] = {1, 2, 3};
2648 static const uint32 kOverlappingStreamSsrcs[] = {4, 3, 5}; 2648 static const uint32_t kOverlappingStreamSsrcs[] = {4, 3, 5};
2649 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2649 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2650 2650
2651 StreamParams sp = 2651 StreamParams sp =
2652 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kFirstStreamSsrcs)); 2652 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kFirstStreamSsrcs));
2653 2653
2654 EXPECT_TRUE(channel_->AddSendStream(sp)); 2654 EXPECT_TRUE(channel_->AddSendStream(sp));
2655 EXPECT_TRUE(channel_->AddRecvStream(sp)); 2655 EXPECT_TRUE(channel_->AddRecvStream(sp));
2656 2656
2657 // One of the SSRCs is already used in previous streams, using it should fail. 2657 // One of the SSRCs is already used in previous streams, using it should fail.
2658 sp = cricket::CreateSimStreamParams("cname", 2658 sp = cricket::CreateSimStreamParams("cname",
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
2964 void VerifySimulcastSettings(const VideoCodec& codec, 2964 void VerifySimulcastSettings(const VideoCodec& codec,
2965 VideoOptions::HighestBitrate bitrate_mode, 2965 VideoOptions::HighestBitrate bitrate_mode,
2966 size_t num_configured_streams, 2966 size_t num_configured_streams,
2967 size_t expected_num_streams, 2967 size_t expected_num_streams,
2968 SimulcastBitrateMode simulcast_bitrate_mode) { 2968 SimulcastBitrateMode simulcast_bitrate_mode) {
2969 cricket::VideoSendParameters parameters; 2969 cricket::VideoSendParameters parameters;
2970 parameters.options.video_highest_bitrate.Set(bitrate_mode); 2970 parameters.options.video_highest_bitrate.Set(bitrate_mode);
2971 parameters.codecs.push_back(codec); 2971 parameters.codecs.push_back(codec);
2972 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2972 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2973 2973
2974 std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 2974 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
2975 RTC_DCHECK(num_configured_streams <= ssrcs.size()); 2975 RTC_DCHECK(num_configured_streams <= ssrcs.size());
2976 ssrcs.resize(num_configured_streams); 2976 ssrcs.resize(num_configured_streams);
2977 2977
2978 FakeVideoSendStream* stream = 2978 FakeVideoSendStream* stream =
2979 AddSendStream(CreateSimStreamParams("cname", ssrcs)); 2979 AddSendStream(CreateSimStreamParams("cname", ssrcs));
2980 // Send a full-size frame to trigger a stream reconfiguration to use all 2980 // Send a full-size frame to trigger a stream reconfiguration to use all
2981 // expected simulcast layers. 2981 // expected simulcast layers.
2982 cricket::FakeVideoCapturer capturer; 2982 cricket::FakeVideoCapturer capturer;
2983 EXPECT_TRUE(channel_->SetCapturer(ssrcs.front(), &capturer)); 2983 EXPECT_TRUE(channel_->SetCapturer(ssrcs.front(), &capturer));
2984 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(cricket::VideoFormat( 2984 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(cricket::VideoFormat(
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
3073 EXPECT_TRUE(channel_->AddRecvStream(sp)); 3073 EXPECT_TRUE(channel_->AddRecvStream(sp));
3074 std::vector<FakeVideoReceiveStream*> streams = 3074 std::vector<FakeVideoReceiveStream*> streams =
3075 fake_call_.GetVideoReceiveStreams(); 3075 fake_call_.GetVideoReceiveStreams();
3076 EXPECT_EQ(num_streams + 1, streams.size()); 3076 EXPECT_EQ(num_streams + 1, streams.size());
3077 return streams[streams.size() - 1]; 3077 return streams[streams.size() - 1];
3078 } 3078 }
3079 3079
3080 FakeCall fake_call_; 3080 FakeCall fake_call_;
3081 WebRtcVideoEngine2 engine_; 3081 WebRtcVideoEngine2 engine_;
3082 rtc::scoped_ptr<VideoMediaChannel> channel_; 3082 rtc::scoped_ptr<VideoMediaChannel> channel_;
3083 uint32 last_ssrc_; 3083 uint32_t last_ssrc_;
3084 }; 3084 };
3085 3085
3086 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith2SimulcastStreams) { 3086 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith2SimulcastStreams) {
3087 VerifySimulcastSettings(kVp8Codec, VideoOptions::NORMAL, 2, 2, SBM_NORMAL); 3087 VerifySimulcastSettings(kVp8Codec, VideoOptions::NORMAL, 2, 2, SBM_NORMAL);
3088 } 3088 }
3089 3089
3090 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) { 3090 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) {
3091 VerifySimulcastSettings( 3091 VerifySimulcastSettings(
3092 kVp8Codec720p, VideoOptions::NORMAL, 3, 3, SBM_NORMAL); 3092 kVp8Codec720p, VideoOptions::NORMAL, 3, 3, SBM_NORMAL);
3093 } 3093 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
3197 // Ensures that the correct settings are applied to the codec when two temporal 3197 // Ensures that the correct settings are applied to the codec when two temporal
3198 // layer screencasting is enabled, and that the correct simulcast settings are 3198 // layer screencasting is enabled, and that the correct simulcast settings are
3199 // reapplied when disabling screencasting. 3199 // reapplied when disabling screencasting.
3200 TEST_F(WebRtcVideoChannel2SimulcastTest, 3200 TEST_F(WebRtcVideoChannel2SimulcastTest,
3201 DISABLED_TwoTemporalLayerScreencastSettings) { 3201 DISABLED_TwoTemporalLayerScreencastSettings) {
3202 // TODO(pbos): Implement. 3202 // TODO(pbos): Implement.
3203 FAIL() << "Not implemented."; 3203 FAIL() << "Not implemented.";
3204 } 3204 }
3205 3205
3206 } // namespace cricket 3206 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698