| Index: webrtc/video/vie_encoder.cc
|
| diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
|
| index 8adf4d0671dfb42e27d59206bd072c2bec687051..2331d1720fa94a3b5a70cad8c14b5363adc2e747 100644
|
| --- a/webrtc/video/vie_encoder.cc
|
| +++ b/webrtc/video/vie_encoder.cc
|
| @@ -108,6 +108,7 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores,
|
| SendStatisticsProxy* stats_proxy,
|
| I420FrameCallback* pre_encode_callback,
|
| PacedSender* pacer,
|
| + PayloadRouter* payload_router,
|
| BitrateAllocator* bitrate_allocator)
|
| : number_of_cores_(number_of_cores),
|
| vp_(VideoProcessing::Create()),
|
| @@ -115,10 +116,10 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores,
|
| vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(),
|
| this,
|
| qm_callback_.get())),
|
| - send_payload_router_(NULL),
|
| stats_proxy_(stats_proxy),
|
| pre_encode_callback_(pre_encode_callback),
|
| pacer_(pacer),
|
| + send_payload_router_(payload_router),
|
| bitrate_allocator_(bitrate_allocator),
|
| time_of_last_frame_activity_ms_(0),
|
| encoder_config_(),
|
| @@ -135,6 +136,7 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores,
|
| picture_id_rpsi_(0),
|
| video_suspended_(false) {
|
| bitrate_observer_.reset(new ViEBitrateObserver(this));
|
| + module_process_thread_->RegisterModule(vcm_.get());
|
| }
|
|
|
| bool ViEEncoder::Init() {
|
| @@ -152,23 +154,14 @@ bool ViEEncoder::Init() {
|
| return true;
|
| }
|
|
|
| -void ViEEncoder::StartThreadsAndSetSharedMembers(
|
| - rtc::scoped_refptr<PayloadRouter> send_payload_router,
|
| - VCMProtectionCallback* vcm_protection_callback) {
|
| - RTC_DCHECK(send_payload_router_ == NULL);
|
| -
|
| - send_payload_router_ = send_payload_router;
|
| - vcm_->RegisterProtectionCallback(vcm_protection_callback);
|
| - module_process_thread_->RegisterModule(vcm_.get());
|
| +VideoCodingModule* ViEEncoder::vcm() const {
|
| + return vcm_.get();
|
| }
|
|
|
| -void ViEEncoder::StopThreadsAndRemoveSharedMembers() {
|
| +ViEEncoder::~ViEEncoder() {
|
| + module_process_thread_->DeRegisterModule(vcm_.get());
|
| if (bitrate_allocator_)
|
| bitrate_allocator_->RemoveBitrateObserver(bitrate_observer_.get());
|
| - module_process_thread_->DeRegisterModule(vcm_.get());
|
| -}
|
| -
|
| -ViEEncoder::~ViEEncoder() {
|
| }
|
|
|
| void ViEEncoder::SetNetworkTransmissionState(bool is_transmitting) {
|
| @@ -335,7 +328,6 @@ void ViEEncoder::TraceFrameDropEnd() {
|
| }
|
|
|
| void ViEEncoder::DeliverFrame(VideoFrame video_frame) {
|
| - RTC_DCHECK(send_payload_router_ != NULL);
|
| if (!send_payload_router_->active()) {
|
| // We've paused or we have no channels attached, don't waste resources on
|
| // encoding.
|
|
|