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:
@ -50,7 +50,7 @@ class MultiplexEncoderAdapter : public VideoEncoder {
|
|||||||
int SetRateAllocation(const VideoBitrateAllocation& bitrate,
|
int SetRateAllocation(const VideoBitrateAllocation& bitrate,
|
||||||
uint32_t new_framerate) override;
|
uint32_t new_framerate) override;
|
||||||
int Release() override;
|
int Release() override;
|
||||||
const char* ImplementationName() const override;
|
EncoderInfo GetEncoderInfo() const override;
|
||||||
|
|
||||||
EncodedImageCallback::Result OnEncodedImage(
|
EncodedImageCallback::Result OnEncodedImage(
|
||||||
AlphaCodecStream stream_idx,
|
AlphaCodecStream stream_idx,
|
||||||
@ -81,6 +81,8 @@ class MultiplexEncoderAdapter : public VideoEncoder {
|
|||||||
|
|
||||||
const bool supports_augmented_data_;
|
const bool supports_augmented_data_;
|
||||||
int augmenting_data_size_ = 0;
|
int augmenting_data_size_ = 0;
|
||||||
|
|
||||||
|
EncoderInfo encoder_info_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -53,6 +53,7 @@ MultiplexEncoderAdapter::MultiplexEncoderAdapter(
|
|||||||
: factory_(factory),
|
: factory_(factory),
|
||||||
associated_format_(associated_format),
|
associated_format_(associated_format),
|
||||||
encoded_complete_callback_(nullptr),
|
encoded_complete_callback_(nullptr),
|
||||||
|
key_frame_interval_(0),
|
||||||
supports_augmented_data_(supports_augmented_data) {}
|
supports_augmented_data_(supports_augmented_data) {}
|
||||||
|
|
||||||
MultiplexEncoderAdapter::~MultiplexEncoderAdapter() {
|
MultiplexEncoderAdapter::~MultiplexEncoderAdapter() {
|
||||||
@ -92,6 +93,11 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst,
|
|||||||
break;
|
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) {
|
for (size_t i = 0; i < kAlphaCodecStreams; ++i) {
|
||||||
std::unique_ptr<VideoEncoder> encoder =
|
std::unique_ptr<VideoEncoder> encoder =
|
||||||
factory_->CreateVideoEncoder(associated_format_);
|
factory_->CreateVideoEncoder(associated_format_);
|
||||||
@ -104,8 +110,17 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst,
|
|||||||
adapter_callbacks_.emplace_back(new AdapterEncodedImageCallback(
|
adapter_callbacks_.emplace_back(new AdapterEncodedImageCallback(
|
||||||
this, static_cast<AlphaCodecStream>(i)));
|
this, static_cast<AlphaCodecStream>(i)));
|
||||||
encoder->RegisterEncodeCompleteCallback(adapter_callbacks_.back().get());
|
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));
|
encoders_.emplace_back(std::move(encoder));
|
||||||
}
|
}
|
||||||
|
encoder_info_.implementation_name += ")";
|
||||||
|
|
||||||
return WEBRTC_VIDEO_CODEC_OK;
|
return WEBRTC_VIDEO_CODEC_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,8 +253,8 @@ int MultiplexEncoderAdapter::Release() {
|
|||||||
return WEBRTC_VIDEO_CODEC_OK;
|
return WEBRTC_VIDEO_CODEC_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* MultiplexEncoderAdapter::ImplementationName() const {
|
VideoEncoder::EncoderInfo MultiplexEncoderAdapter::GetEncoderInfo() const {
|
||||||
return "MultiplexEncoderAdapter";
|
return encoder_info_;
|
||||||
}
|
}
|
||||||
|
|
||||||
EncodedImageCallback::Result MultiplexEncoderAdapter::OnEncodedImage(
|
EncodedImageCallback::Result MultiplexEncoderAdapter::OnEncodedImage(
|
||||||
|
Reference in New Issue
Block a user