Revert "Update remaining usage of VideoDecoder::InitDecode to Configure"

This reverts commit ca0a08ab60.

Reason for revert: Breaks downstream project.

Original change's description:
> Update remaining usage of VideoDecoder::InitDecode to Configure
>
> Bug: webrtc:13045
> Change-Id: I5253fddfd613cf0228fc3cd861b91e56558dd34a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228947
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34777}

TBR=danilchap@webrtc.org,sprang@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I1868700a43b5aa4b37e9bcba5af233d24526c974
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:13045
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229024
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34780}
This commit is contained in:
Mirko Bonadei 2021-08-17 09:35:02 +00:00 committed by WebRTC LUCI CQ
parent 5bf0bb3ed2
commit d6da4c23cc
8 changed files with 32 additions and 31 deletions

View file

@ -196,12 +196,10 @@ VideoProcessor::VideoProcessor(webrtc::VideoEncoder* encoder,
for (size_t i = 0; i < num_simulcast_or_spatial_layers_; ++i) { for (size_t i = 0; i < num_simulcast_or_spatial_layers_; ++i) {
decode_callback_.push_back( decode_callback_.push_back(
std::make_unique<VideoProcessorDecodeCompleteCallback>(this, i)); std::make_unique<VideoProcessorDecodeCompleteCallback>(this, i));
VideoDecoder::Settings decoder_settings; RTC_CHECK_EQ(
decoder_settings.set_max_render_resolution( decoders_->at(i)->InitDecode(&config_.codec_settings,
{config_.codec_settings.width, config_.codec_settings.height}); static_cast<int>(config_.NumberOfCores())),
decoder_settings.set_codec_type(config_.codec_settings.codecType); WEBRTC_VIDEO_CODEC_OK);
decoder_settings.set_number_of_cores(config_.NumberOfCores());
RTC_CHECK(decoders_->at(i)->Configure(decoder_settings));
RTC_CHECK_EQ(decoders_->at(i)->RegisterDecodeCompleteCallback( RTC_CHECK_EQ(decoders_->at(i)->RegisterDecodeCompleteCallback(
decode_callback_.at(i).get()), decode_callback_.at(i).get()),
WEBRTC_VIDEO_CODEC_OK); WEBRTC_VIDEO_CODEC_OK);

View file

@ -68,10 +68,10 @@ class VideoProcessorTest : public ::testing::Test {
} }
void ExpectInit() { void ExpectInit() {
EXPECT_CALL(encoder_mock_, InitEncode(_, _)); EXPECT_CALL(encoder_mock_, InitEncode(_, _)).Times(1);
EXPECT_CALL(encoder_mock_, RegisterEncodeCompleteCallback); EXPECT_CALL(encoder_mock_, RegisterEncodeCompleteCallback(_)).Times(1);
EXPECT_CALL(*decoder_mock_, Configure); EXPECT_CALL(*decoder_mock_, InitDecode(_, _)).Times(1);
EXPECT_CALL(*decoder_mock_, RegisterDecodeCompleteCallback); EXPECT_CALL(*decoder_mock_, RegisterDecodeCompleteCallback(_)).Times(1);
} }
void ExpectRelease() { void ExpectRelease() {

View file

@ -276,10 +276,7 @@ void SimulcastTestFixtureImpl::SetUpCodec(const int* temporal_layer_profile) {
DefaultSettings(&settings_, temporal_layer_profile, codec_type_); DefaultSettings(&settings_, temporal_layer_profile, codec_type_);
SetUpRateAllocator(); SetUpRateAllocator();
EXPECT_EQ(0, encoder_->InitEncode(&settings_, kSettings)); EXPECT_EQ(0, encoder_->InitEncode(&settings_, kSettings));
VideoDecoder::Settings decoder_settings; EXPECT_EQ(0, decoder_->InitDecode(&settings_, 1));
decoder_settings.set_max_render_resolution({kDefaultWidth, kDefaultHeight});
decoder_settings.set_codec_type(codec_type_);
EXPECT_TRUE(decoder_->Configure(decoder_settings));
input_buffer_ = I420Buffer::Create(kDefaultWidth, kDefaultHeight); input_buffer_ = I420Buffer::Create(kDefaultWidth, kDefaultHeight);
input_buffer_->InitializeData(); input_buffer_->InitializeData();
input_frame_ = std::make_unique<webrtc::VideoFrame>( input_frame_ = std::make_unique<webrtc::VideoFrame>(

View file

@ -38,17 +38,19 @@ IvfVideoFrameGenerator::IvfVideoFrameGenerator(const std::string& file_name)
width_(file_reader_->GetFrameWidth()), width_(file_reader_->GetFrameWidth()),
height_(file_reader_->GetFrameHeight()) { height_(file_reader_->GetFrameHeight()) {
RTC_CHECK(video_decoder_) << "No decoder found for file's video codec type"; RTC_CHECK(video_decoder_) << "No decoder found for file's video codec type";
VideoDecoder::Settings decoder_settings; VideoCodec codec_settings;
decoder_settings.set_codec_type(file_reader_->GetVideoCodecType()); codec_settings.codecType = file_reader_->GetVideoCodecType();
decoder_settings.set_max_render_resolution( codec_settings.width = file_reader_->GetFrameWidth();
{file_reader_->GetFrameWidth(), file_reader_->GetFrameHeight()}); codec_settings.height = file_reader_->GetFrameHeight();
// Set buffer pool size to max value to ensure that if users of generator, // Set buffer pool size to max value to ensure that if users of generator,
// ex. test frameworks, will retain frames for quite a long time, decoder // ex. test frameworks, will retain frames for quite a long time, decoder
// won't crash with buffers pool overflow error. // won't crash with buffers pool overflow error.
decoder_settings.set_buffer_pool_size(std::numeric_limits<int>::max()); codec_settings.buffer_pool_size = std::numeric_limits<int>::max();
RTC_CHECK_EQ(video_decoder_->RegisterDecodeCompleteCallback(&callback_), RTC_CHECK_EQ(video_decoder_->RegisterDecodeCompleteCallback(&callback_),
WEBRTC_VIDEO_CODEC_OK); WEBRTC_VIDEO_CODEC_OK);
RTC_CHECK(video_decoder_->Configure(decoder_settings)); RTC_CHECK_EQ(
video_decoder_->InitDecode(&codec_settings, /*number_of_cores=*/1),
WEBRTC_VIDEO_CODEC_OK);
} }
IvfVideoFrameGenerator::~IvfVideoFrameGenerator() { IvfVideoFrameGenerator::~IvfVideoFrameGenerator() {
MutexLock lock(&lock_); MutexLock lock(&lock_);

View file

@ -24,7 +24,8 @@ class FrameDumpingDecoder : public VideoDecoder {
FrameDumpingDecoder(std::unique_ptr<VideoDecoder> decoder, FileWrapper file); FrameDumpingDecoder(std::unique_ptr<VideoDecoder> decoder, FileWrapper file);
~FrameDumpingDecoder() override; ~FrameDumpingDecoder() override;
bool Configure(const Settings& settings) override; int32_t InitDecode(const VideoCodec* codec_settings,
int32_t number_of_cores) override;
int32_t Decode(const EncodedImage& input_image, int32_t Decode(const EncodedImage& input_image,
bool missing_frames, bool missing_frames,
int64_t render_time_ms) override; int64_t render_time_ms) override;
@ -48,9 +49,10 @@ FrameDumpingDecoder::FrameDumpingDecoder(std::unique_ptr<VideoDecoder> decoder,
FrameDumpingDecoder::~FrameDumpingDecoder() = default; FrameDumpingDecoder::~FrameDumpingDecoder() = default;
bool FrameDumpingDecoder::Configure(const Settings& settings) { int32_t FrameDumpingDecoder::InitDecode(const VideoCodec* codec_settings,
codec_type_ = settings.codec_type(); int32_t number_of_cores) {
return decoder_->Configure(settings); codec_type_ = codec_settings->codecType;
return decoder_->InitDecode(codec_settings, number_of_cores);
} }
int32_t FrameDumpingDecoder::Decode(const EncodedImage& input_image, int32_t FrameDumpingDecoder::Decode(const EncodedImage& input_image,

View file

@ -115,9 +115,10 @@ class WebRtcRecordableEncodedFrame : public RecordableEncodedFrame {
// but logs messages to LS_ERROR. // but logs messages to LS_ERROR.
class NullVideoDecoder : public webrtc::VideoDecoder { class NullVideoDecoder : public webrtc::VideoDecoder {
public: public:
bool Configure(const Settings& settings) override { int32_t InitDecode(const webrtc::VideoCodec* codec_settings,
int32_t number_of_cores) override {
RTC_LOG(LS_ERROR) << "Can't initialize NullVideoDecoder."; RTC_LOG(LS_ERROR) << "Can't initialize NullVideoDecoder.";
return true; return WEBRTC_VIDEO_CODEC_OK;
} }
int32_t Decode(const webrtc::EncodedImage& input_image, int32_t Decode(const webrtc::EncodedImage& input_image,

View file

@ -130,9 +130,10 @@ RenderResolution InitialDecoderResolution() {
// but logs messages to LS_ERROR. // but logs messages to LS_ERROR.
class NullVideoDecoder : public webrtc::VideoDecoder { class NullVideoDecoder : public webrtc::VideoDecoder {
public: public:
bool Configure(const Settings& settings) override { int32_t InitDecode(const webrtc::VideoCodec* codec_settings,
int32_t number_of_cores) override {
RTC_LOG(LS_ERROR) << "Can't initialize NullVideoDecoder."; RTC_LOG(LS_ERROR) << "Can't initialize NullVideoDecoder.";
return true; return WEBRTC_VIDEO_CODEC_OK;
} }
int32_t Decode(const webrtc::EncodedImage& input_image, int32_t Decode(const webrtc::EncodedImage& input_image,

View file

@ -102,9 +102,9 @@ VideoDecoder* VideoStreamDecoderImpl::GetDecoder(int payload_type) {
return nullptr; return nullptr;
} }
VideoDecoder::Settings settings; int num_cores = decoder_settings_it->second.second;
settings.set_number_of_cores(decoder_settings_it->second.second); int32_t init_result = decoder->InitDecode(nullptr, num_cores);
if (!decoder->Configure(settings)) { if (init_result != WEBRTC_VIDEO_CODEC_OK) {
RTC_LOG(LS_WARNING) << "Failed to initialize decoder for payload type " RTC_LOG(LS_WARNING) << "Failed to initialize decoder for payload type "
<< payload_type << "."; << payload_type << ".";
return nullptr; return nullptr;