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

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

Issue 2523773003: Keep all codec parameters in VideoReceiveStream::Decoder (Closed)
Patch Set: Add common key for sprop-parameter-sets Created 4 years 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
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | webrtc/video/video_receive_stream.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | webrtc/video/video_receive_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698