From be2fb41b325558e4fd8b12e85c583dab6985ee22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Tue, 17 May 2022 15:39:41 +0200 Subject: [PATCH] Delete codec-specific frameDroppingOn settings. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Followup to https://webrtc-review.googlesource.com/c/src/+/262244 Bug: webrtc:6883 Change-Id: Iefac43709f14424c74470aa878ec512b7dacc68a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262258 Commit-Queue: Niels Moller Reviewed-by: Erik Språng Cr-Commit-Position: refs/heads/main@{#36949} --- ...oder_software_fallback_wrapper_unittest.cc | 2 +- api/video_codecs/video_codec.cc | 19 ++----------------- api/video_codecs/video_codec.h | 7 +------ api/video_codecs/video_encoder.cc | 3 --- .../codecs/vp8/test/vp8_impl_unittest.cc | 2 ++ 5 files changed, 6 insertions(+), 27 deletions(-) diff --git a/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc b/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc index 0e64a1031b..b213356e7b 100644 --- a/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc +++ b/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc @@ -508,7 +508,7 @@ class ForcedFallbackTest : public VideoEncoderSoftwareFallbackWrapperTestBase { codec_.height = kHeight; codec_.VP8()->numberOfTemporalLayers = 1; codec_.VP8()->automaticResizeOn = true; - codec_.VP8()->frameDroppingOn = true; + codec_.SetFrameDropEnabled(true); rate_allocator_.reset(new SimulcastRateAllocator(codec_)); } diff --git a/api/video_codecs/video_codec.cc b/api/video_codecs/video_codec.cc index b4bc5b73fc..c6122d3f6a 100644 --- a/api/video_codecs/video_codec.cc +++ b/api/video_codecs/video_codec.cc @@ -34,14 +34,12 @@ bool VideoCodecVP8::operator==(const VideoCodecVP8& other) const { return (numberOfTemporalLayers == other.numberOfTemporalLayers && denoisingOn == other.denoisingOn && automaticResizeOn == other.automaticResizeOn && - frameDroppingOn == other.frameDroppingOn && keyFrameInterval == other.keyFrameInterval); } bool VideoCodecVP9::operator==(const VideoCodecVP9& other) const { return (numberOfTemporalLayers == other.numberOfTemporalLayers && denoisingOn == other.denoisingOn && - frameDroppingOn == other.frameDroppingOn && keyFrameInterval == other.keyFrameInterval && adaptiveQpMode == other.adaptiveQpMode && automaticResizeOn == other.automaticResizeOn && @@ -50,8 +48,7 @@ bool VideoCodecVP9::operator==(const VideoCodecVP9& other) const { } bool VideoCodecH264::operator==(const VideoCodecH264& other) const { - return (frameDroppingOn == other.frameDroppingOn && - keyFrameInterval == other.keyFrameInterval && + return (keyFrameInterval == other.keyFrameInterval && numberOfTemporalLayers == other.numberOfTemporalLayers); } @@ -148,19 +145,7 @@ void VideoCodec::SetVideoEncoderComplexity( } bool VideoCodec::GetFrameDropEnabled() const { - if (frame_drop_enabled_.has_value()) { - return *frame_drop_enabled_; - } - switch (codecType) { - default: - return false; - case kVideoCodecVP8: - return VP8().frameDroppingOn; - case kVideoCodecVP9: - return VP9().frameDroppingOn; - case kVideoCodecH264: - return H264().frameDroppingOn; - } + return frame_drop_enabled_; } void VideoCodec::SetFrameDropEnabled(bool enabled) { diff --git a/api/video_codecs/video_codec.h b/api/video_codecs/video_codec.h index f92298ba2d..068b09d27a 100644 --- a/api/video_codecs/video_codec.h +++ b/api/video_codecs/video_codec.h @@ -47,7 +47,6 @@ struct VideoCodecVP8 { unsigned char numberOfTemporalLayers; bool denoisingOn; bool automaticResizeOn; - bool frameDroppingOn; int keyFrameInterval; }; @@ -65,7 +64,6 @@ struct VideoCodecVP9 { } unsigned char numberOfTemporalLayers; bool denoisingOn; - bool frameDroppingOn; int keyFrameInterval; bool adaptiveQpMode; bool automaticResizeOn; @@ -80,7 +78,6 @@ struct VideoCodecH264 { bool operator!=(const VideoCodecH264& other) const { return !(*this == other); } - bool frameDroppingOn; int keyFrameInterval; uint8_t numberOfTemporalLayers; }; @@ -181,9 +178,7 @@ class RTC_EXPORT VideoCodec { // 'complexity_' indicates the CPU capability of the client. It's used to // determine encoder CPU complexity (e.g., cpu_used for VP8, VP9. and AV1). VideoCodecComplexity complexity_; - // TODO(bugs.webrtc.org/6883): When unset, GetEnableFrameDrop checks the - // codec-specific settings. - absl::optional frame_drop_enabled_; + bool frame_drop_enabled_ = false; }; } // namespace webrtc diff --git a/api/video_codecs/video_encoder.cc b/api/video_codecs/video_encoder.cc index 83c329152e..b85b9328cf 100644 --- a/api/video_codecs/video_encoder.cc +++ b/api/video_codecs/video_encoder.cc @@ -26,7 +26,6 @@ VideoCodecVP8 VideoEncoder::GetDefaultVp8Settings() { vp8_settings.numberOfTemporalLayers = 1; vp8_settings.denoisingOn = true; vp8_settings.automaticResizeOn = false; - vp8_settings.frameDroppingOn = true; vp8_settings.keyFrameInterval = 3000; return vp8_settings; @@ -38,7 +37,6 @@ VideoCodecVP9 VideoEncoder::GetDefaultVp9Settings() { vp9_settings.numberOfTemporalLayers = 1; vp9_settings.denoisingOn = true; - vp9_settings.frameDroppingOn = true; vp9_settings.keyFrameInterval = 3000; vp9_settings.adaptiveQpMode = true; vp9_settings.automaticResizeOn = true; @@ -53,7 +51,6 @@ VideoCodecH264 VideoEncoder::GetDefaultH264Settings() { VideoCodecH264 h264_settings; memset(&h264_settings, 0, sizeof(h264_settings)); - h264_settings.frameDroppingOn = true; h264_settings.keyFrameInterval = 3000; h264_settings.numberOfTemporalLayers = 1; diff --git a/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc b/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc index afc51bf8ba..d595575ab4 100644 --- a/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc +++ b/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc @@ -165,6 +165,7 @@ TEST_F(TestVp8Impl, } TEST_F(TestVp8Impl, SetRates) { + codec_settings_.SetFrameDropEnabled(true); auto* const vpx = new NiceMock(); LibvpxVp8Encoder encoder((std::unique_ptr(vpx)), VP8Encoder::Settings()); @@ -416,6 +417,7 @@ TEST_F(TestVp8Impl, ScalingDisabledIfAutomaticResizeOff) { } TEST_F(TestVp8Impl, ScalingEnabledIfAutomaticResizeOn) { + codec_settings_.SetFrameDropEnabled(true); codec_settings_.VP8()->automaticResizeOn = true; EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, encoder_->InitEncode(&codec_settings_, kSettings));