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

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

Issue 2376013002: [Mojo Video Capture] Move conversions between mojom and media types to a separate file (Closed)
Patch Set: mcasas' comments Created 4 years, 2 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
« no previous file with comments | « services/video_capture/video_capture_device_proxy_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/device_client_mojo_to_media_adapter.h"
7 #include "services/video_capture/mojo_media_conversions.h"
7 #include "services/video_capture/video_capture_device_proxy_impl.h" 8 #include "services/video_capture/video_capture_device_proxy_impl.h"
8 9
9 namespace video_capture { 10 namespace video_capture {
10 11
11 VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl( 12 VideoCaptureDeviceProxyImpl::VideoCaptureDeviceProxyImpl(
12 std::unique_ptr<media::VideoCaptureDevice> device) 13 std::unique_ptr<media::VideoCaptureDevice> device)
13 : device_(std::move(device)) {} 14 : device_(std::move(device)) {}
14 15
15 VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() { 16 VideoCaptureDeviceProxyImpl::~VideoCaptureDeviceProxyImpl() {
16 if (device_running_) 17 if (device_running_)
(...skipping 21 matching lines...) Expand all
38 39
39 void VideoCaptureDeviceProxyImpl::Stop() { 40 void VideoCaptureDeviceProxyImpl::Stop() {
40 device_->StopAndDeAllocate(); 41 device_->StopAndDeAllocate();
41 device_running_ = false; 42 device_running_ = false;
42 } 43 }
43 44
44 void VideoCaptureDeviceProxyImpl::OnClientConnectionErrorOrClose() { 45 void VideoCaptureDeviceProxyImpl::OnClientConnectionErrorOrClose() {
45 device_->StopAndDeAllocate(); 46 device_->StopAndDeAllocate();
46 } 47 }
47 48
48 // static
49 media::VideoCaptureFormat VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
50 mojom::VideoCaptureFormatPtr format) {
51 media::VideoCaptureFormat result;
52 result.pixel_format = ConvertFromMojoToMedia(format->pixel_format);
53 result.pixel_storage = ConvertFromMojoToMedia(format->pixel_storage);
54 result.frame_size.SetSize(format->frame_size.width(),
55 format->frame_size.height());
56 result.frame_rate = format->frame_rate;
57 return result;
58 }
59
60 // static
61 media::VideoPixelFormat VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
62 media::mojom::VideoFormat format) {
63 // Since there are static_asserts in place in
64 // media/mojo/common/media_type_converters.cc to guarantee equality of the
65 // underlying representations, we can simply static_cast to convert.
66 return static_cast<media::VideoPixelFormat>(format);
67 }
68
69 // static
70 media::VideoPixelStorage VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
71 mojom::VideoPixelStorage storage) {
72 switch (storage) {
73 case mojom::VideoPixelStorage::CPU:
74 return media::PIXEL_STORAGE_CPU;
75 case mojom::VideoPixelStorage::GPUMEMORYBUFFER:
76 return media::PIXEL_STORAGE_GPUMEMORYBUFFER;
77 }
78 NOTREACHED();
79 return media::PIXEL_STORAGE_CPU;
80 }
81
82 // static
83 media::ResolutionChangePolicy
84 VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
85 mojom::ResolutionChangePolicy policy) {
86 switch (policy) {
87 case mojom::ResolutionChangePolicy::FIXED_RESOLUTION:
88 return media::RESOLUTION_POLICY_FIXED_RESOLUTION;
89 case mojom::ResolutionChangePolicy::FIXED_ASPECT_RATIO:
90 return media::RESOLUTION_POLICY_FIXED_ASPECT_RATIO;
91 case mojom::ResolutionChangePolicy::ANY_WITHIN_LIMIT:
92 return media::RESOLUTION_POLICY_ANY_WITHIN_LIMIT;
93 }
94 NOTREACHED();
95 return media::RESOLUTION_POLICY_FIXED_RESOLUTION;
96 }
97
98 // static
99 media::PowerLineFrequency VideoCaptureDeviceProxyImpl::ConvertFromMojoToMedia(
100 mojom::PowerLineFrequency frequency) {
101 switch (frequency) {
102 case mojom::PowerLineFrequency::DEFAULT:
103 return media::PowerLineFrequency::FREQUENCY_DEFAULT;
104 case mojom::PowerLineFrequency::HZ_50:
105 return media::PowerLineFrequency::FREQUENCY_50HZ;
106 case mojom::PowerLineFrequency::HZ_60:
107 return media::PowerLineFrequency::FREQUENCY_60HZ;
108 }
109 NOTREACHED();
110 return media::PowerLineFrequency::FREQUENCY_DEFAULT;
111 }
112
113 } // namespace video_capture 49 } // namespace video_capture
OLDNEW
« no previous file with comments | « services/video_capture/video_capture_device_proxy_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698