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 #ifndef SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_IMPL_H_ | 5 #ifndef SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_IMPL_H_ |
6 #define SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_IMPL_H_ | 6 #define SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_IMPL_H_ |
7 | 7 |
| 8 #include "media/capture/video/video_capture_device.h" |
8 #include "services/video_capture/public/interfaces/video_capture_device_proxy.mo
jom.h" | 9 #include "services/video_capture/public/interfaces/video_capture_device_proxy.mo
jom.h" |
9 | 10 |
10 namespace video_capture { | 11 namespace video_capture { |
11 | 12 |
12 // Implementation of mojom::VideoCaptureDeviceProxy backed by a given instance | 13 // Implementation of mojom::VideoCaptureDeviceProxy backed by a given instance |
13 // of media::VideoCaptureDevice. | 14 // of media::VideoCaptureDevice. |
14 class VideoCaptureDeviceProxyImpl : public mojom::VideoCaptureDeviceProxy { | 15 class VideoCaptureDeviceProxyImpl : public mojom::VideoCaptureDeviceProxy { |
15 public: | 16 public: |
| 17 VideoCaptureDeviceProxyImpl( |
| 18 std::unique_ptr<media::VideoCaptureDevice> device); |
| 19 ~VideoCaptureDeviceProxyImpl() override; |
| 20 |
16 // mojom::VideoCaptureDeviceProxy: | 21 // mojom::VideoCaptureDeviceProxy: |
17 void Start(mojom::VideoCaptureFormatPtr requested_format, | 22 void Start(mojom::VideoCaptureFormatPtr requested_format, |
18 mojom::ResolutionChangePolicy resolution_change_policy, | 23 mojom::ResolutionChangePolicy resolution_change_policy, |
19 mojom::PowerLineFrequency power_line_frequency, | 24 mojom::PowerLineFrequency power_line_frequency, |
20 mojom::VideoCaptureDeviceClientPtr client) override; | 25 mojom::VideoCaptureDeviceClientPtr client) override; |
| 26 |
| 27 // TODO(chfremer): Consider using Mojo type mapping instead of conversion |
| 28 // methods. |
| 29 // https://crbug.com/642387 |
| 30 static media::VideoCaptureFormat ConvertFromMojoToMedia( |
| 31 mojom::VideoCaptureFormatPtr format); |
| 32 static media::VideoPixelFormat ConvertFromMojoToMedia( |
| 33 media::mojom::VideoFormat format); |
| 34 static media::VideoPixelStorage ConvertFromMojoToMedia( |
| 35 mojom::VideoPixelStorage storage); |
| 36 static media::ResolutionChangePolicy ConvertFromMojoToMedia( |
| 37 mojom::ResolutionChangePolicy policy); |
| 38 static media::PowerLineFrequency ConvertFromMojoToMedia( |
| 39 mojom::PowerLineFrequency frequency); |
| 40 |
| 41 private: |
| 42 std::unique_ptr<media::VideoCaptureDevice> device_; |
21 }; | 43 }; |
22 | 44 |
23 } // namespace video_capture | 45 } // namespace video_capture |
24 | 46 |
25 #endif // SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_IMPL_H_ | 47 #endif // SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_IMPL_H_ |
OLD | NEW |