Chromium Code Reviews| Index: content/renderer/media/media_stream_video_capturer_source.cc |
| diff --git a/content/renderer/media/media_stream_video_capturer_source.cc b/content/renderer/media/media_stream_video_capturer_source.cc |
| index 7dcd92e3739cf489ae30fc508834d41693bf74f5..cbb706d498050cf74dd7b9fd00457dbe840e3a2c 100644 |
| --- a/content/renderer/media/media_stream_video_capturer_source.cc |
| +++ b/content/renderer/media/media_stream_video_capturer_source.cc |
| @@ -41,7 +41,8 @@ VideoCapturerDelegate::VideoCapturerDelegate( |
| const StreamDeviceInfo& device_info) |
| : session_id_(device_info.session_id), |
| is_screen_cast_(device_info.device.type == MEDIA_TAB_VIDEO_CAPTURE || |
| - device_info.device.type == MEDIA_DESKTOP_VIDEO_CAPTURE) { |
| + device_info.device.type == MEDIA_DESKTOP_VIDEO_CAPTURE), |
| + weak_factory_(this) { |
| DVLOG(3) << "VideoCapturerDelegate::ctor"; |
| // NULL in unit test. |
| @@ -54,6 +55,7 @@ VideoCapturerDelegate::VideoCapturerDelegate( |
| } |
| VideoCapturerDelegate::~VideoCapturerDelegate() { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| DVLOG(3) << "VideoCapturerDelegate::dtor"; |
| if (!release_device_cb_.is_null()) |
| release_device_cb_.Run(); |
| @@ -92,11 +94,13 @@ void VideoCapturerDelegate::GetCurrentSupportedFormats( |
| return; |
| DCHECK(source_formats_callback_.is_null()); |
| source_formats_callback_ = callback; |
| + |
|
magjed_chromium
2015/01/09 11:15:53
Is this new empty line on purpose?
perkj_chrome
2015/01/09 11:43:59
Done.
|
| manager->GetDeviceFormatsInUse( |
| session_id_, |
| media::BindToCurrentLoop( |
| base::Bind( |
| - &VideoCapturerDelegate::OnDeviceFormatsInUseReceived, this))); |
| + &VideoCapturerDelegate::OnDeviceFormatsInUseReceived, |
| + weak_factory_.GetWeakPtr()))); |
| } |
| void VideoCapturerDelegate::StartCapture( |
| @@ -119,7 +123,8 @@ void VideoCapturerDelegate::StartCapture( |
| session_id_, |
| params, |
| media::BindToCurrentLoop(base::Bind( |
| - &VideoCapturerDelegate::OnStateUpdateOnRenderThread, this)), |
| + &VideoCapturerDelegate::OnStateUpdateOnRenderThread, |
| + weak_factory_.GetWeakPtr())), |
| new_frame_callback); |
| } |
| @@ -171,12 +176,14 @@ void VideoCapturerDelegate::OnDeviceFormatsInUseReceived( |
| RenderThreadImpl::current()->video_capture_impl_manager(); |
| if (!manager) |
| return; |
| + |
|
magjed_chromium
2015/01/09 11:15:53
Two new empty lines.
perkj_chrome
2015/01/09 11:43:59
Done.
|
| + |
| manager->GetDeviceSupportedFormats( |
| session_id_, |
| media::BindToCurrentLoop( |
| base::Bind( |
| &VideoCapturerDelegate::OnDeviceSupportedFormatsEnumerated, |
| - this))); |
| + weak_factory_.GetWeakPtr()))); |
| } |
| void VideoCapturerDelegate::OnDeviceSupportedFormatsEnumerated( |
| @@ -209,8 +216,8 @@ void VideoCapturerDelegate::OnDeviceSupportedFormatsEnumerated( |
| MediaStreamVideoCapturerSource::MediaStreamVideoCapturerSource( |
| const StreamDeviceInfo& device_info, |
| const SourceStoppedCallback& stop_callback, |
| - const scoped_refptr<VideoCapturerDelegate>& delegate) |
| - : delegate_(delegate) { |
| + scoped_ptr<VideoCapturerDelegate> delegate) |
| + : delegate_(delegate.Pass()) { |
| SetDeviceInfo(device_info); |
| SetStopCallback(stop_callback); |
| } |