Add metadata from VideoEncoderFactory::CodecInfo to VideoEncoder::EncoderInfo
This is the first step in moving the metadata and eventually replacing VideoEncoderFactory::QueryVideoEncoder with VideoEncoder::GetEncoderInfo. Bug: webrtc:10065 Change-Id: If925b895718e1b1225d2cf49bede1adb3ff281b8 Reviewed-on: https://webrtc-review.googlesource.com/c/112285 Commit-Queue: Mirta Dvornicic <mirtad@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25856}
This commit is contained in:
committed by
Commit Bot
parent
e0446cb80c
commit
897a991618
@ -627,6 +627,8 @@ VideoEncoder::EncoderInfo H264EncoderImpl::GetEncoderInfo() const {
|
||||
info.implementation_name = "OpenH264";
|
||||
info.scaling_settings =
|
||||
VideoEncoder::ScalingSettings(kLowH264QpThreshold, kHighH264QpThreshold);
|
||||
info.is_hardware_accelerated = false;
|
||||
info.has_internal_source = false;
|
||||
return info;
|
||||
}
|
||||
|
||||
|
||||
@ -116,6 +116,14 @@ int MultiplexEncoderAdapter::InitEncode(const VideoCodec* inst,
|
||||
if (i != kAlphaCodecStreams - 1) {
|
||||
encoder_info_.implementation_name += ", ";
|
||||
}
|
||||
if (i == 0) {
|
||||
encoder_info_.is_hardware_accelerated =
|
||||
encoder_impl_info.is_hardware_accelerated;
|
||||
} else {
|
||||
encoder_info_.is_hardware_accelerated &=
|
||||
encoder_impl_info.is_hardware_accelerated;
|
||||
}
|
||||
encoder_info_.has_internal_source = false;
|
||||
|
||||
encoders_.emplace_back(std::move(encoder));
|
||||
}
|
||||
|
||||
@ -932,6 +932,8 @@ VideoEncoder::EncoderInfo LibvpxVp8Encoder::GetEncoderInfo() const {
|
||||
info.supports_native_handle = false;
|
||||
info.implementation_name = "libvpx";
|
||||
info.has_trusted_rate_controller = trusted_rate_controller_;
|
||||
info.is_hardware_accelerated = false;
|
||||
info.has_internal_source = false;
|
||||
|
||||
const bool enable_scaling = encoders_.size() == 1 &&
|
||||
configurations_[0].rc_dropframe_thresh > 0 &&
|
||||
|
||||
@ -77,7 +77,10 @@ class TestVp8Impl : public VideoCodecUnitTest {
|
||||
encoder_->Encode(input_frame, nullptr, &frame_types));
|
||||
ASSERT_TRUE(WaitForEncodedFrame(encoded_frame, codec_specific_info));
|
||||
VerifyQpParser(*encoded_frame);
|
||||
EXPECT_EQ("libvpx", encoder_->GetEncoderInfo().implementation_name);
|
||||
VideoEncoder::EncoderInfo encoder_info = encoder_->GetEncoderInfo();
|
||||
EXPECT_EQ("libvpx", encoder_info.implementation_name);
|
||||
EXPECT_EQ(false, encoder_info.is_hardware_accelerated);
|
||||
EXPECT_EQ(false, encoder_info.has_internal_source);
|
||||
EXPECT_EQ(kVideoCodecVP8, codec_specific_info->codecType);
|
||||
EXPECT_EQ(0, encoded_frame->SpatialIndex());
|
||||
}
|
||||
|
||||
@ -1255,6 +1255,8 @@ VideoEncoder::EncoderInfo VP9EncoderImpl::GetEncoderInfo() const {
|
||||
info.implementation_name = "libvpx";
|
||||
info.scaling_settings = VideoEncoder::ScalingSettings::kOff;
|
||||
info.has_trusted_rate_controller = trusted_rate_controller_;
|
||||
info.is_hardware_accelerated = false;
|
||||
info.has_internal_source = false;
|
||||
return info;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user