| 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/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 Loading... |
| 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 |
| OLD | NEW |