| Index: webrtc/video_engine/vie_encoder.cc
|
| diff --git a/webrtc/video_engine/vie_encoder.cc b/webrtc/video_engine/vie_encoder.cc
|
| index 07efd18b503630ba89c591fc9b27452ff71587f6..df3a4d465ad11e94714cb399be0fe0c169698afd 100644
|
| --- a/webrtc/video_engine/vie_encoder.cc
|
| +++ b/webrtc/video_engine/vie_encoder.cc
|
| @@ -106,11 +106,9 @@ ViEEncoder::ViEEncoder(int32_t channel_id,
|
| ProcessThread& module_process_thread,
|
| PacedSender* pacer,
|
| BitrateAllocator* bitrate_allocator,
|
| - BitrateController* bitrate_controller,
|
| - bool disable_default_encoder)
|
| + BitrateController* bitrate_controller)
|
| : channel_id_(channel_id),
|
| number_of_cores_(number_of_cores),
|
| - disable_default_encoder_(disable_default_encoder),
|
| vpm_(VideoProcessingModule::Create(ViEModuleId(-1, channel_id))),
|
| qm_callback_(new QMVideoSettingsCallback(vpm_.get())),
|
| vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(),
|
| @@ -123,7 +121,7 @@ ViEEncoder::ViEEncoder(int32_t channel_id,
|
| bitrate_allocator_(bitrate_allocator),
|
| bitrate_controller_(bitrate_controller),
|
| time_of_last_frame_activity_ms_(0),
|
| - send_padding_(false),
|
| + simulcast_enabled_(false),
|
| min_transmit_bitrate_kbps_(0),
|
| last_observed_bitrate_bps_(0),
|
| target_delay_ms_(0),
|
| @@ -151,27 +149,6 @@ bool ViEEncoder::Init() {
|
| // Enable/disable content analysis: off by default for now.
|
| 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_,
|
| - static_cast<uint32_t>(PayloadRouter::DefaultMaxPayloadLength())) !=
|
| - 0) {
|
| - return false;
|
| - }
|
| - }
|
| if (vcm_->RegisterTransportCallback(this) != 0) {
|
| return false;
|
| }
|
| @@ -271,45 +248,9 @@ int32_t ViEEncoder::RegisterExternalEncoder(webrtc::VideoEncoder* encoder,
|
| }
|
|
|
| int32_t ViEEncoder::DeRegisterExternalEncoder(uint8_t pl_type) {
|
| - DCHECK(send_payload_router_ != NULL);
|
| - webrtc::VideoCodec current_send_codec;
|
| - if (vcm_->SendCodec(¤t_send_codec) == VCM_OK) {
|
| - uint32_t current_bitrate_bps = 0;
|
| - if (vcm_->Bitrate(¤t_bitrate_bps) != 0) {
|
| - LOG(LS_WARNING) << "Failed to get the current encoder target bitrate.";
|
| - }
|
| - current_send_codec.startBitrate = (current_bitrate_bps + 500) / 1000;
|
| - }
|
| -
|
| if (vcm_->RegisterExternalEncoder(NULL, pl_type) != VCM_OK) {
|
| 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_,
|
| - static_cast<uint32_t>(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;
|
| }
|
|
|
| @@ -323,7 +264,7 @@ int32_t ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec) {
|
|
|
| {
|
| CriticalSectionScoped cs(data_cs_.get());
|
| - send_padding_ = video_codec.numberOfSimulcastStreams > 1;
|
| + simulcast_enabled_ = video_codec.numberOfSimulcastStreams > 1;
|
| }
|
|
|
| // Add a bitrate observer to the allocator and update the start, max and
|
| @@ -402,8 +343,8 @@ int ViEEncoder::GetPaddingNeededBps() const {
|
| int bitrate_bps;
|
| {
|
| CriticalSectionScoped cs(data_cs_.get());
|
| - bool send_padding =
|
| - send_padding_ || video_suspended_ || min_transmit_bitrate_kbps_ > 0;
|
| + bool send_padding = simulcast_enabled_ || video_suspended_ ||
|
| + min_transmit_bitrate_kbps_ > 0;
|
| if (!send_padding)
|
| return 0;
|
| time_of_last_frame_activity_ms = time_of_last_frame_activity_ms_;
|
|
|