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

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: google::int32 Created 5 years, 3 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 frame.elapsed_time = 0; 495 frame.elapsed_time = 0;
496 const int kInitialTimestamp = 123456; 496 const int kInitialTimestamp = 123456;
497 frame.time_stamp = kInitialTimestamp; 497 frame.time_stamp = kInitialTimestamp;
498 498
499 // Deliver initial frame. 499 // Deliver initial frame.
500 capturer1.SignalCapturedFrame(&frame); 500 capturer1.SignalCapturedFrame(&frame);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 553
554 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { 554 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) {
555 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 555 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
556 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); 556 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8");
557 std::vector<cricket::VideoCodec> codecs; 557 std::vector<cricket::VideoCodec> codecs;
558 codecs.push_back(kVp8Codec); 558 codecs.push_back(kVp8Codec);
559 559
560 rtc::scoped_ptr<VideoMediaChannel> channel( 560 rtc::scoped_ptr<VideoMediaChannel> channel(
561 SetUpForExternalEncoderFactory(&encoder_factory, codecs)); 561 SetUpForExternalEncoderFactory(&encoder_factory, codecs));
562 562
563 std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 563 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
564 564
565 EXPECT_TRUE( 565 EXPECT_TRUE(
566 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs))); 566 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs)));
567 EXPECT_TRUE(channel->SetSend(true)); 567 EXPECT_TRUE(channel->SetSend(true));
568 568
569 cricket::FakeVideoCapturer capturer; 569 cricket::FakeVideoCapturer capturer;
570 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer)); 570 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer));
571 EXPECT_EQ(cricket::CS_RUNNING, 571 EXPECT_EQ(cricket::CS_RUNNING,
572 capturer.Start(capturer.GetSupportedFormats()->front())); 572 capturer.Start(capturer.GetSupportedFormats()->front()));
573 EXPECT_TRUE(capturer.CaptureFrame()); 573 EXPECT_TRUE(capturer.CaptureFrame());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 631 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
632 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); 632 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8");
633 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264"); 633 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264");
634 634
635 std::vector<cricket::VideoCodec> codecs; 635 std::vector<cricket::VideoCodec> codecs;
636 codecs.push_back(kVp8Codec); 636 codecs.push_back(kVp8Codec);
637 637
638 rtc::scoped_ptr<VideoMediaChannel> channel( 638 rtc::scoped_ptr<VideoMediaChannel> channel(
639 SetUpForExternalEncoderFactory(&encoder_factory, codecs)); 639 SetUpForExternalEncoderFactory(&encoder_factory, codecs));
640 640
641 std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 641 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
642 642
643 EXPECT_TRUE( 643 EXPECT_TRUE(
644 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs))); 644 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs)));
645 EXPECT_TRUE(channel->SetSend(true)); 645 EXPECT_TRUE(channel->SetSend(true));
646 646
647 // Send a fake frame, or else the media engine will configure the simulcast 647 // Send a fake frame, or else the media engine will configure the simulcast
648 // encoder adapter at a low-enough size that it'll only create a single 648 // encoder adapter at a low-enough size that it'll only create a single
649 // encoder layer. 649 // encoder layer.
650 cricket::FakeVideoCapturer capturer; 650 cricket::FakeVideoCapturer capturer;
651 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer)); 651 EXPECT_TRUE(channel->SetCapturer(ssrcs.front(), &capturer));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 687
688 TEST_F(WebRtcVideoEngine2Test, SimulcastDisabledForH264) { 688 TEST_F(WebRtcVideoEngine2Test, SimulcastDisabledForH264) {
689 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 689 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
690 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264"); 690 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecH264, "H264");
691 std::vector<cricket::VideoCodec> codecs; 691 std::vector<cricket::VideoCodec> codecs;
692 codecs.push_back(kH264Codec); 692 codecs.push_back(kH264Codec);
693 693
694 rtc::scoped_ptr<VideoMediaChannel> channel( 694 rtc::scoped_ptr<VideoMediaChannel> channel(
695 SetUpForExternalEncoderFactory(&encoder_factory, codecs)); 695 SetUpForExternalEncoderFactory(&encoder_factory, codecs));
696 696
697 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 697 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
698 EXPECT_TRUE( 698 EXPECT_TRUE(
699 channel->AddSendStream(cricket::CreateSimStreamParams("cname", ssrcs))); 699 channel->AddSendStream(cricket::CreateSimStreamParams("cname", ssrcs)));
700 // Set the stream to 720p. This should trigger a "real" encoder 700 // Set the stream to 720p. This should trigger a "real" encoder
701 // initialization. 701 // initialization.
702 cricket::VideoFormat format( 702 cricket::VideoFormat format(
703 1280, 720, cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420); 703 1280, 720, cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420);
704 EXPECT_TRUE(channel->SetSendStreamFormat(ssrcs[0], format)); 704 EXPECT_TRUE(channel->SetSendStreamFormat(ssrcs[0], format));
705 ASSERT_EQ(1u, encoder_factory.encoders().size()); 705 ASSERT_EQ(1u, encoder_factory.encoders().size());
706 FakeWebRtcVideoEncoder* encoder = encoder_factory.encoders()[0]; 706 FakeWebRtcVideoEncoder* encoder = encoder_factory.encoders()[0];
707 EXPECT_EQ(webrtc::kVideoCodecH264, encoder->GetCodecSettings().codecType); 707 EXPECT_EQ(webrtc::kVideoCodecH264, encoder->GetCodecSettings().codecType);
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
1074 return AddSendStream( 1074 return AddSendStream(
1075 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1075 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
1076 } 1076 }
1077 return AddSendStream(CreateSimStreamParams("cname", ssrcs)); 1077 return AddSendStream(CreateSimStreamParams("cname", ssrcs));
1078 } 1078 }
1079 1079
1080 rtc::scoped_ptr<FakeCall> fake_call_; 1080 rtc::scoped_ptr<FakeCall> fake_call_;
1081 rtc::scoped_ptr<VideoMediaChannel> channel_; 1081 rtc::scoped_ptr<VideoMediaChannel> channel_;
1082 cricket::VideoSendParameters send_parameters_; 1082 cricket::VideoSendParameters send_parameters_;
1083 cricket::VideoRecvParameters recv_parameters_; 1083 cricket::VideoRecvParameters recv_parameters_;
1084 uint32 last_ssrc_; 1084 uint32_t last_ssrc_;
1085 }; 1085 };
1086 1086
1087 TEST_F(WebRtcVideoChannel2Test, SetsSyncGroupFromSyncLabel) { 1087 TEST_F(WebRtcVideoChannel2Test, SetsSyncGroupFromSyncLabel) {
1088 const uint32 kVideoSsrc = 123; 1088 const uint32_t kVideoSsrc = 123;
1089 const std::string kSyncLabel = "AvSyncLabel"; 1089 const std::string kSyncLabel = "AvSyncLabel";
1090 1090
1091 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kVideoSsrc); 1091 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kVideoSsrc);
1092 sp.sync_label = kSyncLabel; 1092 sp.sync_label = kSyncLabel;
1093 EXPECT_TRUE(channel_->AddRecvStream(sp)); 1093 EXPECT_TRUE(channel_->AddRecvStream(sp));
1094 1094
1095 EXPECT_EQ(1, fake_call_->GetVideoReceiveStreams().size()); 1095 EXPECT_EQ(1, fake_call_->GetVideoReceiveStreams().size());
1096 EXPECT_EQ(kSyncLabel, 1096 EXPECT_EQ(kSyncLabel,
1097 fake_call_->GetVideoReceiveStreams()[0]->GetConfig().sync_group) 1097 fake_call_->GetVideoReceiveStreams()[0]->GetConfig().sync_group)
1098 << "SyncGroup should be set based on sync_label"; 1098 << "SyncGroup should be set based on sync_label";
1099 } 1099 }
1100 1100
1101 TEST_F(WebRtcVideoChannel2Test, RecvStreamWithSimAndRtx) { 1101 TEST_F(WebRtcVideoChannel2Test, RecvStreamWithSimAndRtx) {
1102 cricket::VideoSendParameters parameters; 1102 cricket::VideoSendParameters parameters;
1103 parameters.codecs = engine_.codecs(); 1103 parameters.codecs = engine_.codecs();
1104 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1104 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1105 EXPECT_TRUE(channel_->SetSend(true)); 1105 EXPECT_TRUE(channel_->SetSend(true));
1106 parameters.options.conference_mode.Set(true); 1106 parameters.options.conference_mode.Set(true);
1107 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1107 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1108 1108
1109 // Send side. 1109 // Send side.
1110 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 1110 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
1111 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 1111 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
1112 FakeVideoSendStream* send_stream = AddSendStream( 1112 FakeVideoSendStream* send_stream = AddSendStream(
1113 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1113 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
1114 1114
1115 ASSERT_EQ(rtx_ssrcs.size(), send_stream->GetConfig().rtp.rtx.ssrcs.size()); 1115 ASSERT_EQ(rtx_ssrcs.size(), send_stream->GetConfig().rtp.rtx.ssrcs.size());
1116 for (size_t i = 0; i < rtx_ssrcs.size(); ++i) 1116 for (size_t i = 0; i < rtx_ssrcs.size(); ++i)
1117 EXPECT_EQ(rtx_ssrcs[i], send_stream->GetConfig().rtp.rtx.ssrcs[i]); 1117 EXPECT_EQ(rtx_ssrcs[i], send_stream->GetConfig().rtp.rtx.ssrcs[i]);
1118 1118
1119 // Receiver side. 1119 // Receiver side.
1120 FakeVideoReceiveStream* recv_stream = AddRecvStream( 1120 FakeVideoReceiveStream* recv_stream = AddRecvStream(
1121 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1121 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
1856 } 1856 }
1857 1857
1858 TEST_F(WebRtcVideoChannel2Test, SetDefaultSendCodecs) { 1858 TEST_F(WebRtcVideoChannel2Test, SetDefaultSendCodecs) {
1859 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); 1859 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_));
1860 1860
1861 VideoCodec codec; 1861 VideoCodec codec;
1862 EXPECT_TRUE(channel_->GetSendCodec(&codec)); 1862 EXPECT_TRUE(channel_->GetSendCodec(&codec));
1863 EXPECT_TRUE(codec.Matches(engine_.codecs()[0])); 1863 EXPECT_TRUE(codec.Matches(engine_.codecs()[0]));
1864 1864
1865 // Using a RTX setup to verify that the default RTX payload type is good. 1865 // Using a RTX setup to verify that the default RTX payload type is good.
1866 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 1866 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
1867 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 1867 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
1868 FakeVideoSendStream* stream = AddSendStream( 1868 FakeVideoSendStream* stream = AddSendStream(
1869 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 1869 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
1870 webrtc::VideoSendStream::Config config = stream->GetConfig(); 1870 webrtc::VideoSendStream::Config config = stream->GetConfig();
1871 1871
1872 // Make sure NACK and FEC are enabled on the correct payload types. 1872 // Make sure NACK and FEC are enabled on the correct payload types.
1873 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms); 1873 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms);
1874 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type); 1874 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type);
1875 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type); 1875 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type);
1876 1876
1877 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size()); 1877 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size());
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after
2578 info.bw_estimations[0].actual_enc_bitrate); 2578 info.bw_estimations[0].actual_enc_bitrate);
2579 EXPECT_EQ(1 + 3 + 5 + 7, info.bw_estimations[0].transmit_bitrate) 2579 EXPECT_EQ(1 + 3 + 5 + 7, info.bw_estimations[0].transmit_bitrate)
2580 << "Bandwidth stats should take all streams into account."; 2580 << "Bandwidth stats should take all streams into account.";
2581 EXPECT_EQ(2 + 4 + 6 + 8, info.bw_estimations[0].retransmit_bitrate) 2581 EXPECT_EQ(2 + 4 + 6 + 8, info.bw_estimations[0].retransmit_bitrate)
2582 << "Bandwidth stats should take all streams into account."; 2582 << "Bandwidth stats should take all streams into account.";
2583 } 2583 }
2584 2584
2585 TEST_F(WebRtcVideoChannel2Test, DefaultReceiveStreamReconfiguresToUseRtx) { 2585 TEST_F(WebRtcVideoChannel2Test, DefaultReceiveStreamReconfiguresToUseRtx) {
2586 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2586 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2587 2587
2588 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 2588 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
2589 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2589 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2590 2590
2591 ASSERT_EQ(0u, fake_call_->GetVideoReceiveStreams().size()); 2591 ASSERT_EQ(0u, fake_call_->GetVideoReceiveStreams().size());
2592 const size_t kDataLength = 12; 2592 const size_t kDataLength = 12;
2593 uint8_t data[kDataLength]; 2593 uint8_t data[kDataLength];
2594 memset(data, 0, sizeof(data)); 2594 memset(data, 0, sizeof(data));
2595 rtc::SetBE32(&data[8], ssrcs[0]); 2595 rtc::SetBE32(&data[8], ssrcs[0]);
2596 rtc::Buffer packet(data, kDataLength); 2596 rtc::Buffer packet(data, kDataLength);
2597 rtc::PacketTime packet_time; 2597 rtc::PacketTime packet_time;
2598 channel_->OnPacketReceived(&packet, packet_time); 2598 channel_->OnPacketReceived(&packet, packet_time);
2599 2599
2600 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) 2600 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size())
2601 << "No default receive stream created."; 2601 << "No default receive stream created.";
2602 FakeVideoReceiveStream* recv_stream = fake_call_->GetVideoReceiveStreams()[0]; 2602 FakeVideoReceiveStream* recv_stream = fake_call_->GetVideoReceiveStreams()[0];
2603 EXPECT_EQ(0u, recv_stream->GetConfig().rtp.rtx.size()) 2603 EXPECT_EQ(0u, recv_stream->GetConfig().rtp.rtx.size())
2604 << "Default receive stream should not have configured RTX"; 2604 << "Default receive stream should not have configured RTX";
2605 2605
2606 EXPECT_TRUE(channel_->AddRecvStream( 2606 EXPECT_TRUE(channel_->AddRecvStream(
2607 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs))); 2607 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)));
2608 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) 2608 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size())
2609 << "AddRecvStream should've reconfigured, not added a new receiver."; 2609 << "AddRecvStream should've reconfigured, not added a new receiver.";
2610 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; 2610 recv_stream = fake_call_->GetVideoReceiveStreams()[0];
2611 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.rtx.size()); 2611 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.rtx.size());
2612 EXPECT_EQ(rtx_ssrcs[0], 2612 EXPECT_EQ(rtx_ssrcs[0],
2613 recv_stream->GetConfig().rtp.rtx.begin()->second.ssrc); 2613 recv_stream->GetConfig().rtp.rtx.begin()->second.ssrc);
2614 } 2614 }
2615 2615
2616 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithMissingSsrcsForRtx) { 2616 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithMissingSsrcsForRtx) {
2617 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2617 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2618 2618
2619 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 2619 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
2620 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2620 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2621 2621
2622 StreamParams sp = 2622 StreamParams sp =
2623 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs); 2623 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs);
2624 sp.ssrcs = ssrcs; // Without RTXs, this is the important part. 2624 sp.ssrcs = ssrcs; // Without RTXs, this is the important part.
2625 2625
2626 EXPECT_FALSE(channel_->AddSendStream(sp)); 2626 EXPECT_FALSE(channel_->AddSendStream(sp));
2627 EXPECT_FALSE(channel_->AddRecvStream(sp)); 2627 EXPECT_FALSE(channel_->AddRecvStream(sp));
2628 } 2628 }
2629 2629
2630 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithOverlappingRtxSsrcs) { 2630 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithOverlappingRtxSsrcs) {
2631 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2631 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2632 2632
2633 const std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs1); 2633 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
2634 const std::vector<uint32> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2634 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2635 2635
2636 StreamParams sp = 2636 StreamParams sp =
2637 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs); 2637 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs);
2638 2638
2639 EXPECT_TRUE(channel_->AddSendStream(sp)); 2639 EXPECT_TRUE(channel_->AddSendStream(sp));
2640 EXPECT_TRUE(channel_->AddRecvStream(sp)); 2640 EXPECT_TRUE(channel_->AddRecvStream(sp));
2641 2641
2642 // The RTX SSRC is already used in previous streams, using it should fail. 2642 // The RTX SSRC is already used in previous streams, using it should fail.
2643 sp = cricket::StreamParams::CreateLegacy(rtx_ssrcs[0]); 2643 sp = cricket::StreamParams::CreateLegacy(rtx_ssrcs[0]);
2644 EXPECT_FALSE(channel_->AddSendStream(sp)); 2644 EXPECT_FALSE(channel_->AddSendStream(sp));
2645 EXPECT_FALSE(channel_->AddRecvStream(sp)); 2645 EXPECT_FALSE(channel_->AddRecvStream(sp));
2646 2646
2647 // After removing the original stream this should be fine to add (makes sure 2647 // After removing the original stream this should be fine to add (makes sure
2648 // that RTX ssrcs are not forever taken). 2648 // that RTX ssrcs are not forever taken).
2649 EXPECT_TRUE(channel_->RemoveSendStream(ssrcs[0])); 2649 EXPECT_TRUE(channel_->RemoveSendStream(ssrcs[0]));
2650 EXPECT_TRUE(channel_->RemoveRecvStream(ssrcs[0])); 2650 EXPECT_TRUE(channel_->RemoveRecvStream(ssrcs[0]));
2651 EXPECT_TRUE(channel_->AddSendStream(sp)); 2651 EXPECT_TRUE(channel_->AddSendStream(sp));
2652 EXPECT_TRUE(channel_->AddRecvStream(sp)); 2652 EXPECT_TRUE(channel_->AddRecvStream(sp));
2653 } 2653 }
2654 2654
2655 TEST_F(WebRtcVideoChannel2Test, 2655 TEST_F(WebRtcVideoChannel2Test,
2656 RejectsAddingStreamsWithOverlappingSimulcastSsrcs) { 2656 RejectsAddingStreamsWithOverlappingSimulcastSsrcs) {
2657 static const uint32 kFirstStreamSsrcs[] = {1, 2, 3}; 2657 static const uint32_t kFirstStreamSsrcs[] = {1, 2, 3};
2658 static const uint32 kOverlappingStreamSsrcs[] = {4, 3, 5}; 2658 static const uint32_t kOverlappingStreamSsrcs[] = {4, 3, 5};
2659 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 2659 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
2660 2660
2661 StreamParams sp = 2661 StreamParams sp =
2662 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kFirstStreamSsrcs)); 2662 cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kFirstStreamSsrcs));
2663 2663
2664 EXPECT_TRUE(channel_->AddSendStream(sp)); 2664 EXPECT_TRUE(channel_->AddSendStream(sp));
2665 EXPECT_TRUE(channel_->AddRecvStream(sp)); 2665 EXPECT_TRUE(channel_->AddRecvStream(sp));
2666 2666
2667 // One of the SSRCs is already used in previous streams, using it should fail. 2667 // One of the SSRCs is already used in previous streams, using it should fail.
2668 sp = cricket::CreateSimStreamParams("cname", 2668 sp = cricket::CreateSimStreamParams("cname",
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
2974 void VerifySimulcastSettings(const VideoCodec& codec, 2974 void VerifySimulcastSettings(const VideoCodec& codec,
2975 VideoOptions::HighestBitrate bitrate_mode, 2975 VideoOptions::HighestBitrate bitrate_mode,
2976 size_t num_configured_streams, 2976 size_t num_configured_streams,
2977 size_t expected_num_streams, 2977 size_t expected_num_streams,
2978 SimulcastBitrateMode simulcast_bitrate_mode) { 2978 SimulcastBitrateMode simulcast_bitrate_mode) {
2979 cricket::VideoSendParameters parameters; 2979 cricket::VideoSendParameters parameters;
2980 parameters.options.video_highest_bitrate.Set(bitrate_mode); 2980 parameters.options.video_highest_bitrate.Set(bitrate_mode);
2981 parameters.codecs.push_back(codec); 2981 parameters.codecs.push_back(codec);
2982 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2982 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2983 2983
2984 std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); 2984 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
2985 RTC_DCHECK(num_configured_streams <= ssrcs.size()); 2985 RTC_DCHECK(num_configured_streams <= ssrcs.size());
2986 ssrcs.resize(num_configured_streams); 2986 ssrcs.resize(num_configured_streams);
2987 2987
2988 FakeVideoSendStream* stream = 2988 FakeVideoSendStream* stream =
2989 AddSendStream(CreateSimStreamParams("cname", ssrcs)); 2989 AddSendStream(CreateSimStreamParams("cname", ssrcs));
2990 // Send a full-size frame to trigger a stream reconfiguration to use all 2990 // Send a full-size frame to trigger a stream reconfiguration to use all
2991 // expected simulcast layers. 2991 // expected simulcast layers.
2992 cricket::FakeVideoCapturer capturer; 2992 cricket::FakeVideoCapturer capturer;
2993 EXPECT_TRUE(channel_->SetCapturer(ssrcs.front(), &capturer)); 2993 EXPECT_TRUE(channel_->SetCapturer(ssrcs.front(), &capturer));
2994 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(cricket::VideoFormat( 2994 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(cricket::VideoFormat(
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
3083 EXPECT_TRUE(channel_->AddRecvStream(sp)); 3083 EXPECT_TRUE(channel_->AddRecvStream(sp));
3084 std::vector<FakeVideoReceiveStream*> streams = 3084 std::vector<FakeVideoReceiveStream*> streams =
3085 fake_call_.GetVideoReceiveStreams(); 3085 fake_call_.GetVideoReceiveStreams();
3086 EXPECT_EQ(num_streams + 1, streams.size()); 3086 EXPECT_EQ(num_streams + 1, streams.size());
3087 return streams[streams.size() - 1]; 3087 return streams[streams.size() - 1];
3088 } 3088 }
3089 3089
3090 FakeCall fake_call_; 3090 FakeCall fake_call_;
3091 WebRtcVideoEngine2 engine_; 3091 WebRtcVideoEngine2 engine_;
3092 rtc::scoped_ptr<VideoMediaChannel> channel_; 3092 rtc::scoped_ptr<VideoMediaChannel> channel_;
3093 uint32 last_ssrc_; 3093 uint32_t last_ssrc_;
3094 }; 3094 };
3095 3095
3096 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith2SimulcastStreams) { 3096 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith2SimulcastStreams) {
3097 VerifySimulcastSettings(kVp8Codec, VideoOptions::NORMAL, 2, 2, SBM_NORMAL); 3097 VerifySimulcastSettings(kVp8Codec, VideoOptions::NORMAL, 2, 2, SBM_NORMAL);
3098 } 3098 }
3099 3099
3100 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) { 3100 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) {
3101 VerifySimulcastSettings( 3101 VerifySimulcastSettings(
3102 kVp8Codec720p, VideoOptions::NORMAL, 3, 3, SBM_NORMAL); 3102 kVp8Codec720p, VideoOptions::NORMAL, 3, 3, SBM_NORMAL);
3103 } 3103 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
3207 // Ensures that the correct settings are applied to the codec when two temporal 3207 // Ensures that the correct settings are applied to the codec when two temporal
3208 // layer screencasting is enabled, and that the correct simulcast settings are 3208 // layer screencasting is enabled, and that the correct simulcast settings are
3209 // reapplied when disabling screencasting. 3209 // reapplied when disabling screencasting.
3210 TEST_F(WebRtcVideoChannel2SimulcastTest, 3210 TEST_F(WebRtcVideoChannel2SimulcastTest,
3211 DISABLED_TwoTemporalLayerScreencastSettings) { 3211 DISABLED_TwoTemporalLayerScreencastSettings) {
3212 // TODO(pbos): Implement. 3212 // TODO(pbos): Implement.
3213 FAIL() << "Not implemented."; 3213 FAIL() << "Not implemented.";
3214 } 3214 }
3215 3215
3216 } // namespace cricket 3216 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698