From 096d016accb0c805b230c7361db154551a3f1fca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Spr=C3=A5ng?= Date: Thu, 1 Nov 2018 17:40:10 +0100 Subject: [PATCH] Update MultiplexEncoderAdapter to use EncoderInfo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:9890 Change-Id: I8d02f0f25e515ec06e0e81624f80c12f95b13c3d Reviewed-on: https://webrtc-review.googlesource.com/c/109024 Commit-Queue: Erik Språng Reviewed-by: Emircan Uysaler Cr-Commit-Position: refs/heads/master@{#25476} --- .../include/multiplex_encoder_adapter.h | 4 +++- .../multiplex/multiplex_encoder_adapter.cc | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/video_coding/codecs/multiplex/include/multiplex_encoder_adapter.h b/modules/video_coding/codecs/multiplex/include/multiplex_encoder_adapter.h index 531d07870e..985bf39fe3 100644 --- a/modules/video_coding/codecs/multiplex/include/multiplex_encoder_adapter.h +++ b/modules/video_coding/codecs/multiplex/include/multiplex_encoder_adapter.h @@ -50,7 +50,7 @@ class MultiplexEncoderAdapter : public VideoEncoder { int SetRateAllocation(const VideoBitrateAllocation& bitrate, uint32_t new_framerate) override; int Release() override; - const char* ImplementationName() const override; + EncoderInfo GetEncoderInfo() const override; EncodedImageCallback::Result OnEncodedImage( AlphaCodecStream stream_idx, @@ -81,6 +81,8 @@ class MultiplexEncoderAdapter : public VideoEncoder { const bool supports_augmented_data_; int augmenting_data_size_ = 0; + + EncoderInfo encoder_info_; }; } // namespace webrtc diff --git a/modules/video_coding/codecs/multiplex/multiplex_encoder_adapter.cc b/modules/video_coding/codecs/multiplex/multiplex_encoder_adapter.cc index ce645743d1..5ea1fdc2ae 100644 --- a/modules/video_coding/codecs/multiplex/multiplex_encoder_adapter.cc +++ b/modules/video_coding/codecs/multiplex/multiplex_encoder_adapter.cc @@ -53,6 +53,7 @@ MultiplexEncoderAdapter::MultiplexEncoderAdapter( : factory_(factory), associated_format_(associated_format), encoded_complete_callback_(nullptr), + key_frame_interval_(0), supports_augmented_data_(supports_augmented_data) {} MultiplexEncoderAdapter::~MultiplexEncoderAdapter() { @@ -92,6 +93,11 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst, break; } + encoder_info_ = EncoderInfo(); + encoder_info_.implementation_name = "MultiplexEncoderAdapter ("; + // This needs to be false so that we can do the split in Encode(). + encoder_info_.supports_native_handle = false; + for (size_t i = 0; i < kAlphaCodecStreams; ++i) { std::unique_ptr encoder = factory_->CreateVideoEncoder(associated_format_); @@ -104,8 +110,17 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst, adapter_callbacks_.emplace_back(new AdapterEncodedImageCallback( this, static_cast(i))); encoder->RegisterEncodeCompleteCallback(adapter_callbacks_.back().get()); + + const EncoderInfo& encoder_impl_info = encoder->GetEncoderInfo(); + encoder_info_.implementation_name += encoder_impl_info.implementation_name; + if (i != kAlphaCodecStreams - 1) { + encoder_info_.implementation_name += ", "; + } + encoders_.emplace_back(std::move(encoder)); } + encoder_info_.implementation_name += ")"; + return WEBRTC_VIDEO_CODEC_OK; } @@ -238,8 +253,8 @@ int MultiplexEncoderAdapter::Release() { return WEBRTC_VIDEO_CODEC_OK; } -const char* MultiplexEncoderAdapter::ImplementationName() const { - return "MultiplexEncoderAdapter"; +VideoEncoder::EncoderInfo MultiplexEncoderAdapter::GetEncoderInfo() const { + return encoder_info_; } EncodedImageCallback::Result MultiplexEncoderAdapter::OnEncodedImage(