Reland "Inform VideoEncoder of negotiated capabilities"
This is a reland of 11dfff0878c949f2e19d95a0ddc209cdad94b3b4 Now that I am sure that WebRTC code is not calling the obsolete versions, I will just remove the NOT_REACHED and call the new version from the old ones, so as not to trip up downstream projects. Original change's description: > Inform VideoEncoder of negotiated capabilities > > After this CL lands, an announcement will be made to > discuss-webrtc about the deprecation of one version > of InitEncode(). > > Bug: webrtc:10720 > Change-Id: Ib992af0272bbb16ae16ef7e69491f365702d179e > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140884 > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> > Reviewed-by: Erik Språng <sprang@webrtc.org> > Commit-Queue: Elad Alon <eladalon@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#28224} TBR=sakal@webrtc.org,kwiberg@webrtc.org,sprang@webrtc.org Bug: webrtc:10720 Change-Id: I46c69e45c190805c07f7e51acbe277d7eebd1600 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141412 Commit-Queue: Elad Alon <eladalon@webrtc.org> Reviewed-by: Elad Alon <eladalon@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28236}
This commit is contained in:
@ -18,6 +18,7 @@
|
||||
#include "api/test/video/function_video_decoder_factory.h"
|
||||
#include "api/test/video/function_video_encoder_factory.h"
|
||||
#include "api/video_codecs/sdp_video_format.h"
|
||||
#include "api/video_codecs/video_encoder.h"
|
||||
#include "api/video_codecs/video_encoder_factory.h"
|
||||
#include "common_video/include/video_frame_buffer.h"
|
||||
#include "media/base/media_constants.h"
|
||||
@ -43,6 +44,9 @@ namespace {
|
||||
constexpr int kDefaultWidth = 1280;
|
||||
constexpr int kDefaultHeight = 720;
|
||||
|
||||
const VideoEncoder::Capabilities kCapabilities(false);
|
||||
const VideoEncoder::Settings kSettings(kCapabilities, 1, 1200);
|
||||
|
||||
std::unique_ptr<SimulcastTestFixture> CreateSpecificSimulcastTestFixture(
|
||||
VideoEncoderFactory* internal_encoder_factory) {
|
||||
std::unique_ptr<VideoEncoderFactory> encoder_factory =
|
||||
@ -188,8 +192,7 @@ class MockVideoEncoder : public VideoEncoder {
|
||||
// warnings from -Winconsistent-missing-override. See
|
||||
// http://crbug.com/428099.
|
||||
int32_t InitEncode(const VideoCodec* codecSettings,
|
||||
int32_t numberOfCores,
|
||||
size_t maxPayloadSize) /* override */ {
|
||||
const VideoEncoder::Settings& settings) /* override */ {
|
||||
codec_ = *codecSettings;
|
||||
return init_encode_return_value_;
|
||||
}
|
||||
@ -394,7 +397,7 @@ class TestSimulcastEncoderAdapterFake : public ::testing::Test,
|
||||
&codec_, static_cast<const int*>(kTestTemporalLayerProfile),
|
||||
kVideoCodecVP8);
|
||||
rate_allocator_.reset(new SimulcastRateAllocator(codec_));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
}
|
||||
|
||||
@ -491,7 +494,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, Reinit) {
|
||||
SetupCodec();
|
||||
EXPECT_EQ(0, adapter_->Release());
|
||||
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
}
|
||||
|
||||
TEST_F(TestSimulcastEncoderAdapterFake, EncodedCallbackForDifferentEncoders) {
|
||||
@ -557,7 +560,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReusesEncodersInOrder) {
|
||||
std::vector<VideoFrameType> frame_types;
|
||||
|
||||
// Encode with three streams.
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
VerifyCodecSettings();
|
||||
adapter_->SetRates(VideoEncoder::RateControlParameters(
|
||||
rate_allocator_->GetAllocation(target_bitrate, 30), 30.0));
|
||||
@ -585,7 +588,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReusesEncodersInOrder) {
|
||||
codec_.width /= 2;
|
||||
codec_.height /= 2;
|
||||
codec_.numberOfSimulcastStreams = 2;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->SetRates(VideoEncoder::RateControlParameters(
|
||||
rate_allocator_->GetAllocation(target_bitrate, 30), 30.0));
|
||||
std::vector<MockVideoEncoder*> new_encoders = helper_->factory()->encoders();
|
||||
@ -608,7 +611,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReusesEncodersInOrder) {
|
||||
codec_.width /= 2;
|
||||
codec_.height /= 2;
|
||||
codec_.numberOfSimulcastStreams = 1;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->SetRates(VideoEncoder::RateControlParameters(
|
||||
rate_allocator_->GetAllocation(target_bitrate, 30), 30.0));
|
||||
new_encoders = helper_->factory()->encoders();
|
||||
@ -626,7 +629,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReusesEncodersInOrder) {
|
||||
codec_.width *= 4;
|
||||
codec_.height *= 4;
|
||||
codec_.numberOfSimulcastStreams = 3;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->SetRates(VideoEncoder::RateControlParameters(
|
||||
rate_allocator_->GetAllocation(target_bitrate, 30), 30.0));
|
||||
new_encoders = helper_->factory()->encoders();
|
||||
@ -680,7 +683,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReinitDoesNotReorderEncoderSettings) {
|
||||
|
||||
// Reinitialize and verify that the new codec settings are the same.
|
||||
EXPECT_EQ(0, adapter_->Release());
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
const VideoCodec& codec_before = codecs_before[i];
|
||||
const VideoCodec& codec_after = encoders[i]->codec();
|
||||
@ -735,7 +738,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReinitDoesNotReorderFrameSimulcastIdx) {
|
||||
|
||||
// Reinitialize.
|
||||
EXPECT_EQ(0, adapter_->Release());
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->SetRates(VideoEncoder::RateControlParameters(
|
||||
rate_allocator_->GetAllocation(1200, 30), 30.0));
|
||||
|
||||
@ -758,14 +761,14 @@ TEST_F(TestSimulcastEncoderAdapterFake, SupportsNativeHandleForSingleStreams) {
|
||||
&codec_, static_cast<const int*>(kTestTemporalLayerProfile),
|
||||
kVideoCodecVP8);
|
||||
codec_.numberOfSimulcastStreams = 1;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
ASSERT_EQ(1u, helper_->factory()->encoders().size());
|
||||
helper_->factory()->encoders()[0]->set_supports_native_handle(true);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_TRUE(adapter_->GetEncoderInfo().supports_native_handle);
|
||||
helper_->factory()->encoders()[0]->set_supports_native_handle(false);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_FALSE(adapter_->GetEncoderInfo().supports_native_handle);
|
||||
}
|
||||
|
||||
@ -775,7 +778,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, SetRatesUnderMinBitrate) {
|
||||
kVideoCodecVP8);
|
||||
codec_.minBitrate = 50;
|
||||
codec_.numberOfSimulcastStreams = 1;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
rate_allocator_.reset(new SimulcastRateAllocator(codec_));
|
||||
|
||||
// Above min should be respected.
|
||||
@ -811,14 +814,14 @@ TEST_F(TestSimulcastEncoderAdapterFake, SupportsImplementationName) {
|
||||
encoder_names.push_back("codec2");
|
||||
encoder_names.push_back("codec3");
|
||||
helper_->factory()->SetEncoderNames(encoder_names);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_EQ("SimulcastEncoderAdapter (codec1, codec2, codec3)",
|
||||
adapter_->GetEncoderInfo().implementation_name);
|
||||
|
||||
// Single streams should not expose "SimulcastEncoderAdapter" in name.
|
||||
EXPECT_EQ(0, adapter_->Release());
|
||||
codec_.numberOfSimulcastStreams = 1;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
ASSERT_EQ(1u, helper_->factory()->encoders().size());
|
||||
EXPECT_EQ("codec1", adapter_->GetEncoderInfo().implementation_name);
|
||||
@ -830,7 +833,7 @@ TEST_F(TestSimulcastEncoderAdapterFake,
|
||||
&codec_, static_cast<const int*>(kTestTemporalLayerProfile),
|
||||
kVideoCodecVP8);
|
||||
codec_.numberOfSimulcastStreams = 3;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
ASSERT_EQ(3u, helper_->factory()->encoders().size());
|
||||
for (MockVideoEncoder* encoder : helper_->factory()->encoders())
|
||||
@ -840,7 +843,7 @@ TEST_F(TestSimulcastEncoderAdapterFake,
|
||||
EXPECT_FALSE(adapter_->GetEncoderInfo().supports_native_handle);
|
||||
// Once all do, then the adapter claims support.
|
||||
helper_->factory()->encoders()[0]->set_supports_native_handle(true);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_TRUE(adapter_->GetEncoderInfo().supports_native_handle);
|
||||
}
|
||||
|
||||
@ -872,12 +875,12 @@ TEST_F(TestSimulcastEncoderAdapterFake,
|
||||
codec_.numberOfSimulcastStreams = 3;
|
||||
// High start bitrate, so all streams are enabled.
|
||||
codec_.startBitrate = 3000;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
ASSERT_EQ(3u, helper_->factory()->encoders().size());
|
||||
for (MockVideoEncoder* encoder : helper_->factory()->encoders())
|
||||
encoder->set_supports_native_handle(true);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_TRUE(adapter_->GetEncoderInfo().supports_native_handle);
|
||||
|
||||
rtc::scoped_refptr<VideoFrameBuffer> buffer(
|
||||
@ -901,7 +904,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, TestFailureReturnCodesFromEncodeCalls) {
|
||||
&codec_, static_cast<const int*>(kTestTemporalLayerProfile),
|
||||
kVideoCodecVP8);
|
||||
codec_.numberOfSimulcastStreams = 3;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
ASSERT_EQ(3u, helper_->factory()->encoders().size());
|
||||
// Tell the 2nd encoder to request software fallback.
|
||||
@ -931,7 +934,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, TestInitFailureCleansUpEncoders) {
|
||||
helper_->factory()->set_init_encode_return_value(
|
||||
WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE);
|
||||
EXPECT_EQ(WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE,
|
||||
adapter_->InitEncode(&codec_, 1, 1200));
|
||||
adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_TRUE(helper_->factory()->encoders().empty());
|
||||
}
|
||||
|
||||
@ -946,7 +949,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, DoesNotAlterMaxQpForScreenshare) {
|
||||
codec_.simulcastStream[0].qpMax = kHighMaxQp;
|
||||
codec_.mode = VideoCodecMode::kScreensharing;
|
||||
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_EQ(3u, helper_->factory()->encoders().size());
|
||||
|
||||
// Just check the lowest stream, which is the one that where the adapter
|
||||
@ -961,7 +964,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, DoesNotAlterMaxQpForScreenshare) {
|
||||
|
||||
// Change the max qp and try again.
|
||||
codec_.simulcastStream[0].qpMax = kLowMaxQp;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_EQ(3u, helper_->factory()->encoders().size());
|
||||
ref_codec.qpMax = kLowMaxQp;
|
||||
VerifyCodec(ref_codec, 0);
|
||||
@ -979,7 +982,7 @@ TEST_F(TestSimulcastEncoderAdapterFake,
|
||||
codec_.simulcastStream[2].qpMax = kHighMaxQp;
|
||||
codec_.mode = VideoCodecMode::kScreensharing;
|
||||
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_EQ(3u, helper_->factory()->encoders().size());
|
||||
|
||||
// Just check the lowest stream, which is the one that where the adapter
|
||||
@ -994,7 +997,7 @@ TEST_F(TestSimulcastEncoderAdapterFake,
|
||||
|
||||
// Change the max qp and try again.
|
||||
codec_.simulcastStream[2].qpMax = kLowMaxQp;
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_EQ(3u, helper_->factory()->encoders().size());
|
||||
ref_codec.qpMax = kLowMaxQp;
|
||||
VerifyCodec(ref_codec, 2);
|
||||
@ -1023,7 +1026,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ActivatesCorrectStreamsInInitEncode) {
|
||||
.build();
|
||||
|
||||
// Encode with three streams.
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
std::vector<MockVideoEncoder*> original_encoders =
|
||||
helper_->factory()->encoders();
|
||||
ASSERT_EQ(3u, original_encoders.size());
|
||||
@ -1061,7 +1064,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, TrustedRateControl) {
|
||||
.build();
|
||||
|
||||
// No encoder trusted, so simulcast adapter should not be either.
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_FALSE(adapter_->GetEncoderInfo().has_trusted_rate_controller);
|
||||
|
||||
// Encode with three streams.
|
||||
@ -1072,18 +1075,18 @@ TEST_F(TestSimulcastEncoderAdapterFake, TrustedRateControl) {
|
||||
original_encoders[0]->set_has_trusted_rate_controller(true);
|
||||
original_encoders[1]->set_has_trusted_rate_controller(true);
|
||||
original_encoders[2]->set_has_trusted_rate_controller(true);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_TRUE(adapter_->GetEncoderInfo().has_trusted_rate_controller);
|
||||
|
||||
// One encoder not trusted, so simulcast adapter should not be either.
|
||||
original_encoders[2]->set_has_trusted_rate_controller(false);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_FALSE(adapter_->GetEncoderInfo().has_trusted_rate_controller);
|
||||
|
||||
// No encoder trusted, so simulcast adapter should not be either.
|
||||
original_encoders[0]->set_has_trusted_rate_controller(false);
|
||||
original_encoders[1]->set_has_trusted_rate_controller(false);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_FALSE(adapter_->GetEncoderInfo().has_trusted_rate_controller);
|
||||
}
|
||||
|
||||
@ -1093,19 +1096,19 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReportsHardwareAccelerated) {
|
||||
kVideoCodecVP8);
|
||||
codec_.numberOfSimulcastStreams = 3;
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
ASSERT_EQ(3u, helper_->factory()->encoders().size());
|
||||
|
||||
// None of the encoders uses HW support, so simulcast adapter reports false.
|
||||
for (MockVideoEncoder* encoder : helper_->factory()->encoders()) {
|
||||
encoder->set_is_hardware_accelerated(false);
|
||||
}
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_FALSE(adapter_->GetEncoderInfo().is_hardware_accelerated);
|
||||
|
||||
// One encoder uses HW support, so simulcast adapter reports true.
|
||||
helper_->factory()->encoders()[2]->set_is_hardware_accelerated(true);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_TRUE(adapter_->GetEncoderInfo().is_hardware_accelerated);
|
||||
}
|
||||
|
||||
@ -1115,19 +1118,19 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReportsInternalSource) {
|
||||
kVideoCodecVP8);
|
||||
codec_.numberOfSimulcastStreams = 3;
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
ASSERT_EQ(3u, helper_->factory()->encoders().size());
|
||||
|
||||
// All encoders have internal source, simulcast adapter reports true.
|
||||
for (MockVideoEncoder* encoder : helper_->factory()->encoders()) {
|
||||
encoder->set_has_internal_source(true);
|
||||
}
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_TRUE(adapter_->GetEncoderInfo().has_internal_source);
|
||||
|
||||
// One encoder does not have internal source, simulcast adapter reports false.
|
||||
helper_->factory()->encoders()[2]->set_has_internal_source(false);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_FALSE(adapter_->GetEncoderInfo().has_internal_source);
|
||||
}
|
||||
|
||||
@ -1137,7 +1140,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReportsFpsAllocation) {
|
||||
kVideoCodecVP8);
|
||||
codec_.numberOfSimulcastStreams = 3;
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
ASSERT_EQ(3u, helper_->factory()->encoders().size());
|
||||
|
||||
// Combination of three different supported mode:
|
||||
@ -1155,7 +1158,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, ReportsFpsAllocation) {
|
||||
MockVideoEncoder* encoder = helper_->factory()->encoders()[i];
|
||||
encoder->set_fps_allocation(expected_fps_allocation[i]);
|
||||
}
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
EXPECT_THAT(adapter_->GetEncoderInfo().fps_allocation,
|
||||
::testing::ElementsAreArray(expected_fps_allocation));
|
||||
}
|
||||
@ -1172,7 +1175,7 @@ TEST_F(TestSimulcastEncoderAdapterFake, SetRateDistributesBandwithAllocation) {
|
||||
const DataRate bandwidth_allocation = target_bitrate + DataRate::kbps(600);
|
||||
|
||||
rate_allocator_.reset(new SimulcastRateAllocator(codec_));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
||||
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
|
||||
adapter_->RegisterEncodeCompleteCallback(this);
|
||||
|
||||
// Set bitrates so that we send all layers.
|
||||
|
||||
Reference in New Issue
Block a user