Migrate test VideoDecoders to new VideoDecoder::Configure
Bug: webrtc:13045
Change-Id: I3b66270de59b441bf8b92bc10f67f59f05e9995e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228436
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34742}
diff --git a/media/engine/fake_webrtc_video_engine.cc b/media/engine/fake_webrtc_video_engine.cc
index c1fc2e6..35b6315 100644
--- a/media/engine/fake_webrtc_video_engine.cc
+++ b/media/engine/fake_webrtc_video_engine.cc
@@ -51,8 +51,8 @@
}
}
-int32_t FakeWebRtcVideoDecoder::InitDecode(const webrtc::VideoCodec*, int32_t) {
- return WEBRTC_VIDEO_CODEC_OK;
+bool FakeWebRtcVideoDecoder::Configure(const Settings& settings) {
+ return true;
}
int32_t FakeWebRtcVideoDecoder::Decode(const webrtc::EncodedImage&,
diff --git a/media/engine/fake_webrtc_video_engine.h b/media/engine/fake_webrtc_video_engine.h
index 9adb5a4..831e616 100644
--- a/media/engine/fake_webrtc_video_engine.h
+++ b/media/engine/fake_webrtc_video_engine.h
@@ -44,7 +44,7 @@
explicit FakeWebRtcVideoDecoder(FakeWebRtcVideoDecoderFactory* factory);
~FakeWebRtcVideoDecoder();
- int32_t InitDecode(const webrtc::VideoCodec*, int32_t) override;
+ bool Configure(const Settings& settings) override;
int32_t Decode(const webrtc::EncodedImage&, bool, int64_t) override;
int32_t RegisterDecodeCompleteCallback(
webrtc::DecodedImageCallback*) override;
diff --git a/test/fake_decoder.cc b/test/fake_decoder.cc
index f164bfb..46765d5 100644
--- a/test/fake_decoder.cc
+++ b/test/fake_decoder.cc
@@ -36,9 +36,8 @@
task_queue_factory_(task_queue_factory),
decode_delay_ms_(0) {}
-int32_t FakeDecoder::InitDecode(const VideoCodec* config,
- int32_t number_of_cores) {
- return WEBRTC_VIDEO_CODEC_OK;
+bool FakeDecoder::Configure(const Settings& settings) {
+ return true;
}
int32_t FakeDecoder::Decode(const EncodedImage& input,
diff --git a/test/fake_decoder.h b/test/fake_decoder.h
index 6a5d6cb..3345470 100644
--- a/test/fake_decoder.h
+++ b/test/fake_decoder.h
@@ -15,7 +15,6 @@
#include "api/task_queue/task_queue_factory.h"
#include "api/video/encoded_image.h"
-#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_decoder.h"
#include "modules/video_coding/include/video_codec_interface.h"
#include "rtc_base/task_queue.h"
@@ -31,8 +30,7 @@
explicit FakeDecoder(TaskQueueFactory* task_queue_factory);
virtual ~FakeDecoder() {}
- int32_t InitDecode(const VideoCodec* config,
- int32_t number_of_cores) override;
+ bool Configure(const Settings& settings) override;
int32_t Decode(const EncodedImage& input,
bool missing_frames,
diff --git a/test/fake_vp8_decoder.cc b/test/fake_vp8_decoder.cc
index ec636dc..4c2f55a 100644
--- a/test/fake_vp8_decoder.cc
+++ b/test/fake_vp8_decoder.cc
@@ -39,9 +39,8 @@
FakeVp8Decoder::FakeVp8Decoder() : callback_(nullptr), width_(0), height_(0) {}
-int32_t FakeVp8Decoder::InitDecode(const VideoCodec* config,
- int32_t number_of_cores) {
- return WEBRTC_VIDEO_CODEC_OK;
+bool FakeVp8Decoder::Configure(const Settings& settings) {
+ return true;
}
int32_t FakeVp8Decoder::Decode(const EncodedImage& input,
diff --git a/test/fake_vp8_decoder.h b/test/fake_vp8_decoder.h
index 2e469a1..391ee37 100644
--- a/test/fake_vp8_decoder.h
+++ b/test/fake_vp8_decoder.h
@@ -14,7 +14,6 @@
#include <stdint.h>
#include "api/video/encoded_image.h"
-#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_decoder.h"
#include "modules/video_coding/include/video_codec_interface.h"
@@ -26,8 +25,7 @@
FakeVp8Decoder();
~FakeVp8Decoder() override {}
- int32_t InitDecode(const VideoCodec* config,
- int32_t number_of_cores) override;
+ bool Configure(const Settings& settings) override;
int32_t Decode(const EncodedImage& input,
bool missing_frames,
diff --git a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc
index 9fb7116..deb980a 100644
--- a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc
+++ b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc
@@ -40,16 +40,13 @@
}
QualityAnalyzingVideoDecoder::~QualityAnalyzingVideoDecoder() = default;
-int32_t QualityAnalyzingVideoDecoder::InitDecode(
- const VideoCodec* codec_settings,
- int32_t number_of_cores) {
+bool QualityAnalyzingVideoDecoder::Configure(const Settings& settings) {
{
MutexLock lock(&mutex_);
- codec_name_ =
- std::string(CodecTypeToPayloadString(codec_settings->codecType)) + "_" +
- delegate_->GetDecoderInfo().implementation_name;
+ codec_name_ = std::string(CodecTypeToPayloadString(settings.codec_type())) +
+ "_" + delegate_->GetDecoderInfo().implementation_name;
}
- return delegate_->InitDecode(codec_settings, number_of_cores);
+ return delegate_->Configure(settings);
}
int32_t QualityAnalyzingVideoDecoder::Decode(const EncodedImage& input_image,
diff --git a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h
index 9177b96..63d7c14 100644
--- a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h
+++ b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h
@@ -56,8 +56,7 @@
~QualityAnalyzingVideoDecoder() override;
// Methods of VideoDecoder interface.
- int32_t InitDecode(const VideoCodec* codec_settings,
- int32_t number_of_cores) override;
+ bool Configure(const Settings& settings) override;
int32_t Decode(const EncodedImage& input_image,
bool missing_frames,
int64_t render_time_ms) override;
diff --git a/test/video_decoder_proxy_factory.h b/test/video_decoder_proxy_factory.h
index 303d209..f294f62 100644
--- a/test/video_decoder_proxy_factory.h
+++ b/test/video_decoder_proxy_factory.h
@@ -52,9 +52,8 @@
int64_t render_time_ms) override {
return decoder_->Decode(input_image, missing_frames, render_time_ms);
}
- int32_t InitDecode(const VideoCodec* config,
- int32_t number_of_cores) override {
- return decoder_->InitDecode(config, number_of_cores);
+ bool Configure(const Settings& settings) override {
+ return decoder_->Configure(settings);
}
int32_t RegisterDecodeCompleteCallback(
DecodedImageCallback* callback) override {
diff --git a/video/video_receive_stream2_unittest.cc b/video/video_receive_stream2_unittest.cc
index cc282d8..8004bc3 100644
--- a/video/video_receive_stream2_unittest.cc
+++ b/video/video_receive_stream2_unittest.cc
@@ -54,6 +54,7 @@
using ::testing::IsEmpty;
using ::testing::Property;
using ::testing::SizeIs;
+using ::testing::WithoutArgs;
constexpr int kDefaultTimeOutMs = 50;
@@ -137,13 +138,11 @@
rtppacket.SetPayloadType(99);
rtppacket.SetSequenceNumber(1);
rtppacket.SetTimestamp(0);
- rtc::Event init_decode_event_;
- EXPECT_CALL(mock_h264_video_decoder_, InitDecode(_, _))
- .WillOnce(Invoke([&init_decode_event_](const VideoCodec* config,
- int32_t number_of_cores) {
- init_decode_event_.Set();
- return 0;
- }));
+ rtc::Event init_decode_event;
+ EXPECT_CALL(mock_h264_video_decoder_, Configure).WillOnce(WithoutArgs([&] {
+ init_decode_event.Set();
+ return true;
+ }));
EXPECT_CALL(mock_h264_video_decoder_, RegisterDecodeCompleteCallback(_));
video_receive_stream_->Start();
EXPECT_CALL(mock_h264_video_decoder_, Decode(_, false, _));
@@ -152,7 +151,7 @@
rtp_stream_receiver_controller_.OnRtpPacket(parsed_packet);
EXPECT_CALL(mock_h264_video_decoder_, Release());
// Make sure the decoder thread had a chance to run.
- init_decode_event_.Wait(kDefaultTimeOutMs);
+ init_decode_event.Wait(kDefaultTimeOutMs);
}
TEST_F(VideoReceiveStream2Test, PlayoutDelay) {
@@ -766,13 +765,11 @@
&mock_h264_video_decoder_);
return h264_decoder_factory.CreateVideoDecoder(format);
}));
- rtc::Event init_decode_event_;
- EXPECT_CALL(mock_h264_video_decoder_, InitDecode(_, _))
- .WillOnce(Invoke([&init_decode_event_](const VideoCodec* config,
- int32_t number_of_cores) {
- init_decode_event_.Set();
- return 0;
- }));
+ rtc::Event init_decode_event;
+ EXPECT_CALL(mock_h264_video_decoder_, Configure).WillOnce(WithoutArgs([&] {
+ init_decode_event.Set();
+ return true;
+ }));
EXPECT_CALL(mock_h264_video_decoder_, RegisterDecodeCompleteCallback(_));
EXPECT_CALL(mock_h264_video_decoder_, Decode(_, false, _));
RtpPacketReceived parsed_packet;
@@ -781,7 +778,7 @@
EXPECT_CALL(mock_h264_video_decoder_, Release());
// Make sure the decoder thread had a chance to run.
- init_decode_event_.Wait(kDefaultTimeOutMs);
+ init_decode_event.Wait(kDefaultTimeOutMs);
}
TEST_F(VideoReceiveStream2TestWithLazyDecoderCreation,
diff --git a/video/video_receive_stream_unittest.cc b/video/video_receive_stream_unittest.cc
index f3099d8..87208c7 100644
--- a/video/video_receive_stream_unittest.cc
+++ b/video/video_receive_stream_unittest.cc
@@ -45,6 +45,7 @@
using ::testing::Invoke;
using ::testing::IsEmpty;
using ::testing::SizeIs;
+using ::testing::WithoutArgs;
constexpr int kDefaultTimeOutMs = 50;
@@ -120,13 +121,11 @@
rtppacket.SetPayloadType(99);
rtppacket.SetSequenceNumber(1);
rtppacket.SetTimestamp(0);
- rtc::Event init_decode_event_;
- EXPECT_CALL(mock_h264_video_decoder_, InitDecode(_, _))
- .WillOnce(Invoke([&init_decode_event_](const VideoCodec* config,
- int32_t number_of_cores) {
- init_decode_event_.Set();
- return 0;
- }));
+ rtc::Event init_decode_event;
+ EXPECT_CALL(mock_h264_video_decoder_, Configure).WillOnce(WithoutArgs([&] {
+ init_decode_event.Set();
+ return true;
+ }));
EXPECT_CALL(mock_h264_video_decoder_, RegisterDecodeCompleteCallback(_));
video_receive_stream_->Start();
EXPECT_CALL(mock_h264_video_decoder_, Decode(_, false, _));
@@ -135,7 +134,7 @@
rtp_stream_receiver_controller_.OnRtpPacket(parsed_packet);
EXPECT_CALL(mock_h264_video_decoder_, Release());
// Make sure the decoder thread had a chance to run.
- init_decode_event_.Wait(kDefaultTimeOutMs);
+ init_decode_event.Wait(kDefaultTimeOutMs);
}
TEST_F(VideoReceiveStreamTest, PlayoutDelay) {
diff --git a/video/video_stream_decoder_impl_unittest.cc b/video/video_stream_decoder_impl_unittest.cc
index a3e2589..f3fe3ac 100644
--- a/video/video_stream_decoder_impl_unittest.cc
+++ b/video/video_stream_decoder_impl_unittest.cc
@@ -13,6 +13,7 @@
#include <vector>
#include "api/video/i420_buffer.h"
+#include "api/video_codecs/video_decoder.h"
#include "test/gmock.h"
#include "test/gtest.h"
#include "test/time_controller/simulated_time_controller.h"
@@ -39,10 +40,9 @@
class StubVideoDecoder : public VideoDecoder {
public:
- MOCK_METHOD(int32_t,
- InitDecode,
- (const VideoCodec*, int32_t number_of_cores),
- (override));
+ StubVideoDecoder() { ON_CALL(*this, Configure).WillByDefault(Return(true)); }
+
+ MOCK_METHOD(bool, Configure, (const Settings&), (override));
int32_t Decode(const EncodedImage& input_image,
bool missing_frames,
@@ -81,9 +81,8 @@
public:
explicit WrappedVideoDecoder(StubVideoDecoder* decoder) : decoder_(decoder) {}
- int32_t InitDecode(const VideoCodec* codec_settings,
- int32_t number_of_cores) override {
- return decoder_->InitDecode(codec_settings, number_of_cores);
+ bool Configure(const Settings& settings) override {
+ return decoder_->Configure(settings);
}
int32_t Decode(const EncodedImage& input_image,
bool missing_frames,
@@ -203,8 +202,8 @@
TEST_F(VideoStreamDecoderImplTest, FailToInitDecoder) {
video_stream_decoder_.OnFrame(FrameBuilder().WithPayloadType(1).Build());
- ON_CALL(decoder_factory_.Vp8Decoder(), InitDecode)
- .WillByDefault(Return(WEBRTC_VIDEO_CODEC_ERROR));
+ ON_CALL(decoder_factory_.Vp8Decoder(), Configure)
+ .WillByDefault(Return(false));
EXPECT_CALL(callbacks_, OnNonDecodableState);
time_controller_.AdvanceTime(TimeDelta::Millis(1));
}