Chromium Code Reviews| Index: content/renderer/media/video_capture_module_impl.cc |
| =================================================================== |
| --- content/renderer/media/video_capture_module_impl.cc (revision 101731) |
| +++ content/renderer/media/video_capture_module_impl.cc (working copy) |
| @@ -4,6 +4,7 @@ |
| #include "content/renderer/media/video_capture_module_impl.h" |
| +#include "base/atomicops.h" |
| #include "content/renderer/media/video_capture_impl_manager.h" |
| // static |
| @@ -27,7 +28,8 @@ |
| frame_rate_(-1), |
| video_type_(webrtc::kVideoI420), |
| capture_engine_(NULL), |
| - pending_start_(false) { |
| + pending_start_(false), |
| + ref_count_(0) { |
| DCHECK(vc_manager_); |
| Init(); |
| } |
| @@ -43,6 +45,21 @@ |
| capture_engine_ = vc_manager_->AddDevice(session_id_, this); |
| } |
| +int32_t VideoCaptureModuleImpl::AddRef() { |
| + VLOG(1) << "VideoCaptureModuleImpl::AddRef()"; |
|
scherkus (not reviewing)
2011/09/19 17:42:54
I'd get rid of these VLOGs -- they don't add much
|
| + return base::subtle::Barrier_AtomicIncrement(&ref_count_, 1); |
| +} |
| + |
| +int32_t VideoCaptureModuleImpl::Release() { |
| + VLOG(1) << "VideoCaptureModuleImpl::Release()"; |
|
scherkus (not reviewing)
2011/09/19 17:42:54
ditto
|
| + int ret = base::subtle::Barrier_AtomicIncrement(&ref_count_, -1); |
| + if (ret == 0) { |
| + VLOG(1) << "Reference count is zero, hence this object is now deleted."; |
| + delete this; |
| + } |
| + return ret; |
| +} |
| + |
| WebRtc_Word32 VideoCaptureModuleImpl::StartCapture( |
| const webrtc::VideoCaptureCapability& capability) { |
| message_loop_proxy_->PostTask( |