| Index: services/video_capture/video_capture_device_proxy_impl.cc
|
| diff --git a/services/video_capture/video_capture_device_proxy_impl.cc b/services/video_capture/video_capture_device_proxy_impl.cc
|
| index 56a3f7f2726fa8d6a72d9998fc10e5542f8631dd..0fed69ffd3ed27565a6c8ddf4f46084710f467b8 100644
|
| --- a/services/video_capture/video_capture_device_proxy_impl.cc
|
| +++ b/services/video_capture/video_capture_device_proxy_impl.cc
|
| @@ -10,9 +10,12 @@ namespace video_capture {
|
|
|
| VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl(
|
| std::unique_ptr<media::VideoCaptureDevice> device)
|
| - : device_(std::move(device)) {}
|
| + : device_(std::move(device)), device_running_(false) {}
|
|
|
| -VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() = default;
|
| +VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() {
|
| + if (device_running_)
|
| + device_->StopAndDeAllocate();
|
| +}
|
|
|
| void VideoCaptureDeviceProxyImpl::Start(
|
| mojom::VideoCaptureFormatPtr requested_format,
|
| @@ -27,6 +30,12 @@ void VideoCaptureDeviceProxyImpl::Start(
|
| auto media_client =
|
| base::WrapUnique(new DeviceClientMojoToMediaAdapter(std::move(client)));
|
| device_->AllocateAndStart(params, std::move(media_client));
|
| + device_running_ = true;
|
| +}
|
| +
|
| +void VideoCaptureDeviceProxyImpl::Stop() {
|
| + device_->StopAndDeAllocate();
|
| + device_running_ = false;
|
| }
|
|
|
| // static
|
|
|