Remove default encoder/decoders.
This path is not used, senders/receivers already disable default coders. BUG=1695 R=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/54449004 Cr-Commit-Position: refs/heads/master@{#9245}
This commit is contained in:
@@ -169,8 +169,7 @@ Call::Call(const Call::Config& config)
|
|||||||
|
|
||||||
// TODO(pbos): Remove base channel when CreateReceiveChannel no longer
|
// TODO(pbos): Remove base channel when CreateReceiveChannel no longer
|
||||||
// requires one.
|
// requires one.
|
||||||
CHECK(channel_group_->CreateSendChannel(base_channel_id_, 0, num_cpu_cores_,
|
CHECK(channel_group_->CreateSendChannel(base_channel_id_, 0, num_cpu_cores_));
|
||||||
true));
|
|
||||||
|
|
||||||
if (config.overuse_callback) {
|
if (config.overuse_callback) {
|
||||||
overuse_observer_proxy_.reset(
|
overuse_observer_proxy_.reset(
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ VideoReceiveStream::VideoReceiveStream(int num_cpu_cores,
|
|||||||
channel_id_(channel_id),
|
channel_id_(channel_id),
|
||||||
voe_sync_interface_(nullptr) {
|
voe_sync_interface_(nullptr) {
|
||||||
CHECK(channel_group_->CreateReceiveChannel(channel_id_, 0, base_channel_id,
|
CHECK(channel_group_->CreateReceiveChannel(channel_id_, 0, base_channel_id,
|
||||||
num_cpu_cores, true));
|
num_cpu_cores));
|
||||||
|
|
||||||
vie_channel_ = channel_group_->GetChannel(channel_id_);
|
vie_channel_ = channel_group_->GetChannel(channel_id_);
|
||||||
|
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ VideoSendStream::VideoSendStream(
|
|||||||
channel_id_(channel_id),
|
channel_id_(channel_id),
|
||||||
use_config_bitrate_(true),
|
use_config_bitrate_(true),
|
||||||
stats_proxy_(Clock::GetRealTimeClock(), config) {
|
stats_proxy_(Clock::GetRealTimeClock(), config) {
|
||||||
CHECK(channel_group->CreateSendChannel(channel_id_, 0, num_cpu_cores, true));
|
CHECK(channel_group->CreateSendChannel(channel_id_, 0, num_cpu_cores));
|
||||||
vie_channel_ = channel_group_->GetChannel(channel_id_);
|
vie_channel_ = channel_group_->GetChannel(channel_id_);
|
||||||
vie_encoder_ = channel_group_->GetEncoder(channel_id_);
|
vie_encoder_ = channel_group_->GetEncoder(channel_id_);
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace webrtc {
|
|||||||
class MockVieEncoder : public ViEEncoder {
|
class MockVieEncoder : public ViEEncoder {
|
||||||
public:
|
public:
|
||||||
explicit MockVieEncoder(ProcessThread* process_thread, PacedSender* pacer)
|
explicit MockVieEncoder(ProcessThread* process_thread, PacedSender* pacer)
|
||||||
: ViEEncoder(1, 1, config_, *process_thread, pacer, NULL, NULL, false) {}
|
: ViEEncoder(1, 1, config_, *process_thread, pacer, NULL, NULL) {}
|
||||||
~MockVieEncoder() {}
|
~MockVieEncoder() {}
|
||||||
|
|
||||||
MOCK_METHOD1(OnReceivedIntraFrameRequest,
|
MOCK_METHOD1(OnReceivedIntraFrameRequest,
|
||||||
|
|||||||
@@ -90,8 +90,7 @@ ViEChannel::ViEChannel(int32_t channel_id,
|
|||||||
RtcpRttStats* rtt_stats,
|
RtcpRttStats* rtt_stats,
|
||||||
PacedSender* paced_sender,
|
PacedSender* paced_sender,
|
||||||
PacketRouter* packet_router,
|
PacketRouter* packet_router,
|
||||||
bool sender,
|
bool sender)
|
||||||
bool disable_default_encoder)
|
|
||||||
: ViEFrameProviderBase(channel_id, engine_id),
|
: ViEFrameProviderBase(channel_id, engine_id),
|
||||||
channel_id_(channel_id),
|
channel_id_(channel_id),
|
||||||
engine_id_(engine_id),
|
engine_id_(engine_id),
|
||||||
@@ -125,7 +124,6 @@ ViEChannel::ViEChannel(int32_t channel_id,
|
|||||||
wait_for_key_frame_(false),
|
wait_for_key_frame_(false),
|
||||||
mtu_(0),
|
mtu_(0),
|
||||||
sender_(sender),
|
sender_(sender),
|
||||||
disable_default_encoder_(disable_default_encoder),
|
|
||||||
nack_history_size_sender_(kSendSidePacketHistorySize),
|
nack_history_size_sender_(kSendSidePacketHistorySize),
|
||||||
max_nack_reordering_threshold_(kMaxPacketAgeToNack),
|
max_nack_reordering_threshold_(kMaxPacketAgeToNack),
|
||||||
pre_render_callback_(NULL),
|
pre_render_callback_(NULL),
|
||||||
@@ -170,24 +168,6 @@ int32_t ViEChannel::Init() {
|
|||||||
module_process_thread_.RegisterModule(vcm_);
|
module_process_thread_.RegisterModule(vcm_);
|
||||||
module_process_thread_.RegisterModule(&vie_sync_);
|
module_process_thread_.RegisterModule(&vie_sync_);
|
||||||
|
|
||||||
#ifdef VIDEOCODEC_VP8
|
|
||||||
if (!disable_default_encoder_) {
|
|
||||||
VideoCodec video_codec;
|
|
||||||
if (vcm_->Codec(kVideoCodecVP8, &video_codec) == VCM_OK) {
|
|
||||||
rtp_rtcp_->RegisterSendPayload(video_codec);
|
|
||||||
// TODO(holmer): Can we call SetReceiveCodec() here instead?
|
|
||||||
if (!vie_receiver_.RegisterPayload(video_codec)) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
vcm_->RegisterReceiveCodec(&video_codec, number_of_cores_);
|
|
||||||
vcm_->RegisterSendCodec(&video_codec, number_of_cores_,
|
|
||||||
rtp_rtcp_->MaxDataPayloadLength());
|
|
||||||
} else {
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -115,8 +115,7 @@ class ViEChannel
|
|||||||
RtcpRttStats* rtt_stats,
|
RtcpRttStats* rtt_stats,
|
||||||
PacedSender* paced_sender,
|
PacedSender* paced_sender,
|
||||||
PacketRouter* packet_router,
|
PacketRouter* packet_router,
|
||||||
bool sender,
|
bool sender);
|
||||||
bool disable_default_encoder);
|
|
||||||
~ViEChannel();
|
~ViEChannel();
|
||||||
|
|
||||||
int32_t Init();
|
int32_t Init();
|
||||||
@@ -528,8 +527,6 @@ class ViEChannel
|
|||||||
// User set MTU, -1 if not set.
|
// User set MTU, -1 if not set.
|
||||||
uint16_t mtu_;
|
uint16_t mtu_;
|
||||||
const bool sender_;
|
const bool sender_;
|
||||||
// Used to skip default encoder in the new API.
|
|
||||||
const bool disable_default_encoder_;
|
|
||||||
|
|
||||||
int nack_history_size_sender_;
|
int nack_history_size_sender_;
|
||||||
int max_nack_reordering_threshold_;
|
int max_nack_reordering_threshold_;
|
||||||
|
|||||||
@@ -200,17 +200,16 @@ ChannelGroup::~ChannelGroup() {
|
|||||||
|
|
||||||
bool ChannelGroup::CreateSendChannel(int channel_id,
|
bool ChannelGroup::CreateSendChannel(int channel_id,
|
||||||
int engine_id,
|
int engine_id,
|
||||||
int number_of_cores,
|
int number_of_cores) {
|
||||||
bool disable_default_encoder) {
|
|
||||||
rtc::scoped_ptr<ViEEncoder> vie_encoder(new ViEEncoder(
|
rtc::scoped_ptr<ViEEncoder> vie_encoder(new ViEEncoder(
|
||||||
channel_id, number_of_cores, *config_, *process_thread_, pacer_.get(),
|
channel_id, number_of_cores, *config_, *process_thread_, pacer_.get(),
|
||||||
bitrate_allocator_.get(), bitrate_controller_.get(), false));
|
bitrate_allocator_.get(), bitrate_controller_.get()));
|
||||||
if (!vie_encoder->Init()) {
|
if (!vie_encoder->Init()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ViEEncoder* encoder = vie_encoder.get();
|
ViEEncoder* encoder = vie_encoder.get();
|
||||||
if (!CreateChannel(channel_id, engine_id, number_of_cores,
|
if (!CreateChannel(channel_id, engine_id, number_of_cores,
|
||||||
vie_encoder.release(), true, disable_default_encoder)) {
|
vie_encoder.release(), true)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ViEChannel* channel = channel_map_[channel_id];
|
ViEChannel* channel = channel_map_[channel_id];
|
||||||
@@ -232,19 +231,16 @@ bool ChannelGroup::CreateSendChannel(int channel_id,
|
|||||||
bool ChannelGroup::CreateReceiveChannel(int channel_id,
|
bool ChannelGroup::CreateReceiveChannel(int channel_id,
|
||||||
int engine_id,
|
int engine_id,
|
||||||
int base_channel_id,
|
int base_channel_id,
|
||||||
int number_of_cores,
|
int number_of_cores) {
|
||||||
bool disable_default_encoder) {
|
|
||||||
ViEEncoder* encoder = GetEncoder(base_channel_id);
|
ViEEncoder* encoder = GetEncoder(base_channel_id);
|
||||||
return CreateChannel(channel_id, engine_id, number_of_cores, encoder, false,
|
return CreateChannel(channel_id, engine_id, number_of_cores, encoder, false);
|
||||||
disable_default_encoder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ChannelGroup::CreateChannel(int channel_id,
|
bool ChannelGroup::CreateChannel(int channel_id,
|
||||||
int engine_id,
|
int engine_id,
|
||||||
int number_of_cores,
|
int number_of_cores,
|
||||||
ViEEncoder* vie_encoder,
|
ViEEncoder* vie_encoder,
|
||||||
bool sender,
|
bool sender) {
|
||||||
bool disable_default_encoder) {
|
|
||||||
DCHECK(vie_encoder);
|
DCHECK(vie_encoder);
|
||||||
|
|
||||||
rtc::scoped_ptr<ViEChannel> channel(new ViEChannel(
|
rtc::scoped_ptr<ViEChannel> channel(new ViEChannel(
|
||||||
@@ -252,19 +248,10 @@ bool ChannelGroup::CreateChannel(int channel_id,
|
|||||||
encoder_state_feedback_->GetRtcpIntraFrameObserver(),
|
encoder_state_feedback_->GetRtcpIntraFrameObserver(),
|
||||||
bitrate_controller_->CreateRtcpBandwidthObserver(),
|
bitrate_controller_->CreateRtcpBandwidthObserver(),
|
||||||
remote_bitrate_estimator_.get(), call_stats_->rtcp_rtt_stats(),
|
remote_bitrate_estimator_.get(), call_stats_->rtcp_rtt_stats(),
|
||||||
pacer_.get(), packet_router_.get(), sender, disable_default_encoder));
|
pacer_.get(), packet_router_.get(), sender));
|
||||||
if (channel->Init() != 0) {
|
if (channel->Init() != 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!disable_default_encoder) {
|
|
||||||
VideoCodec encoder;
|
|
||||||
if (vie_encoder->GetEncoder(&encoder) != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (sender && channel->SetSendCodec(encoder) != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Register the channel to receive stats updates.
|
// Register the channel to receive stats updates.
|
||||||
call_stats_->RegisterStatsObserver(channel->GetStatsObserver());
|
call_stats_->RegisterStatsObserver(channel->GetStatsObserver());
|
||||||
|
|||||||
@@ -44,13 +44,11 @@ class ChannelGroup : public BitrateObserver {
|
|||||||
~ChannelGroup();
|
~ChannelGroup();
|
||||||
bool CreateSendChannel(int channel_id,
|
bool CreateSendChannel(int channel_id,
|
||||||
int engine_id,
|
int engine_id,
|
||||||
int number_of_cores,
|
int number_of_cores);
|
||||||
bool disable_default_encoder);
|
|
||||||
bool CreateReceiveChannel(int channel_id,
|
bool CreateReceiveChannel(int channel_id,
|
||||||
int engine_id,
|
int engine_id,
|
||||||
int base_channel_id,
|
int base_channel_id,
|
||||||
int number_of_cores,
|
int number_of_cores);
|
||||||
bool disable_default_encoder);
|
|
||||||
void DeleteChannel(int channel_id);
|
void DeleteChannel(int channel_id);
|
||||||
void AddChannel(int channel_id);
|
void AddChannel(int channel_id);
|
||||||
void RemoveChannel(int channel_id);
|
void RemoveChannel(int channel_id);
|
||||||
@@ -86,8 +84,7 @@ class ChannelGroup : public BitrateObserver {
|
|||||||
int engine_id,
|
int engine_id,
|
||||||
int number_of_cores,
|
int number_of_cores,
|
||||||
ViEEncoder* vie_encoder,
|
ViEEncoder* vie_encoder,
|
||||||
bool sender,
|
bool sender);
|
||||||
bool disable_default_encoder);
|
|
||||||
ViEChannel* PopChannel(int channel_id);
|
ViEChannel* PopChannel(int channel_id);
|
||||||
ViEEncoder* PopEncoder(int channel_id);
|
ViEEncoder* PopEncoder(int channel_id);
|
||||||
|
|
||||||
|
|||||||
@@ -104,11 +104,9 @@ ViEEncoder::ViEEncoder(int32_t channel_id,
|
|||||||
ProcessThread& module_process_thread,
|
ProcessThread& module_process_thread,
|
||||||
PacedSender* pacer,
|
PacedSender* pacer,
|
||||||
BitrateAllocator* bitrate_allocator,
|
BitrateAllocator* bitrate_allocator,
|
||||||
BitrateController* bitrate_controller,
|
BitrateController* bitrate_controller)
|
||||||
bool disable_default_encoder)
|
|
||||||
: channel_id_(channel_id),
|
: channel_id_(channel_id),
|
||||||
number_of_cores_(number_of_cores),
|
number_of_cores_(number_of_cores),
|
||||||
disable_default_encoder_(disable_default_encoder),
|
|
||||||
vpm_(VideoProcessingModule::Create(ViEModuleId(-1, channel_id))),
|
vpm_(VideoProcessingModule::Create(ViEModuleId(-1, channel_id))),
|
||||||
qm_callback_(new QMVideoSettingsCallback(vpm_.get())),
|
qm_callback_(new QMVideoSettingsCallback(vpm_.get())),
|
||||||
vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(),
|
vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(),
|
||||||
@@ -149,26 +147,6 @@ bool ViEEncoder::Init() {
|
|||||||
// Enable/disable content analysis: off by default for now.
|
// Enable/disable content analysis: off by default for now.
|
||||||
vpm_->EnableContentAnalysis(false);
|
vpm_->EnableContentAnalysis(false);
|
||||||
|
|
||||||
if (!disable_default_encoder_) {
|
|
||||||
#ifdef VIDEOCODEC_VP8
|
|
||||||
VideoCodecType codec_type = webrtc::kVideoCodecVP8;
|
|
||||||
#else
|
|
||||||
VideoCodecType codec_type = webrtc::kVideoCodecI420;
|
|
||||||
#endif
|
|
||||||
VideoCodec video_codec;
|
|
||||||
if (vcm_->Codec(codec_type, &video_codec) != VCM_OK) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
CriticalSectionScoped cs(data_cs_.get());
|
|
||||||
send_padding_ = video_codec.numberOfSimulcastStreams > 1;
|
|
||||||
}
|
|
||||||
if (vcm_->RegisterSendCodec(&video_codec, number_of_cores_,
|
|
||||||
PayloadRouter::DefaultMaxPayloadLength()) !=
|
|
||||||
0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (vcm_->RegisterTransportCallback(this) != 0) {
|
if (vcm_->RegisterTransportCallback(this) != 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -282,30 +260,6 @@ int32_t ViEEncoder::DeRegisterExternalEncoder(uint8_t pl_type) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (disable_default_encoder_)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
// If the external encoder is the current send codec, use vcm internal
|
|
||||||
// encoder.
|
|
||||||
if (current_send_codec.plType == pl_type) {
|
|
||||||
{
|
|
||||||
CriticalSectionScoped cs(data_cs_.get());
|
|
||||||
send_padding_ = current_send_codec.numberOfSimulcastStreams > 1;
|
|
||||||
}
|
|
||||||
// TODO(mflodman): Unfortunately the VideoCodec that VCM has cached a
|
|
||||||
// raw pointer to an |extra_options| that's long gone. Clearing it here is
|
|
||||||
// a hack to prevent the following code from crashing. This should be fixed
|
|
||||||
// for realz. https://code.google.com/p/chromium/issues/detail?id=348222
|
|
||||||
current_send_codec.extra_options = NULL;
|
|
||||||
size_t max_data_payload_length = send_payload_router_->MaxPayloadLength();
|
|
||||||
if (vcm_->RegisterSendCodec(¤t_send_codec, number_of_cores_,
|
|
||||||
max_data_payload_length) != VCM_OK) {
|
|
||||||
LOG(LS_INFO) << "De-registered the currently used external encoder ("
|
|
||||||
<< static_cast<int>(pl_type) << ") and therefore tried to "
|
|
||||||
<< "register the corresponding internal encoder, but none "
|
|
||||||
<< "was supported.";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,8 +78,7 @@ class ViEEncoder
|
|||||||
ProcessThread& module_process_thread,
|
ProcessThread& module_process_thread,
|
||||||
PacedSender* pacer,
|
PacedSender* pacer,
|
||||||
BitrateAllocator* bitrate_allocator,
|
BitrateAllocator* bitrate_allocator,
|
||||||
BitrateController* bitrate_controller,
|
BitrateController* bitrate_controller);
|
||||||
bool disable_default_encoder);
|
|
||||||
~ViEEncoder();
|
~ViEEncoder();
|
||||||
|
|
||||||
bool Init();
|
bool Init();
|
||||||
@@ -203,7 +202,6 @@ class ViEEncoder
|
|||||||
|
|
||||||
const int channel_id_;
|
const int channel_id_;
|
||||||
const uint32_t number_of_cores_;
|
const uint32_t number_of_cores_;
|
||||||
const bool disable_default_encoder_;
|
|
||||||
|
|
||||||
const rtc::scoped_ptr<VideoProcessingModule> vpm_;
|
const rtc::scoped_ptr<VideoProcessingModule> vpm_;
|
||||||
const rtc::scoped_ptr<QMVideoSettingsCallback> qm_callback_;
|
const rtc::scoped_ptr<QMVideoSettingsCallback> qm_callback_;
|
||||||
|
|||||||
Reference in New Issue
Block a user