Update MultiplexEncoderAdapter to use EncoderInfo

Bug: webrtc:9890
Change-Id: I8d02f0f25e515ec06e0e81624f80c12f95b13c3d
Reviewed-on: https://webrtc-review.googlesource.com/c/109024
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25476}
This commit is contained in:
Erik Språng
2018-11-01 17:40:10 +01:00
committed by Commit Bot
parent 58df0ada6e
commit 096d016acc
2 changed files with 20 additions and 3 deletions

View File

@ -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

View File

@ -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<VideoEncoder> encoder =
factory_->CreateVideoEncoder(associated_format_);
@ -104,8 +110,17 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst,
adapter_callbacks_.emplace_back(new AdapterEncodedImageCallback(
this, static_cast<AlphaCodecStream>(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(