Add ability to specify if rate controller of video encoder is trusted.
If rate controller is trusted, we disable the frame dropper in the media optimization module. Bug: webrtc:9722 Change-Id: I821f21fd74a400ee9d5aa3f6b42d4e569033acbe Reviewed-on: https://webrtc-review.googlesource.com/c/105020 Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25107}
This commit is contained in:
@ -93,6 +93,7 @@ class VideoEncoderSoftwareFallbackWrapper final : public VideoEncoder {
|
||||
bool SupportsNativeHandle() const override;
|
||||
ScalingSettings GetScalingSettings() const override;
|
||||
const char* ImplementationName() const override;
|
||||
bool HasTrustedRateController() const override;
|
||||
|
||||
private:
|
||||
bool InitFallbackEncoder();
|
||||
@ -142,6 +143,8 @@ class VideoEncoderSoftwareFallbackWrapper final : public VideoEncoder {
|
||||
|
||||
bool forced_fallback_possible_;
|
||||
ForcedFallbackParams forced_fallback_;
|
||||
|
||||
const bool trust_rate_controller_;
|
||||
};
|
||||
|
||||
VideoEncoderSoftwareFallbackWrapper::VideoEncoderSoftwareFallbackWrapper(
|
||||
@ -158,7 +161,11 @@ VideoEncoderSoftwareFallbackWrapper::VideoEncoderSoftwareFallbackWrapper(
|
||||
encoder_(std::move(hw_encoder)),
|
||||
fallback_encoder_(std::move(sw_encoder)),
|
||||
callback_(nullptr),
|
||||
forced_fallback_possible_(EnableForcedFallback()) {
|
||||
forced_fallback_possible_(EnableForcedFallback()),
|
||||
trust_rate_controller_(
|
||||
(encoder_ ? encoder_->HasTrustedRateController() : true) &&
|
||||
(fallback_encoder_ ? fallback_encoder_->HasTrustedRateController()
|
||||
: true)) {
|
||||
if (forced_fallback_possible_) {
|
||||
GetForcedFallbackParamsFromFieldTrialGroup(
|
||||
&forced_fallback_.min_pixels_, &forced_fallback_.max_pixels_,
|
||||
@ -319,6 +326,10 @@ const char* VideoEncoderSoftwareFallbackWrapper::ImplementationName() const {
|
||||
: encoder_->ImplementationName();
|
||||
}
|
||||
|
||||
bool VideoEncoderSoftwareFallbackWrapper::HasTrustedRateController() const {
|
||||
return trust_rate_controller_;
|
||||
}
|
||||
|
||||
bool VideoEncoderSoftwareFallbackWrapper::IsForcedFallbackActive() const {
|
||||
return (forced_fallback_possible_ && use_fallback_encoder_ &&
|
||||
forced_fallback_.active_);
|
||||
|
||||
Reference in New Issue
Block a user