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:
@ -53,7 +53,8 @@ MultiplexEncoderAdapter::MultiplexEncoderAdapter(
|
||||
: factory_(factory),
|
||||
associated_format_(associated_format),
|
||||
encoded_complete_callback_(nullptr),
|
||||
supports_augmented_data_(supports_augmented_data) {}
|
||||
supports_augmented_data_(supports_augmented_data),
|
||||
has_trusted_rate_controllers_(false) {}
|
||||
|
||||
MultiplexEncoderAdapter::~MultiplexEncoderAdapter() {
|
||||
Release();
|
||||
@ -92,6 +93,7 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst,
|
||||
break;
|
||||
}
|
||||
|
||||
has_trusted_rate_controllers_ = true;
|
||||
for (size_t i = 0; i < kAlphaCodecStreams; ++i) {
|
||||
std::unique_ptr<VideoEncoder> encoder =
|
||||
factory_->CreateVideoEncoder(associated_format_);
|
||||
@ -101,6 +103,7 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst,
|
||||
RTC_LOG(LS_ERROR) << "Failed to create multiplex codec index " << i;
|
||||
return rv;
|
||||
}
|
||||
has_trusted_rate_controllers_ &= encoder->HasTrustedRateController();
|
||||
adapter_callbacks_.emplace_back(new AdapterEncodedImageCallback(
|
||||
this, static_cast<AlphaCodecStream>(i)));
|
||||
encoder->RegisterEncodeCompleteCallback(adapter_callbacks_.back().get());
|
||||
@ -242,6 +245,10 @@ const char* MultiplexEncoderAdapter::ImplementationName() const {
|
||||
return "MultiplexEncoderAdapter";
|
||||
}
|
||||
|
||||
bool MultiplexEncoderAdapter::HasTrustedRateController() const {
|
||||
return has_trusted_rate_controllers_;
|
||||
}
|
||||
|
||||
EncodedImageCallback::Result MultiplexEncoderAdapter::OnEncodedImage(
|
||||
AlphaCodecStream stream_idx,
|
||||
const EncodedImage& encodedImage,
|
||||
|
Reference in New Issue
Block a user