Move encoder metadata into EncoderInfo struct.
This deprecates the following methods in VideoEncoder: virtual ScalingSettings GetScalingSettings() const; virtual bool SupportsNativeHandle() const; virtual const char* ImplementationName() const; Though they are not marked RTC_DEPRECATED since we still want to call them from within the default GetEncoderInfo() until downstream projects have been updated. Furthmore, implementation name is changed from const char* to std:string, which prevents some lifetime issues with dynamic encoder names, and CodecSpecificInfo.codec_name is removed in favor of getting the implementation name via GetEncoderInfo(). This CL removes calls to these deprecated methods, follow-ups will also remove implementations of the methods and replace them with new GetEncoderInfo() substitutions. Bug: webrtc:9890 Change-Id: I6fd6e531480c0b952f53dbd5105e0b0adc3e3b0c Reviewed-on: https://webrtc-review.googlesource.com/c/106905 Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25351}
This commit is contained in:
@ -671,7 +671,7 @@ void VideoCodecTestFixtureImpl::PrintSettings(
|
||||
std::string encoder_name;
|
||||
std::string decoder_name;
|
||||
task_queue->SendTask([this, &encoder_name, &decoder_name] {
|
||||
encoder_name = encoder_->ImplementationName();
|
||||
encoder_name = encoder_->GetEncoderInfo().implementation_name;
|
||||
decoder_name = decoders_.at(0)->ImplementationName();
|
||||
});
|
||||
printf("enc_impl_name: %s\n", encoder_name.c_str());
|
||||
|
||||
@ -843,7 +843,6 @@ void LibvpxVp8Encoder::PopulateCodecSpecific(CodecSpecificInfo* codec_specific,
|
||||
uint32_t timestamp) {
|
||||
assert(codec_specific != NULL);
|
||||
codec_specific->codecType = kVideoCodecVP8;
|
||||
codec_specific->codec_name = ImplementationName();
|
||||
CodecSpecificInfoVP8* vp8Info = &(codec_specific->codecSpecific.VP8);
|
||||
vp8Info->keyIdx = kNoKeyIdx; // TODO(hlundin) populate this
|
||||
vp8Info->nonReference = (pkt.data.frame.flags & VPX_FRAME_IS_DROPPABLE) != 0;
|
||||
|
||||
@ -77,7 +77,7 @@ class TestVp8Impl : public VideoCodecUnitTest {
|
||||
encoder_->Encode(input_frame, nullptr, &frame_types));
|
||||
ASSERT_TRUE(WaitForEncodedFrame(encoded_frame, codec_specific_info));
|
||||
VerifyQpParser(*encoded_frame);
|
||||
EXPECT_STREQ("libvpx", codec_specific_info->codec_name);
|
||||
EXPECT_EQ("libvpx", encoder_->GetEncoderInfo().implementation_name);
|
||||
EXPECT_EQ(kVideoCodecVP8, codec_specific_info->codecType);
|
||||
EXPECT_EQ(0, encoded_frame->SpatialIndex());
|
||||
}
|
||||
@ -334,7 +334,8 @@ TEST_F(TestVp8Impl, ScalingDisabledIfAutomaticResizeOff) {
|
||||
EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK,
|
||||
encoder_->InitEncode(&codec_settings_, kNumCores, kMaxPayloadSize));
|
||||
|
||||
VideoEncoder::ScalingSettings settings = encoder_->GetScalingSettings();
|
||||
VideoEncoder::ScalingSettings settings =
|
||||
encoder_->GetEncoderInfo().scaling_settings;
|
||||
EXPECT_FALSE(settings.thresholds.has_value());
|
||||
}
|
||||
|
||||
@ -344,7 +345,8 @@ TEST_F(TestVp8Impl, ScalingEnabledIfAutomaticResizeOn) {
|
||||
EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK,
|
||||
encoder_->InitEncode(&codec_settings_, kNumCores, kMaxPayloadSize));
|
||||
|
||||
VideoEncoder::ScalingSettings settings = encoder_->GetScalingSettings();
|
||||
VideoEncoder::ScalingSettings settings =
|
||||
encoder_->GetEncoderInfo().scaling_settings;
|
||||
EXPECT_TRUE(settings.thresholds.has_value());
|
||||
EXPECT_EQ(kDefaultMinPixelsPerFrame, settings.min_pixels_per_frame);
|
||||
}
|
||||
|
||||
@ -837,7 +837,6 @@ void VP9EncoderImpl::PopulateCodecSpecific(CodecSpecificInfo* codec_specific,
|
||||
bool first_frame_in_picture) {
|
||||
RTC_CHECK(codec_specific != nullptr);
|
||||
codec_specific->codecType = kVideoCodecVP9;
|
||||
codec_specific->codec_name = ImplementationName();
|
||||
CodecSpecificInfoVP9* vp9_info = &(codec_specific->codecSpecific.VP9);
|
||||
|
||||
vp9_info->first_frame_in_picture = first_frame_in_picture;
|
||||
|
||||
Reference in New Issue
Block a user