Chromium Code Reviews| Index: media/capture/video/video_capture_device_descriptor.h |
| diff --git a/media/capture/video/video_capture_device_descriptor.h b/media/capture/video/video_capture_device_descriptor.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..9de3782388acc597bd1698ada2fcd736a49da140 |
| --- /dev/null |
| +++ b/media/capture/video/video_capture_device_descriptor.h |
| @@ -0,0 +1,75 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef MEDIA_CAPTURE_VIDEO_VIDEO_CAPTURE_DEVICE_DESCRIPTOR_H_ |
| +#define MEDIA_CAPTURE_VIDEO_VIDEO_CAPTURE_DEVICE_DESCRIPTOR_H_ |
| + |
| +#include <list> |
| +#include <string> |
| + |
| +#include "media/capture/capture_export.h" |
| + |
| +namespace media { |
| + |
| +// A Java counterpart will be generated for this enum. |
| +// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media |
| +enum class VideoCaptureApiType { |
|
mcasas
2016/07/26 23:52:03
s/VideoCaptureApiType/VideoCaptureAPI/ (or Api)
T
chfremer
2016/07/27 23:10:18
Done.
|
| + LINUX_V4L2_SINGLE_PLANE, |
| + WINDOWS_MEDIA_FOUNDATION, |
| + WINDOWS_DIRECT_SHOW, |
| + MACOSX_AVFOUNDATION, |
| + MACOSX_DECKLINK, |
| + ANDROID_API1, |
| + ANDROID_API2_LEGACY, |
| + ANDROID_API2_FULL, |
| + ANDROID_API2_LIMITED, |
| + ANDROID_TANGO, |
| + API_TYPE_UNKNOWN |
|
mcasas
2016/07/26 23:52:04
Since it's an enum class, the name will
always pre
chfremer
2016/07/27 23:10:17
Done.
|
| +}; |
| + |
| +enum class VideoCaptureTransportType { |
| + // For AVFoundation Api, identify devices that are built-in or USB. |
| + MACOSX_USB_OR_BUILT_IN, |
| + OTHER_TRANSPORT |
| +}; |
| + |
| +// Represents information about a capture device as returned by |
| +// VideoCaptureDeviceFactory::EnumerateDeviceDescriptors(). |
| +// |device_id| represents a unique id of a physical device. Since the same |
| +// physical device may be accessible through different APIs |capture_api| |
| +// disambiguates the API. |
| +struct CAPTURE_EXPORT VideoCaptureDeviceDescriptor { |
|
mcasas
2016/07/26 23:52:04
I'd err on the side of making this a class [1]
[1
chfremer
2016/07/27 23:10:18
After reviewing the styleguide, I still feel struc
mcasas
2016/07/28 00:05:42
Hmm I'll leave the decision to you.
chfremer
2016/07/29 18:09:50
Okay, then I'll leave it a struct for now.
|
| + public: |
| + VideoCaptureDeviceDescriptor(); |
| + VideoCaptureDeviceDescriptor(const std::string friendly_name, |
| + const std::string device_id, |
| + VideoCaptureApiType capture_api); |
| + VideoCaptureDeviceDescriptor(const VideoCaptureDeviceDescriptor& other); |
|
mcasas
2016/07/26 23:52:04
We used to have a ctor with a |transport_type|
arg
chfremer
2016/07/27 23:10:18
True. I had removed all constructors for initializ
|
| + ~VideoCaptureDeviceDescriptor(); |
| + |
| + // These operators are needed due to storing the name in an STL container. |
| + // In the shared build, all methods from the STL container will be exported |
| + // so even though they're not used, they're still depended upon. |
| + bool operator==(const VideoCaptureDeviceDescriptor& other) const { |
| + return (other.device_id == device_id) && (other.capture_api == capture_api); |
| + } |
| + bool operator<(const VideoCaptureDeviceDescriptor& other) const { |
| + if (device_id < other.device_id) |
| + return true; |
| + return capture_api < other.capture_api; |
| + } |
| + |
| + const char* GetCaptureApiTypeString() const; |
| + |
| + std::string friendly_name; // Name that is intended for display in the UI |
| + std::string device_id; |
| + VideoCaptureApiType capture_api; |
|
mcasas
2016/07/26 23:52:04
Make this three const?
And, if possible, |transpo
chfremer
2016/07/27 23:10:18
We need the ability to assign values when we fill
mcasas
2016/07/28 00:05:42
Acknowledged.
|
| + VideoCaptureTransportType transport_type; |
| +}; |
| + |
| +typedef std::list<VideoCaptureDeviceDescriptor> VideoCaptureDeviceDescriptors; |
|
mcasas
2016/07/26 23:52:03
using VideoCaptureDeviceDescriptors = std::list<Vi
mcasas
2016/07/28 00:05:42
ping
chfremer
2016/07/29 18:09:50
Done.
|
| + |
| +} // namespace media |
| + |
| +#endif // MEDIA_CAPTURE_VIDEO_VIDEO_CAPTURE_DEVICE_DESCRIPTOR_H_ |