Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(457)

Side by Side Diff: services/video_capture/video_capture_device_proxy_impl.cc

Issue 2238083004: Video Capture Mojo (1.4b): Implement ability to use fake device instance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@FillServicePart1
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/video_capture_device_proxy_impl.h" 7 #include "services/video_capture/video_capture_device_proxy_impl.h"
7 8
8 namespace video_capture { 9 namespace video_capture {
9 10
11 VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl(
12 std::unique_ptr<media::VideoCaptureDevice> device)
13 : device_(std::move(device)) {}
14
15 VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() = default;
16
10 void VideoCaptureDeviceProxyImpl::Start( 17 void VideoCaptureDeviceProxyImpl::Start(
11 mojom::VideoCaptureFormatPtr requested_format, 18 mojom::VideoCaptureFormatPtr requested_format,
12 mojom::ResolutionChangePolicy resolution_change_policy, 19 mojom::ResolutionChangePolicy resolution_change_policy,
13 mojom::PowerLineFrequency power_line_frequency, 20 mojom::PowerLineFrequency power_line_frequency,
14 mojom::VideoCaptureDeviceClientPtr client) { 21 mojom::VideoCaptureDeviceClientPtr client) {
15 NOTIMPLEMENTED(); 22 media::VideoCaptureParams params;
23 params.requested_format = ConvertFromMojoToMedia(std::move(requested_format));
24 params.resolution_change_policy =
25 ConvertFromMojoToMedia(resolution_change_policy);
26 params.power_line_frequency = ConvertFromMojoToMedia(power_line_frequency);
27 auto media_client =
28 base::WrapUnique(new DeviceClientMojoToMediaAdapter(std::move(client)));
29 device_->AllocateAndStart(params, std::move(media_client));
30 }
31
32 // static
33 media::VideoCaptureFormat VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
34 mojom::VideoCaptureFormatPtr format) {
35 media::VideoCaptureFormat result;
36 result.pixel_format = ConvertFromMojoToMedia(format->pixel_format);
37 result.pixel_storage = ConvertFromMojoToMedia(format->pixel_storage);
38 result.frame_size.SetSize(format->frame_size.width(),
39 format->frame_size.height());
40 result.frame_rate = format->frame_rate;
41 return result;
42 }
43
44 // static
45 media::VideoPixelFormat VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
46 media::mojom::VideoFormat format) {
47 // Since there are static_asserts in place in
48 // media/mojo/common/media_type_converters.cc to guarantee equality of the
49 // underlying representations, we can simply static_cast to convert.
50 return static_cast<media::VideoPixelFormat>(format);
51 }
52
53 // static
54 media::VideoPixelStorage VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
55 mojom::VideoPixelStorage storage) {
56 switch (storage) {
57 case mojom::VideoPixelStorage::CPU:
58 return media::PIXEL_STORAGE_CPU;
59 case mojom::VideoPixelStorage::GPUMEMORYBUFFER:
60 return media::PIXEL_STORAGE_GPUMEMORYBUFFER;
61 }
62 }
63
64 // static
65 media::ResolutionChangePolicy
66 VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
67 mojom::ResolutionChangePolicy policy) {
68 switch (policy) {
69 case mojom::ResolutionChangePolicy::FIXED_RESOLUTION:
70 return media::RESOLUTION_POLICY_FIXED_RESOLUTION;
71 case mojom::ResolutionChangePolicy::FIXED_ASPECT_RATIO:
72 return media::RESOLUTION_POLICY_FIXED_ASPECT_RATIO;
73 case mojom::ResolutionChangePolicy::ANY_WITHIN_LIMIT:
74 return media::RESOLUTION_POLICY_ANY_WITHIN_LIMIT;
75 }
76 }
77
78 // static
79 media::PowerLineFrequency VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
80 mojom::PowerLineFrequency frequency) {
81 switch (frequency) {
82 case mojom::PowerLineFrequency::DEFAULT:
83 return media::PowerLineFrequency::FREQUENCY_DEFAULT;
84 case mojom::PowerLineFrequency::HZ_50:
85 return media::PowerLineFrequency::FREQUENCY_50HZ;
86 case mojom::PowerLineFrequency::HZ_60:
87 return media::PowerLineFrequency::FREQUENCY_60HZ;
88 }
16 } 89 }
17 90
18 } // namespace video_capture 91 } // namespace video_capture
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698