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

Side by Side Diff: webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc

Issue 1528503003: Lint enabled for webrtc/modules/video_coding folder. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase Created 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 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 <vector> 11 #include <vector>
12 12
13 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "webrtc/modules/video_coding/include/video_codec_interface.h" 14 #include "webrtc/modules/video_coding/include/video_codec_interface.h"
15 #include "webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.h" 15 #include "webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.h"
16 #include "webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h" 16 #include "webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h"
17 #include "webrtc/modules/video_coding/codecs/vp8/vp8_factory.h" 17 #include "webrtc/modules/video_coding/codecs/vp8/vp8_factory.h"
18 18
19 namespace webrtc { 19 namespace webrtc {
20 namespace testing { 20 namespace testing {
21 21
22 static VP8Encoder* CreateTestEncoderAdapter() { 22 static VP8Encoder* CreateTestEncoderAdapter() {
23 VP8EncoderFactoryConfig::set_use_simulcast_adapter(true); 23 VP8EncoderFactoryConfig::set_use_simulcast_adapter(true);
24 return VP8Encoder::Create(); 24 return VP8Encoder::Create();
25 } 25 }
26 26
27 class TestSimulcastEncoderAdapter : public TestVp8Simulcast { 27 class TestSimulcastEncoderAdapter : public TestVp8Simulcast {
28 public: 28 public:
29 TestSimulcastEncoderAdapter() 29 TestSimulcastEncoderAdapter()
30 : TestVp8Simulcast(CreateTestEncoderAdapter(), 30 : TestVp8Simulcast(CreateTestEncoderAdapter(), VP8Decoder::Create()) {}
31 VP8Decoder::Create()) {} 31
32 protected: 32 protected:
33 virtual void SetUp() { 33 virtual void SetUp() { TestVp8Simulcast::SetUp(); }
34 TestVp8Simulcast::SetUp();
35 }
36 virtual void TearDown() { 34 virtual void TearDown() {
37 TestVp8Simulcast::TearDown(); 35 TestVp8Simulcast::TearDown();
38 VP8EncoderFactoryConfig::set_use_simulcast_adapter(false); 36 VP8EncoderFactoryConfig::set_use_simulcast_adapter(false);
39 } 37 }
40 }; 38 };
41 39
42 TEST_F(TestSimulcastEncoderAdapter, TestKeyFrameRequestsOnAllStreams) { 40 TEST_F(TestSimulcastEncoderAdapter, TestKeyFrameRequestsOnAllStreams) {
43 TestVp8Simulcast::TestKeyFrameRequestsOnAllStreams(); 41 TestVp8Simulcast::TestKeyFrameRequestsOnAllStreams();
44 } 42 }
45 43
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 TEST_F(TestSimulcastEncoderAdapter, TestSaptioTemporalLayers333PatternEncoder) { 88 TEST_F(TestSimulcastEncoderAdapter, TestSaptioTemporalLayers333PatternEncoder) {
91 TestVp8Simulcast::TestSaptioTemporalLayers333PatternEncoder(); 89 TestVp8Simulcast::TestSaptioTemporalLayers333PatternEncoder();
92 } 90 }
93 91
94 TEST_F(TestSimulcastEncoderAdapter, TestSpatioTemporalLayers321PatternEncoder) { 92 TEST_F(TestSimulcastEncoderAdapter, TestSpatioTemporalLayers321PatternEncoder) {
95 TestVp8Simulcast::TestSpatioTemporalLayers321PatternEncoder(); 93 TestVp8Simulcast::TestSpatioTemporalLayers321PatternEncoder();
96 } 94 }
97 95
98 // TODO(ronghuawu): Enable this test when SkipEncodingUnusedStreams option is 96 // TODO(ronghuawu): Enable this test when SkipEncodingUnusedStreams option is
99 // implemented for SimulcastEncoderAdapter. 97 // implemented for SimulcastEncoderAdapter.
100 TEST_F(TestSimulcastEncoderAdapter, 98 TEST_F(TestSimulcastEncoderAdapter, DISABLED_TestSkipEncodingUnusedStreams) {
101 DISABLED_TestSkipEncodingUnusedStreams) {
102 TestVp8Simulcast::TestSkipEncodingUnusedStreams(); 99 TestVp8Simulcast::TestSkipEncodingUnusedStreams();
103 } 100 }
104 101
105 TEST_F(TestSimulcastEncoderAdapter, DISABLED_TestRPSIEncoder) { 102 TEST_F(TestSimulcastEncoderAdapter, DISABLED_TestRPSIEncoder) {
106 TestVp8Simulcast::TestRPSIEncoder(); 103 TestVp8Simulcast::TestRPSIEncoder();
107 } 104 }
108 105
109 class MockVideoEncoder : public VideoEncoder { 106 class MockVideoEncoder : public VideoEncoder {
110 public: 107 public:
111 int32_t InitEncode(const VideoCodec* codecSettings, 108 int32_t InitEncode(const VideoCodec* codecSettings,
112 int32_t numberOfCores, 109 int32_t numberOfCores,
113 size_t maxPayloadSize) override { 110 size_t maxPayloadSize) override {
114 codec_ = *codecSettings; 111 codec_ = *codecSettings;
115 return 0; 112 return 0;
116 } 113 }
117 114
118 int32_t Encode(const VideoFrame& inputImage, 115 int32_t Encode(const VideoFrame& inputImage,
119 const CodecSpecificInfo* codecSpecificInfo, 116 const CodecSpecificInfo* codecSpecificInfo,
120 const std::vector<FrameType>* frame_types) override { 117 const std::vector<FrameType>* frame_types) override {
121 return 0; 118 return 0;
122 } 119 }
123 120
124 int32_t RegisterEncodeCompleteCallback( 121 int32_t RegisterEncodeCompleteCallback(
125 EncodedImageCallback* callback) override { 122 EncodedImageCallback* callback) override {
126 callback_ = callback; 123 callback_ = callback;
127 return 0; 124 return 0;
128 } 125 }
129 126
130 int32_t Release() override { 127 int32_t Release() override { return 0; }
131 return 0;
132 }
133 128
134 int32_t SetRates(uint32_t newBitRate, uint32_t frameRate) override { 129 int32_t SetRates(uint32_t newBitRate, uint32_t frameRate) override {
135 return 0; 130 return 0;
136 } 131 }
137 132
138 MOCK_METHOD2(SetChannelParameters, 133 MOCK_METHOD2(SetChannelParameters, int32_t(uint32_t packetLoss, int64_t rtt));
139 int32_t(uint32_t packetLoss, int64_t rtt));
140 134
141 bool SupportsNativeHandle() const override { 135 bool SupportsNativeHandle() const override { return supports_native_handle_; }
142 return supports_native_handle_;
143 }
144 136
145 virtual ~MockVideoEncoder() { 137 virtual ~MockVideoEncoder() {}
146 }
147 138
148 const VideoCodec& codec() const { return codec_; } 139 const VideoCodec& codec() const { return codec_; }
149 140
150 void SendEncodedImage(int width, int height) { 141 void SendEncodedImage(int width, int height) {
151 // Sends a fake image of the given width/height. 142 // Sends a fake image of the given width/height.
152 EncodedImage image; 143 EncodedImage image;
153 image._encodedWidth = width; 144 image._encodedWidth = width;
154 image._encodedHeight = height; 145 image._encodedHeight = height;
155 CodecSpecificInfo codecSpecificInfo; 146 CodecSpecificInfo codecSpecificInfo;
156 memset(&codecSpecificInfo, 0, sizeof(codecSpecificInfo)); 147 memset(&codecSpecificInfo, 0, sizeof(codecSpecificInfo));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 // Can only be called once as the SimulcastEncoderAdapter will take the 184 // Can only be called once as the SimulcastEncoderAdapter will take the
194 // ownership of |factory_|. 185 // ownership of |factory_|.
195 VP8Encoder* CreateMockEncoderAdapter() { 186 VP8Encoder* CreateMockEncoderAdapter() {
196 return new SimulcastEncoderAdapter(factory_); 187 return new SimulcastEncoderAdapter(factory_);
197 } 188 }
198 189
199 void ExpectCallSetChannelParameters(uint32_t packetLoss, int64_t rtt) { 190 void ExpectCallSetChannelParameters(uint32_t packetLoss, int64_t rtt) {
200 EXPECT_TRUE(!factory_->encoders().empty()); 191 EXPECT_TRUE(!factory_->encoders().empty());
201 for (size_t i = 0; i < factory_->encoders().size(); ++i) { 192 for (size_t i = 0; i < factory_->encoders().size(); ++i) {
202 EXPECT_CALL(*factory_->encoders()[i], 193 EXPECT_CALL(*factory_->encoders()[i],
203 SetChannelParameters(packetLoss, rtt)).Times(1); 194 SetChannelParameters(packetLoss, rtt))
195 .Times(1);
204 } 196 }
205 } 197 }
206 198
207 MockVideoEncoderFactory* factory() { return factory_; } 199 MockVideoEncoderFactory* factory() { return factory_; }
208 200
209 private: 201 private:
210 MockVideoEncoderFactory* factory_; 202 MockVideoEncoderFactory* factory_;
211 }; 203 };
212 204
213 static const int kTestTemporalLayerProfile[3] = {3, 2, 1}; 205 static const int kTestTemporalLayerProfile[3] = {3, 2, 1};
(...skipping 28 matching lines...) Expand all
242 return false; 234 return false;
243 } 235 }
244 *out_width = last_encoded_image_width_; 236 *out_width = last_encoded_image_width_;
245 *out_height = last_encoded_image_height_; 237 *out_height = last_encoded_image_height_;
246 *out_simulcast_index = last_encoded_image_simulcast_index_; 238 *out_simulcast_index = last_encoded_image_simulcast_index_;
247 return true; 239 return true;
248 } 240 }
249 241
250 void SetupCodec() { 242 void SetupCodec() {
251 TestVp8Simulcast::DefaultSettings( 243 TestVp8Simulcast::DefaultSettings(
252 &codec_, 244 &codec_, static_cast<const int*>(kTestTemporalLayerProfile));
253 static_cast<const int*>(kTestTemporalLayerProfile));
254 EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200)); 245 EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
255 adapter_->RegisterEncodeCompleteCallback(this); 246 adapter_->RegisterEncodeCompleteCallback(this);
256 } 247 }
257 248
258 void VerifyCodec(const VideoCodec& ref, int stream_index) { 249 void VerifyCodec(const VideoCodec& ref, int stream_index) {
259 const VideoCodec& target = 250 const VideoCodec& target =
260 helper_->factory()->encoders()[stream_index]->codec(); 251 helper_->factory()->encoders()[stream_index]->codec();
261 EXPECT_EQ(ref.codecType, target.codecType); 252 EXPECT_EQ(ref.codecType, target.codecType);
262 EXPECT_EQ(0, strcmp(ref.plName, target.plName)); 253 EXPECT_EQ(0, strcmp(ref.plName, target.plName));
263 EXPECT_EQ(ref.plType, target.plType); 254 EXPECT_EQ(ref.plType, target.plType);
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200)); 406 EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
416 adapter_->RegisterEncodeCompleteCallback(this); 407 adapter_->RegisterEncodeCompleteCallback(this);
417 ASSERT_EQ(3u, helper_->factory()->encoders().size()); 408 ASSERT_EQ(3u, helper_->factory()->encoders().size());
418 for (MockVideoEncoder* encoder : helper_->factory()->encoders()) 409 for (MockVideoEncoder* encoder : helper_->factory()->encoders())
419 encoder->set_supports_native_handle(true); 410 encoder->set_supports_native_handle(true);
420 EXPECT_FALSE(adapter_->SupportsNativeHandle()); 411 EXPECT_FALSE(adapter_->SupportsNativeHandle());
421 } 412 }
422 413
423 } // namespace testing 414 } // namespace testing
424 } // namespace webrtc 415 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698