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 {
|
VideoEncoder::EncoderInfo SimulcastEncoderAdapter::GetEncoderInfo() const {
|
||||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
|
EncoderInfo info;
|
||||||
// We should not be calling this method before streaminfos_ are configured.
|
|
||||||
|
if (Initialized() && NumberOfStreams(codec_) > 1) {
|
||||||
|
info = streaminfos_[0].encoder->GetEncoderInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
info.supports_native_handle = true;
|
||||||
for (const auto& streaminfo : streaminfos_) {
|
for (const auto& streaminfo : streaminfos_) {
|
||||||
if (!streaminfo.encoder->SupportsNativeHandle()) {
|
if (!streaminfo.encoder->GetEncoderInfo().supports_native_handle) {
|
||||||
return false;
|
info.supports_native_handle = false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
VideoEncoder::ScalingSettings SimulcastEncoderAdapter::GetScalingSettings()
|
info.implementation_name = implementation_name_;
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* SimulcastEncoderAdapter::ImplementationName() const {
|
return info;
|
||||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
|
|
||||||
return implementation_name_.c_str();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -61,10 +61,7 @@ class SimulcastEncoderAdapter : public VideoEncoder {
|
|||||||
const CodecSpecificInfo* codec_specific_info,
|
const CodecSpecificInfo* codec_specific_info,
|
||||||
const RTPFragmentationHeader* fragmentation);
|
const RTPFragmentationHeader* fragmentation);
|
||||||
|
|
||||||
VideoEncoder::ScalingSettings GetScalingSettings() const override;
|
EncoderInfo GetEncoderInfo() const override;
|
||||||
|
|
||||||
bool SupportsNativeHandle() const override;
|
|
||||||
const char* ImplementationName() const override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct StreamInfo {
|
struct StreamInfo {
|
||||||
|
@ -212,8 +212,11 @@ class MockVideoEncoder : public VideoEncoder {
|
|||||||
|
|
||||||
MOCK_METHOD2(SetChannelParameters, int32_t(uint32_t packetLoss, int64_t rtt));
|
MOCK_METHOD2(SetChannelParameters, int32_t(uint32_t packetLoss, int64_t rtt));
|
||||||
|
|
||||||
bool SupportsNativeHandle() const /* override */ {
|
EncoderInfo GetEncoderInfo() const override {
|
||||||
return supports_native_handle_;
|
EncoderInfo info;
|
||||||
|
info.supports_native_handle = supports_native_handle_;
|
||||||
|
info.implementation_name = implementation_name_;
|
||||||
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~MockVideoEncoder() { factory_->DestroyVideoEncoder(this); }
|
virtual ~MockVideoEncoder() { factory_->DestroyVideoEncoder(this); }
|
||||||
@ -235,17 +238,20 @@ class MockVideoEncoder : public VideoEncoder {
|
|||||||
supports_native_handle_ = enabled;
|
supports_native_handle_ = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_implementation_name(const std::string& name) {
|
||||||
|
implementation_name_ = name;
|
||||||
|
}
|
||||||
|
|
||||||
void set_init_encode_return_value(int32_t value) {
|
void set_init_encode_return_value(int32_t value) {
|
||||||
init_encode_return_value_ = value;
|
init_encode_return_value_ = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
VideoBitrateAllocation last_set_bitrate() const { return last_set_bitrate_; }
|
VideoBitrateAllocation last_set_bitrate() const { return last_set_bitrate_; }
|
||||||
|
|
||||||
MOCK_CONST_METHOD0(ImplementationName, const char*());
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MockVideoEncoderFactory* const factory_;
|
MockVideoEncoderFactory* const factory_;
|
||||||
bool supports_native_handle_ = false;
|
bool supports_native_handle_ = false;
|
||||||
|
std::string implementation_name_ = "unknown";
|
||||||
int32_t init_encode_return_value_ = 0;
|
int32_t init_encode_return_value_ = 0;
|
||||||
VideoBitrateAllocation last_set_bitrate_;
|
VideoBitrateAllocation last_set_bitrate_;
|
||||||
|
|
||||||
@ -267,7 +273,7 @@ std::unique_ptr<VideoEncoder> MockVideoEncoderFactory::CreateVideoEncoder(
|
|||||||
const char* encoder_name = encoder_names_.empty()
|
const char* encoder_name = encoder_names_.empty()
|
||||||
? "codec_implementation_name"
|
? "codec_implementation_name"
|
||||||
: encoder_names_[encoders_.size()];
|
: encoder_names_[encoders_.size()];
|
||||||
ON_CALL(*encoder, ImplementationName()).WillByDefault(Return(encoder_name));
|
encoder->set_implementation_name(encoder_name);
|
||||||
encoders_.push_back(encoder.get());
|
encoders_.push_back(encoder.get());
|
||||||
return encoder;
|
return encoder;
|
||||||
}
|
}
|
||||||
|
@ -66,17 +66,8 @@ int VP8EncoderSimulcastProxy::SetRateAllocation(
|
|||||||
return encoder_->SetRateAllocation(bitrate, new_framerate);
|
return encoder_->SetRateAllocation(bitrate, new_framerate);
|
||||||
}
|
}
|
||||||
|
|
||||||
VideoEncoder::ScalingSettings VP8EncoderSimulcastProxy::GetScalingSettings()
|
VideoEncoder::EncoderInfo VP8EncoderSimulcastProxy::GetEncoderInfo() const {
|
||||||
const {
|
return encoder_->GetEncoderInfo();
|
||||||
return encoder_->GetScalingSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool VP8EncoderSimulcastProxy::SupportsNativeHandle() const {
|
|
||||||
return encoder_->SupportsNativeHandle();
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* VP8EncoderSimulcastProxy::ImplementationName() const {
|
|
||||||
return encoder_->ImplementationName();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -45,11 +45,7 @@ class VP8EncoderSimulcastProxy : public VideoEncoder {
|
|||||||
int SetChannelParameters(uint32_t packet_loss, int64_t rtt) override;
|
int SetChannelParameters(uint32_t packet_loss, int64_t rtt) override;
|
||||||
int SetRateAllocation(const VideoBitrateAllocation& bitrate,
|
int SetRateAllocation(const VideoBitrateAllocation& bitrate,
|
||||||
uint32_t new_framerate) override;
|
uint32_t new_framerate) override;
|
||||||
|
EncoderInfo GetEncoderInfo() const override;
|
||||||
VideoEncoder::ScalingSettings GetScalingSettings() const override;
|
|
||||||
|
|
||||||
bool SupportsNativeHandle() const override;
|
|
||||||
const char* ImplementationName() const override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VideoEncoderFactory* const factory_;
|
VideoEncoderFactory* const factory_;
|
||||||
|
Reference in New Issue
Block a user