From bd86684bf3c462e99a282e9fd29a17b227ed2840 Mon Sep 17 00:00:00 2001 From: Wan-Teh Chang Date: Tue, 14 Feb 2023 15:26:40 -0800 Subject: [PATCH] Make VideoEncoder::GetEncoderInfo() pure virtual MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:9722 Change-Id: I831a9c460425be86e5da2761769b8eecf231462f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/293386 Reviewed-by: Danil Chapovalov Reviewed-by: Erik Språng Commit-Queue: Wan-Teh Chang Cr-Commit-Position: refs/heads/main@{#39319} --- api/video_codecs/video_encoder.cc | 5 ----- api/video_codecs/video_encoder.h | 2 +- test/configurable_frame_size_encoder.cc | 4 ++++ test/configurable_frame_size_encoder.h | 2 ++ video/video_send_stream_tests.cc | 2 ++ 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/api/video_codecs/video_encoder.cc b/api/video_codecs/video_encoder.cc index b85b9328cf..e4b44aedb3 100644 --- a/api/video_codecs/video_encoder.cc +++ b/api/video_codecs/video_encoder.cc @@ -329,9 +329,4 @@ void VideoEncoder::OnRttUpdate(int64_t rtt_ms) {} void VideoEncoder::OnLossNotification( const LossNotification& loss_notification) {} -// TODO(webrtc:9722): Remove and make pure virtual. -VideoEncoder::EncoderInfo VideoEncoder::GetEncoderInfo() const { - return EncoderInfo(); -} - } // namespace webrtc diff --git a/api/video_codecs/video_encoder.h b/api/video_codecs/video_encoder.h index 36dc5225c6..9d54256b6b 100644 --- a/api/video_codecs/video_encoder.h +++ b/api/video_codecs/video_encoder.h @@ -420,7 +420,7 @@ class RTC_EXPORT VideoEncoder { // The output of this method may change during runtime. For instance if a // hardware encoder fails, it may fall back to doing software encoding using // an implementation with different characteristics. - virtual EncoderInfo GetEncoderInfo() const; + virtual EncoderInfo GetEncoderInfo() const = 0; }; } // namespace webrtc #endif // API_VIDEO_CODECS_VIDEO_ENCODER_H_ diff --git a/test/configurable_frame_size_encoder.cc b/test/configurable_frame_size_encoder.cc index e3965ef770..44a00bcacc 100644 --- a/test/configurable_frame_size_encoder.cc +++ b/test/configurable_frame_size_encoder.cc @@ -77,6 +77,10 @@ int32_t ConfigurableFrameSizeEncoder::Release() { void ConfigurableFrameSizeEncoder::SetRates( const RateControlParameters& parameters) {} +VideoEncoder::EncoderInfo ConfigurableFrameSizeEncoder::GetEncoderInfo() const { + return EncoderInfo(); +} + int32_t ConfigurableFrameSizeEncoder::SetFrameSize(size_t size) { current_frame_size_ = size; return WEBRTC_VIDEO_CODEC_OK; diff --git a/test/configurable_frame_size_encoder.h b/test/configurable_frame_size_encoder.h index 8dd5157b5b..747fc09d4b 100644 --- a/test/configurable_frame_size_encoder.h +++ b/test/configurable_frame_size_encoder.h @@ -49,6 +49,8 @@ class ConfigurableFrameSizeEncoder : public VideoEncoder { void SetRates(const RateControlParameters& parameters) override; + EncoderInfo GetEncoderInfo() const override; + int32_t SetFrameSize(size_t size); void SetCodecType(VideoCodecType codec_type_); diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc index 1859fe8cec..4e1fefef10 100644 --- a/video/video_send_stream_tests.cc +++ b/video/video_send_stream_tests.cc @@ -2280,6 +2280,8 @@ TEST_F(VideoSendStreamTest, EncoderIsProperlyInitializedAndDestroyed) { EXPECT_TRUE(IsReadyForEncode()); } + EncoderInfo GetEncoderInfo() const override { return EncoderInfo(); } + void OnVideoStreamsCreated(VideoSendStream* send_stream, const std::vector& receive_streams) override {