Copy VP8EncoderSimulcastProxy to EncoderSimulcastProxy
Use the new class internally where appropriate too. The objective is to rename it, but due to some external dependency, it is better to copy, update dependencies and remove. Bug: webrtc:10069 Change-Id: I8477ce5a2982933db27513cc9509f51558dafaf3 Reviewed-on: https://webrtc-review.googlesource.com/c/113265 Commit-Queue: Florent Castelli <orphis@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25920}
This commit is contained in:
committed by
Commit Bot
parent
18f0c3c038
commit
e7862cc6b5
68
media/engine/encoder_simulcast_proxy.cc
Normal file
68
media/engine/encoder_simulcast_proxy.cc
Normal file
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "media/engine/encoder_simulcast_proxy.h"
|
||||
|
||||
#include "media/engine/simulcast_encoder_adapter.h"
|
||||
#include "modules/video_coding/include/video_error_codes.h"
|
||||
|
||||
namespace webrtc {
|
||||
EncoderSimulcastProxy::EncoderSimulcastProxy(VideoEncoderFactory* factory,
|
||||
const SdpVideoFormat& format)
|
||||
: factory_(factory), video_format_(format), callback_(nullptr) {
|
||||
encoder_ = factory_->CreateVideoEncoder(format);
|
||||
}
|
||||
|
||||
EncoderSimulcastProxy::EncoderSimulcastProxy(VideoEncoderFactory* factory)
|
||||
: EncoderSimulcastProxy(factory, SdpVideoFormat("VP8")) {}
|
||||
|
||||
EncoderSimulcastProxy::~EncoderSimulcastProxy() {}
|
||||
|
||||
int EncoderSimulcastProxy::Release() {
|
||||
return encoder_->Release();
|
||||
}
|
||||
|
||||
int EncoderSimulcastProxy::InitEncode(const VideoCodec* inst,
|
||||
int number_of_cores,
|
||||
size_t max_payload_size) {
|
||||
int ret = encoder_->InitEncode(inst, number_of_cores, max_payload_size);
|
||||
if (ret == WEBRTC_VIDEO_CODEC_ERR_SIMULCAST_PARAMETERS_NOT_SUPPORTED) {
|
||||
encoder_.reset(new SimulcastEncoderAdapter(factory_, video_format_));
|
||||
if (callback_) {
|
||||
encoder_->RegisterEncodeCompleteCallback(callback_);
|
||||
}
|
||||
ret = encoder_->InitEncode(inst, number_of_cores, max_payload_size);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int EncoderSimulcastProxy::Encode(const VideoFrame& input_image,
|
||||
const CodecSpecificInfo* codec_specific_info,
|
||||
const std::vector<FrameType>* frame_types) {
|
||||
return encoder_->Encode(input_image, codec_specific_info, frame_types);
|
||||
}
|
||||
|
||||
int EncoderSimulcastProxy::RegisterEncodeCompleteCallback(
|
||||
EncodedImageCallback* callback) {
|
||||
callback_ = callback;
|
||||
return encoder_->RegisterEncodeCompleteCallback(callback);
|
||||
}
|
||||
|
||||
int EncoderSimulcastProxy::SetRateAllocation(
|
||||
const VideoBitrateAllocation& bitrate,
|
||||
uint32_t new_framerate) {
|
||||
return encoder_->SetRateAllocation(bitrate, new_framerate);
|
||||
}
|
||||
|
||||
VideoEncoder::EncoderInfo EncoderSimulcastProxy::GetEncoderInfo() const {
|
||||
return encoder_->GetEncoderInfo();
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
Reference in New Issue
Block a user