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.
This is a re-land of
https://webrtc-review.googlesource.com/c/src/+/105020
Bug: webrtc:9890
Change-Id: I418e47a43a1a98cb2fd5295c03360b954f2288f2
Reviewed-on: https://webrtc-review.googlesource.com/c/109141
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25570}
diff --git a/media/engine/simulcast_encoder_adapter.cc b/media/engine/simulcast_encoder_adapter.cc
index e4d0b0b..6241ff9 100644
--- a/media/engine/simulcast_encoder_adapter.cc
+++ b/media/engine/simulcast_encoder_adapter.cc
@@ -249,6 +249,7 @@
Release();
return ret;
}
+
std::unique_ptr<EncodedImageCallback> callback(
new AdapterEncodedImageCallback(this, i));
encoder->RegisterEncodeCompleteCallback(callback.get());
@@ -275,6 +276,8 @@
encoder_info_.supports_native_handle =
encoder_impl_info.supports_native_handle;
+ encoder_info_.has_trusted_rate_controller =
+ encoder_impl_info.has_trusted_rate_controller;
} else {
encoder_info_.implementation_name += ", ";
encoder_info_.implementation_name +=
@@ -283,6 +286,10 @@
// Native handle supported only if all encoders supports it.
encoder_info_.supports_native_handle &=
encoder_impl_info.supports_native_handle;
+
+ // Trusted rate controller only if all encoders have it.
+ encoder_info_.has_trusted_rate_controller &=
+ encoder_impl_info.has_trusted_rate_controller;
}
}
}