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

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

Issue 2244773002: Video Capture Mojo (1.4c): Handle Subsequent Access (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@FillServicePart2
Patch Set: rockot's comments Created 4 years, 3 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/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
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
OLDNEW
« no previous file with comments | « services/video_capture/video_capture_device_proxy_impl.h ('k') | services/video_capture/video_capture_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698