| 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/video_capture_device_proxy_impl.h" | 7 #include "services/video_capture/video_capture_device_proxy_impl.h" |
| 8 | 8 |
| 9 namespace video_capture { | 9 namespace video_capture { |
| 10 | 10 |
| 11 VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl( | 11 VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl( |
| 12 std::unique_ptr<media::VideoCaptureDevice> device) | 12 std::unique_ptr<media::VideoCaptureDevice> device) |
| 13 : device_(std::move(device)) {} | 13 : device_(std::move(device)) {} |
| 14 | 14 |
| 15 VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() = default; | 15 VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() { |
| 16 if (device_running_) |
| 17 device_->StopAndDeAllocate(); |
| 18 } |
| 16 | 19 |
| 17 void VideoCaptureDeviceProxyImpl::Start( | 20 void VideoCaptureDeviceProxyImpl::Start( |
| 18 mojom::VideoCaptureFormatPtr requested_format, | 21 mojom::VideoCaptureFormatPtr requested_format, |
| 19 mojom::ResolutionChangePolicy resolution_change_policy, | 22 mojom::ResolutionChangePolicy resolution_change_policy, |
| 20 mojom::PowerLineFrequency power_line_frequency, | 23 mojom::PowerLineFrequency power_line_frequency, |
| 21 mojom::VideoCaptureDeviceClientPtr client) { | 24 mojom::VideoCaptureDeviceClientPtr client) { |
| 22 media::VideoCaptureParams params; | 25 media::VideoCaptureParams params; |
| 23 params.requested_format = ConvertFromMojoToMedia(std::move(requested_format)); | 26 params.requested_format = ConvertFromMojoToMedia(std::move(requested_format)); |
| 24 params.resolution_change_policy = | 27 params.resolution_change_policy = |
| 25 ConvertFromMojoToMedia(resolution_change_policy); | 28 ConvertFromMojoToMedia(resolution_change_policy); |
| 26 params.power_line_frequency = ConvertFromMojoToMedia(power_line_frequency); | 29 params.power_line_frequency = ConvertFromMojoToMedia(power_line_frequency); |
| 27 auto media_client = | 30 auto media_client = |
| 28 base::WrapUnique(new DeviceClientMojoToMediaAdapter(std::move(client))); | 31 base::WrapUnique(new DeviceClientMojoToMediaAdapter(std::move(client))); |
| 29 device_->AllocateAndStart(params, std::move(media_client)); | 32 device_->AllocateAndStart(params, std::move(media_client)); |
| 33 device_running_ = true; |
| 34 } |
| 35 |
| 36 void VideoCaptureDeviceProxyImpl::Stop() { |
| 37 device_->StopAndDeAllocate(); |
| 38 device_running_ = false; |
| 30 } | 39 } |
| 31 | 40 |
| 32 // static | 41 // static |
| 33 media::VideoCaptureFormat VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia( | 42 media::VideoCaptureFormat VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia( |
| 34 mojom::VideoCaptureFormatPtr format) { | 43 mojom::VideoCaptureFormatPtr format) { |
| 35 media::VideoCaptureFormat result; | 44 media::VideoCaptureFormat result; |
| 36 result.pixel_format = ConvertFromMojoToMedia(format->pixel_format); | 45 result.pixel_format = ConvertFromMojoToMedia(format->pixel_format); |
| 37 result.pixel_storage = ConvertFromMojoToMedia(format->pixel_storage); | 46 result.pixel_storage = ConvertFromMojoToMedia(format->pixel_storage); |
| 38 result.frame_size.SetSize(format->frame_size.width(), | 47 result.frame_size.SetSize(format->frame_size.width(), |
| 39 format->frame_size.height()); | 48 format->frame_size.height()); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 case mojom::PowerLineFrequency::HZ_50: | 97 case mojom::PowerLineFrequency::HZ_50: |
| 89 return media::PowerLineFrequency::FREQUENCY_50HZ; | 98 return media::PowerLineFrequency::FREQUENCY_50HZ; |
| 90 case mojom::PowerLineFrequency::HZ_60: | 99 case mojom::PowerLineFrequency::HZ_60: |
| 91 return media::PowerLineFrequency::FREQUENCY_60HZ; | 100 return media::PowerLineFrequency::FREQUENCY_60HZ; |
| 92 } | 101 } |
| 93 NOTREACHED(); | 102 NOTREACHED(); |
| 94 return media::PowerLineFrequency::FREQUENCY_DEFAULT; | 103 return media::PowerLineFrequency::FREQUENCY_DEFAULT; |
| 95 } | 104 } |
| 96 | 105 |
| 97 } // namespace video_capture | 106 } // namespace video_capture |
| OLD | NEW |