Use EncoderInfo in SimulcastEncoderAdapter
Remove use of deprecated methods. Bug: webrtc:9890 Change-Id: I96cce2fc94cb4c4ac07ffc882f5d2b84e279e3b6 Reviewed-on: https://webrtc-review.googlesource.com/c/108123 Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25474}
This commit is contained in:
@ -516,31 +516,24 @@ void SimulcastEncoderAdapter::DestroyStoredEncoders() {
|
||||
}
|
||||
}
|
||||
|
||||
bool SimulcastEncoderAdapter::SupportsNativeHandle() const {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
|
||||
// We should not be calling this method before streaminfos_ are configured.
|
||||
VideoEncoder::EncoderInfo SimulcastEncoderAdapter::GetEncoderInfo() const {
|
||||
EncoderInfo info;
|
||||
|
||||
if (Initialized() && NumberOfStreams(codec_) > 1) {
|
||||
info = streaminfos_[0].encoder->GetEncoderInfo();
|
||||
}
|
||||
|
||||
info.supports_native_handle = true;
|
||||
for (const auto& streaminfo : streaminfos_) {
|
||||
if (!streaminfo.encoder->SupportsNativeHandle()) {
|
||||
return false;
|
||||
if (!streaminfo.encoder->GetEncoderInfo().supports_native_handle) {
|
||||
info.supports_native_handle = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
VideoEncoder::ScalingSettings SimulcastEncoderAdapter::GetScalingSettings()
|
||||
const {
|
||||
// TODO(brandtr): Investigate why the sequence checker below fails on mac.
|
||||
// RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
|
||||
// Turn off quality scaling for simulcast.
|
||||
if (!Initialized() || NumberOfStreams(codec_) != 1) {
|
||||
return VideoEncoder::ScalingSettings::kOff;
|
||||
}
|
||||
return streaminfos_[0].encoder->GetScalingSettings();
|
||||
}
|
||||
info.implementation_name = implementation_name_;
|
||||
|
||||
const char* SimulcastEncoderAdapter::ImplementationName() const {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
|
||||
return implementation_name_.c_str();
|
||||
return info;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
@ -61,10 +61,7 @@ class SimulcastEncoderAdapter : public VideoEncoder {
|
||||
const CodecSpecificInfo* codec_specific_info,
|
||||
const RTPFragmentationHeader* fragmentation);
|
||||
|
||||
VideoEncoder::ScalingSettings GetScalingSettings() const override;
|
||||
|
||||
bool SupportsNativeHandle() const override;
|
||||
const char* ImplementationName() const override;
|
||||
EncoderInfo GetEncoderInfo() const override;
|
||||
|
||||
private:
|
||||
struct StreamInfo {
|
||||
|
@ -212,8 +212,11 @@ class MockVideoEncoder : public VideoEncoder {
|
||||
|
||||
MOCK_METHOD2(SetChannelParameters, int32_t(uint32_t packetLoss, int64_t rtt));
|
||||
|
||||
bool SupportsNativeHandle() const /* override */ {
|
||||
return supports_native_handle_;
|
||||
EncoderInfo GetEncoderInfo() const override {
|
||||
EncoderInfo info;
|
||||
info.supports_native_handle = supports_native_handle_;
|
||||
info.implementation_name = implementation_name_;
|
||||
return info;
|
||||
}
|
||||
|
||||
virtual ~MockVideoEncoder() { factory_->DestroyVideoEncoder(this); }
|
||||
@ -235,17 +238,20 @@ class MockVideoEncoder : public VideoEncoder {
|
||||
supports_native_handle_ = enabled;
|
||||
}
|
||||
|
||||
void set_implementation_name(const std::string& name) {
|
||||
implementation_name_ = name;
|
||||
}
|
||||
|
||||
void set_init_encode_return_value(int32_t value) {
|
||||
init_encode_return_value_ = value;
|
||||
}
|
||||
|
||||
VideoBitrateAllocation last_set_bitrate() const { return last_set_bitrate_; }
|
||||
|
||||
MOCK_CONST_METHOD0(ImplementationName, const char*());
|
||||
|
||||
private:
|
||||
MockVideoEncoderFactory* const factory_;
|
||||
bool supports_native_handle_ = false;
|
||||
std::string implementation_name_ = "unknown";
|
||||
int32_t init_encode_return_value_ = 0;
|
||||
VideoBitrateAllocation last_set_bitrate_;
|
||||
|
||||
@ -267,7 +273,7 @@ std::unique_ptr<VideoEncoder> MockVideoEncoderFactory::CreateVideoEncoder(
|
||||
const char* encoder_name = encoder_names_.empty()
|
||||
? "codec_implementation_name"
|
||||
: encoder_names_[encoders_.size()];
|
||||
ON_CALL(*encoder, ImplementationName()).WillByDefault(Return(encoder_name));
|
||||
encoder->set_implementation_name(encoder_name);
|
||||
encoders_.push_back(encoder.get());
|
||||
return encoder;
|
||||
}
|
||||
|
@ -66,17 +66,8 @@ int VP8EncoderSimulcastProxy::SetRateAllocation(
|
||||
return encoder_->SetRateAllocation(bitrate, new_framerate);
|
||||
}
|
||||
|
||||
VideoEncoder::ScalingSettings VP8EncoderSimulcastProxy::GetScalingSettings()
|
||||
const {
|
||||
return encoder_->GetScalingSettings();
|
||||
}
|
||||
|
||||
bool VP8EncoderSimulcastProxy::SupportsNativeHandle() const {
|
||||
return encoder_->SupportsNativeHandle();
|
||||
}
|
||||
|
||||
const char* VP8EncoderSimulcastProxy::ImplementationName() const {
|
||||
return encoder_->ImplementationName();
|
||||
VideoEncoder::EncoderInfo VP8EncoderSimulcastProxy::GetEncoderInfo() const {
|
||||
return encoder_->GetEncoderInfo();
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
@ -45,11 +45,7 @@ class VP8EncoderSimulcastProxy : public VideoEncoder {
|
||||
int SetChannelParameters(uint32_t packet_loss, int64_t rtt) override;
|
||||
int SetRateAllocation(const VideoBitrateAllocation& bitrate,
|
||||
uint32_t new_framerate) override;
|
||||
|
||||
VideoEncoder::ScalingSettings GetScalingSettings() const override;
|
||||
|
||||
bool SupportsNativeHandle() const override;
|
||||
const char* ImplementationName() const override;
|
||||
EncoderInfo GetEncoderInfo() const override;
|
||||
|
||||
private:
|
||||
VideoEncoderFactory* const factory_;
|
||||
|
Reference in New Issue
Block a user