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

Unified Diff: webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc

Issue 1913073002: Extract common simulcast logic from VP8 wrapper and simulcast adapter (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Address comments, added tests Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
diff --git a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
index aafcd797ac50e10ba7ead609ffa3ae516298b96d..d00139c3b4e1a8868009007b2c931daaba4736eb 100644
--- a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
+++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
@@ -132,10 +132,7 @@ class MockVideoEncoder : public VideoEncoder {
int32_t Release() /* override */ { return 0; }
- int32_t SetRates(uint32_t newBitRate, uint32_t frameRate) /* override */ {
- return 0;
- }
-
+ MOCK_METHOD2(SetRates, int32_t(uint32_t newBitRate, uint32_t frameRate));
MOCK_METHOD2(SetChannelParameters, int32_t(uint32_t packetLoss, int64_t rtt));
bool SupportsNativeHandle() const /* override */ {
@@ -175,7 +172,8 @@ class MockVideoEncoderFactory : public VideoEncoderFactory {
const char* encoder_name = encoder_names_.empty()
? "codec_implementation_name"
: encoder_names_[encoders_.size()];
- ON_CALL(*encoder, ImplementationName()).WillByDefault(Return(encoder_name));
+ EXPECT_CALL(*encoder, ImplementationName())
+ .WillRepeatedly(Return(encoder_name));
encoders_.push_back(encoder);
return encoder;
}
@@ -190,6 +188,16 @@ class MockVideoEncoderFactory : public VideoEncoderFactory {
delete encoder;
}
+ void ExpectRates(const std::vector<int>& expected_bitrates_kbps,
+ int expected_framerate) {
+ ASSERT_EQ(encoders_.size(), expected_bitrates_kbps.size());
+ for (size_t i = 0; i < expected_bitrates_kbps.size(); ++i) {
+ EXPECT_CALL(*encoders_[i],
+ SetRates(expected_bitrates_kbps[i], expected_framerate))
+ .WillOnce(Return(0));
+ }
+ }
+
virtual ~MockVideoEncoderFactory() {}
const std::vector<MockVideoEncoder*>& encoders() const { return encoders_; }
@@ -380,7 +388,16 @@ TEST_F(TestSimulcastEncoderAdapterFake, EncodedCallbackForDifferentEncoders) {
SetupCodec();
// Set bitrates so that we send all layers.
- adapter_->SetRates(1200, 30);
+ int total_bitrate_kbps = 0;
+ std::vector<int> expected_rates_kbps;
+ for (int i = 0; i < codec_.numberOfSimulcastStreams; ++i) {
+ expected_rates_kbps.push_back(codec_.simulcastStream[i].targetBitrate);
+ total_bitrate_kbps += codec_.simulcastStream[i].targetBitrate;
+ }
+
+ int kFrameRate = 30;
+ helper_->factory()->ExpectRates(expected_rates_kbps, kFrameRate);
+ adapter_->SetRates(total_bitrate_kbps, kFrameRate);
// At this point, the simulcast encoder adapter should have 3 streams: HD,
// quarter HD, and quarter quarter HD. We're going to mostly ignore the exact
@@ -424,7 +441,8 @@ TEST_F(TestSimulcastEncoderAdapterFake, SupportsNativeHandleForSingleStreams) {
}
TEST_F(TestSimulcastEncoderAdapterFake, SupportsImplementationName) {
- EXPECT_STREQ("SimulcastEncoderAdapter", adapter_->ImplementationName());
+ EXPECT_STREQ("SimulcastEncoderAdapter (uninitialized)",
+ adapter_->ImplementationName());
TestVp8Simulcast::DefaultSettings(
&codec_, static_cast<const int*>(kTestTemporalLayerProfile));
std::vector<const char*> encoder_names;

Powered by Google App Engine
This is Rietveld 408576698