Index: webrtc/video/vie_encoder.cc |
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc |
index a9b2abbcab16da01ec5f8a6d3cfd317d529c6674..20cfaffb62bd943f5c04c4054e162e0eb438d0a6 100644 |
--- a/webrtc/video/vie_encoder.cc |
+++ b/webrtc/video/vie_encoder.cc |
@@ -110,6 +110,7 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores, |
I420FrameCallback* pre_encode_callback, |
OveruseFrameDetector* overuse_detector, |
PacedSender* pacer, |
+ PayloadRouter* payload_router, |
BitrateAllocator* bitrate_allocator) |
: number_of_cores_(number_of_cores), |
vp_(VideoProcessing::Create()), |
@@ -117,11 +118,11 @@ 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), |
overuse_detector_(overuse_detector), |
pacer_(pacer), |
+ send_payload_router_(payload_router), |
bitrate_allocator_(bitrate_allocator), |
time_of_last_frame_activity_ms_(0), |
encoder_config_(), |
@@ -138,6 +139,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() { |
@@ -155,23 +157,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) { |
@@ -338,7 +331,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. |