diff --git a/webrtc/video/video_capture_input.cc b/webrtc/video/video_capture_input.cc index 92d1c8fb98..25d408b4aa 100644 --- a/webrtc/video/video_capture_input.cc +++ b/webrtc/video/video_capture_input.cc @@ -40,10 +40,10 @@ VideoCaptureInput::VideoCaptureInput(ProcessThread* module_process_thread, local_renderer_(local_renderer), stats_proxy_(stats_proxy), incoming_frame_cs_(CriticalSectionWrapper::CreateCriticalSection()), - capture_thread_(ThreadWrapper::CreateThread(CaptureThreadFunction, + encoder_thread_(ThreadWrapper::CreateThread(EncoderThreadFunction, this, - "CaptureThread")), - capture_event_(*EventWrapper::Create()), + "EncoderThread")), + capture_event_(EventWrapper::Create()), stop_(0), last_captured_timestamp_(0), delta_ntp_internal_ms_( @@ -53,8 +53,8 @@ VideoCaptureInput::VideoCaptureInput(ProcessThread* module_process_thread, CpuOveruseOptions(), overuse_observer, stats_proxy)) { - capture_thread_->Start(); - capture_thread_->SetPriority(kHighPriority); + encoder_thread_->Start(); + encoder_thread_->SetPriority(kHighPriority); module_process_thread_->RegisterModule(overuse_detector_.get()); } @@ -63,11 +63,8 @@ VideoCaptureInput::~VideoCaptureInput() { // Stop the thread. rtc::AtomicOps::ReleaseStore(&stop_, 1); - capture_event_.Set(); - - // Stop the camera input. - capture_thread_->Stop(); - delete &capture_event_; + capture_event_->Set(); + encoder_thread_->Stop(); } void VideoCaptureInput::IncomingCapturedFrame(const VideoFrame& video_frame) { @@ -118,17 +115,17 @@ void VideoCaptureInput::IncomingCapturedFrame(const VideoFrame& video_frame) { TRACE_EVENT_ASYNC_BEGIN1("webrtc", "Video", video_frame.render_time_ms(), "render_time", video_frame.render_time_ms()); - capture_event_.Set(); + capture_event_->Set(); } -bool VideoCaptureInput::CaptureThreadFunction(void* obj) { - return static_cast(obj)->CaptureProcess(); +bool VideoCaptureInput::EncoderThreadFunction(void* obj) { + return static_cast(obj)->EncoderProcess(); } -bool VideoCaptureInput::CaptureProcess() { +bool VideoCaptureInput::EncoderProcess() { static const int kThreadWaitTimeMs = 100; int64_t capture_time = -1; - if (capture_event_.Wait(kThreadWaitTimeMs) == kEventSignaled) { + if (capture_event_->Wait(kThreadWaitTimeMs) == kEventSignaled) { if (rtc::AtomicOps::AcquireLoad(&stop_)) return false; diff --git a/webrtc/video/video_capture_input.h b/webrtc/video/video_capture_input.h index 6cbcac5e90..e2ef07ec65 100644 --- a/webrtc/video/video_capture_input.h +++ b/webrtc/video/video_capture_input.h @@ -62,8 +62,8 @@ class VideoCaptureInput : public webrtc::VideoCaptureInput { private: // Thread functions for deliver captured frames to receivers. - static bool CaptureThreadFunction(void* obj); - bool CaptureProcess(); + static bool EncoderThreadFunction(void* obj); + bool EncoderProcess(); void DeliverI420Frame(VideoFrame* video_frame); @@ -78,10 +78,8 @@ class VideoCaptureInput : public webrtc::VideoCaptureInput { rtc::scoped_ptr incoming_frame_cs_; VideoFrame incoming_frame_; - // Capture thread. - rtc::scoped_ptr capture_thread_; - // TODO(pbos): scoped_ptr - EventWrapper& capture_event_; + rtc::scoped_ptr encoder_thread_; + rtc::scoped_ptr capture_event_; volatile int stop_;