OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/logging.h" | 5 #include "base/logging.h" |
6 #include "services/video_capture/device_client_mojo_to_media_adapter.h" | 6 #include "services/video_capture/device_client_mojo_to_media_adapter.h" |
7 #include "services/video_capture/mojo_media_conversions.h" | 7 #include "services/video_capture/mojo_media_conversions.h" |
8 #include "services/video_capture/video_capture_device_proxy_impl.h" | 8 #include "services/video_capture/video_capture_device_proxy_impl.h" |
9 | 9 |
10 namespace video_capture { | 10 namespace video_capture { |
11 | 11 |
12 VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl( | 12 VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl( |
13 std::unique_ptr<media::VideoCaptureDevice> device) | 13 std::unique_ptr<media::VideoCaptureDevice> device) |
14 : device_(std::move(device)) {} | 14 : device_(std::move(device)) {} |
15 | 15 |
16 VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() { | 16 VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() { |
17 if (device_running_) | 17 if (device_running_) |
18 device_->StopAndDeAllocate(); | 18 device_->StopAndDeAllocate(); |
19 } | 19 } |
20 | 20 |
21 void VideoCaptureDeviceProxyImpl::Start( | 21 void VideoCaptureDeviceProxyImpl::Start( |
22 mojom::VideoCaptureFormatPtr requested_format, | 22 const media::VideoCaptureFormat& requested_format, |
23 mojom::ResolutionChangePolicy resolution_change_policy, | 23 mojom::ResolutionChangePolicy resolution_change_policy, |
24 mojom::PowerLineFrequency power_line_frequency, | 24 mojom::PowerLineFrequency power_line_frequency, |
25 mojom::VideoCaptureDeviceClientPtr client) { | 25 mojom::VideoCaptureDeviceClientPtr client) { |
26 media::VideoCaptureParams params; | 26 media::VideoCaptureParams params; |
27 params.requested_format = ConvertFromMojoToMedia(std::move(requested_format)); | 27 params.requested_format = requested_format; |
28 params.resolution_change_policy = | 28 params.resolution_change_policy = |
29 ConvertFromMojoToMedia(resolution_change_policy); | 29 ConvertFromMojoToMedia(resolution_change_policy); |
30 params.power_line_frequency = ConvertFromMojoToMedia(power_line_frequency); | 30 params.power_line_frequency = ConvertFromMojoToMedia(power_line_frequency); |
31 client.set_connection_error_handler( | 31 client.set_connection_error_handler( |
32 base::Bind(&VideoCaptureDeviceProxyImpl::OnClientConnectionErrorOrClose, | 32 base::Bind(&VideoCaptureDeviceProxyImpl::OnClientConnectionErrorOrClose, |
33 base::Unretained(this))); | 33 base::Unretained(this))); |
34 auto media_client = | 34 auto media_client = |
35 base::MakeUnique<DeviceClientMojoToMediaAdapter>(std::move(client)); | 35 base::MakeUnique<DeviceClientMojoToMediaAdapter>(std::move(client)); |
36 device_->AllocateAndStart(params, std::move(media_client)); | 36 device_->AllocateAndStart(params, std::move(media_client)); |
37 device_running_ = true; | 37 device_running_ = true; |
38 } | 38 } |
39 | 39 |
40 void VideoCaptureDeviceProxyImpl::Stop() { | 40 void VideoCaptureDeviceProxyImpl::Stop() { |
41 device_->StopAndDeAllocate(); | 41 device_->StopAndDeAllocate(); |
42 device_running_ = false; | 42 device_running_ = false; |
43 } | 43 } |
44 | 44 |
45 void VideoCaptureDeviceProxyImpl::OnClientConnectionErrorOrClose() { | 45 void VideoCaptureDeviceProxyImpl::OnClientConnectionErrorOrClose() { |
46 device_->StopAndDeAllocate(); | 46 device_->StopAndDeAllocate(); |
47 } | 47 } |
48 | 48 |
49 } // namespace video_capture | 49 } // namespace video_capture |
OLD | NEW |