OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #include <algorithm> | 11 #include <algorithm> |
12 #include <list> | 12 #include <list> |
13 #include <map> | 13 #include <map> |
14 #include <memory> | 14 #include <memory> |
15 #include <vector> | 15 #include <vector> |
16 | 16 |
17 #include "webrtc/base/arraysize.h" | 17 #include "webrtc/base/arraysize.h" |
18 #include "webrtc/base/gunit.h" | 18 #include "webrtc/base/gunit.h" |
19 #include "webrtc/base/stringutils.h" | 19 #include "webrtc/base/stringutils.h" |
20 #include "webrtc/common_video/h264/profile_level_id.h" | 20 #include "webrtc/common_video/h264/profile_level_id.h" |
21 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" | 21 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" |
| 22 #include "webrtc/media/base/mediaconstants.h" |
22 #include "webrtc/media/base/testutils.h" | 23 #include "webrtc/media/base/testutils.h" |
23 #include "webrtc/media/base/videoengine_unittest.h" | 24 #include "webrtc/media/base/videoengine_unittest.h" |
24 #include "webrtc/media/engine/fakewebrtccall.h" | 25 #include "webrtc/media/engine/fakewebrtccall.h" |
25 #include "webrtc/media/engine/fakewebrtcvideoengine.h" | 26 #include "webrtc/media/engine/fakewebrtcvideoengine.h" |
26 #include "webrtc/media/engine/simulcast.h" | 27 #include "webrtc/media/engine/simulcast.h" |
27 #include "webrtc/media/engine/webrtcvideoengine2.h" | 28 #include "webrtc/media/engine/webrtcvideoengine2.h" |
28 #include "webrtc/media/engine/webrtcvoiceengine.h" | 29 #include "webrtc/media/engine/webrtcvoiceengine.h" |
29 #include "webrtc/test/field_trial.h" | 30 #include "webrtc/test/field_trial.h" |
30 #include "webrtc/video_encoder.h" | 31 #include "webrtc/video_encoder.h" |
31 | 32 |
(...skipping 3710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3742 rtp_parameters.codecs[1]); | 3743 rtp_parameters.codecs[1]); |
3743 } | 3744 } |
3744 | 3745 |
3745 #if defined(WEBRTC_USE_H264) | 3746 #if defined(WEBRTC_USE_H264) |
3746 TEST_F(WebRtcVideoChannel2Test, GetRtpReceiveFmtpSprop) { | 3747 TEST_F(WebRtcVideoChannel2Test, GetRtpReceiveFmtpSprop) { |
3747 #else | 3748 #else |
3748 TEST_F(WebRtcVideoChannel2Test, DISABLED_GetRtpReceiveFmtpSprop) { | 3749 TEST_F(WebRtcVideoChannel2Test, DISABLED_GetRtpReceiveFmtpSprop) { |
3749 #endif | 3750 #endif |
3750 cricket::VideoRecvParameters parameters; | 3751 cricket::VideoRecvParameters parameters; |
3751 cricket::VideoCodec kH264sprop1(101, "H264"); | 3752 cricket::VideoCodec kH264sprop1(101, "H264"); |
3752 kH264sprop1.SetParam("sprop-parameter-sets", "uvw"); | 3753 kH264sprop1.SetParam(kH264FmtpSpropParameterSets, "uvw"); |
3753 parameters.codecs.push_back(kH264sprop1); | 3754 parameters.codecs.push_back(kH264sprop1); |
3754 cricket::VideoCodec kH264sprop2(102, "H264"); | 3755 cricket::VideoCodec kH264sprop2(102, "H264"); |
3755 kH264sprop2.SetParam("sprop-parameter-sets", "xyz"); | 3756 kH264sprop2.SetParam(kH264FmtpSpropParameterSets, "xyz"); |
3756 parameters.codecs.push_back(kH264sprop2); | 3757 parameters.codecs.push_back(kH264sprop2); |
3757 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); | 3758 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
3758 | 3759 |
3759 FakeVideoReceiveStream* recv_stream = AddRecvStream(); | 3760 FakeVideoReceiveStream* recv_stream = AddRecvStream(); |
3760 const webrtc::VideoReceiveStream::Config& cfg = recv_stream->GetConfig(); | 3761 const webrtc::VideoReceiveStream::Config& cfg = recv_stream->GetConfig(); |
3761 webrtc::RtpParameters rtp_parameters = | 3762 webrtc::RtpParameters rtp_parameters = |
3762 channel_->GetRtpReceiveParameters(last_ssrc_); | 3763 channel_->GetRtpReceiveParameters(last_ssrc_); |
3763 ASSERT_EQ(2u, rtp_parameters.codecs.size()); | 3764 ASSERT_EQ(2u, rtp_parameters.codecs.size()); |
3764 EXPECT_EQ(kH264sprop1.ToCodecParameters(), rtp_parameters.codecs[0]); | 3765 EXPECT_EQ(kH264sprop1.ToCodecParameters(), rtp_parameters.codecs[0]); |
3765 ASSERT_EQ(2u, cfg.decoders.size()); | 3766 ASSERT_EQ(2u, cfg.decoders.size()); |
3766 EXPECT_EQ(101, cfg.decoders[0].payload_type); | 3767 EXPECT_EQ(101, cfg.decoders[0].payload_type); |
3767 EXPECT_EQ("H264", cfg.decoders[0].payload_name); | 3768 EXPECT_EQ("H264", cfg.decoders[0].payload_name); |
3768 std::string sprop; | 3769 const auto it0 = |
3769 const webrtc::DecoderSpecificSettings* decoder_specific; | 3770 cfg.decoders[0].codec_params.find(kH264FmtpSpropParameterSets); |
3770 decoder_specific = &cfg.decoders[0].decoder_specific; | 3771 ASSERT_TRUE(it0 != cfg.decoders[0].codec_params.end()); |
3771 ASSERT_TRUE(static_cast<bool>(decoder_specific->h264_extra_settings)); | 3772 EXPECT_EQ("uvw", it0->second); |
3772 sprop = decoder_specific->h264_extra_settings->sprop_parameter_sets; | |
3773 EXPECT_EQ("uvw", sprop); | |
3774 | 3773 |
3775 EXPECT_EQ(102, cfg.decoders[1].payload_type); | 3774 EXPECT_EQ(102, cfg.decoders[1].payload_type); |
3776 EXPECT_EQ("H264", cfg.decoders[1].payload_name); | 3775 EXPECT_EQ("H264", cfg.decoders[1].payload_name); |
3777 decoder_specific = &cfg.decoders[1].decoder_specific; | 3776 const auto it1 = |
3778 ASSERT_TRUE(static_cast<bool>(decoder_specific->h264_extra_settings)); | 3777 cfg.decoders[1].codec_params.find(kH264FmtpSpropParameterSets); |
3779 sprop = decoder_specific->h264_extra_settings->sprop_parameter_sets; | 3778 ASSERT_TRUE(it1 != cfg.decoders[1].codec_params.end()); |
3780 EXPECT_EQ("xyz", sprop); | 3779 EXPECT_EQ("xyz", it1->second); |
3781 } | 3780 } |
3782 | 3781 |
3783 // Test that RtpParameters for receive stream has one encoding and it has | 3782 // Test that RtpParameters for receive stream has one encoding and it has |
3784 // the correct SSRC. | 3783 // the correct SSRC. |
3785 TEST_F(WebRtcVideoChannel2Test, RtpEncodingParametersSsrcIsSet) { | 3784 TEST_F(WebRtcVideoChannel2Test, RtpEncodingParametersSsrcIsSet) { |
3786 AddRecvStream(); | 3785 AddRecvStream(); |
3787 | 3786 |
3788 webrtc::RtpParameters rtp_parameters = | 3787 webrtc::RtpParameters rtp_parameters = |
3789 channel_->GetRtpReceiveParameters(last_ssrc_); | 3788 channel_->GetRtpReceiveParameters(last_ssrc_); |
3790 ASSERT_EQ(1u, rtp_parameters.encodings.size()); | 3789 ASSERT_EQ(1u, rtp_parameters.encodings.size()); |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3997 | 3996 |
3998 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) { | 3997 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) { |
3999 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 3); | 3998 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 3); |
4000 } | 3999 } |
4001 | 4000 |
4002 // Test that we normalize send codec format size in simulcast. | 4001 // Test that we normalize send codec format size in simulcast. |
4003 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { | 4002 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { |
4004 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 541, 271, 2, 2); | 4003 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 541, 271, 2, 2); |
4005 } | 4004 } |
4006 } // namespace cricket | 4005 } // namespace cricket |
OLD | NEW |