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

Unified Diff: media/capture/video/video_capture_device_descriptor.h

Issue 2169013002: Change class VideoCaptureDevice::Name to struct VideoCaptureDeviceDescriptor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed mcasas' comments Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
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..480d93e50d018e11886f05a7415a2764d65adc44
--- /dev/null
+++ b/media/capture/video/video_capture_device_descriptor.h
@@ -0,0 +1,95 @@
+// 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 VideoCaptureApi {
+ 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,
+ UNKNOWN
+};
+
+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 {
+ public:
+ VideoCaptureDeviceDescriptor();
+ VideoCaptureDeviceDescriptor(const std::string friendly_name,
emircan 2016/07/28 21:23:02 const std::string& friendly_name and below. Also,
chfremer 2016/07/29 18:09:51 Done.
+ const std::string device_id,
+ VideoCaptureApi capture_api);
+ VideoCaptureDeviceDescriptor(const std::string friendly_name,
+ const std::string device_id,
+ const std::string model_id,
+ VideoCaptureApi capture_api);
+ VideoCaptureDeviceDescriptor(const std::string friendly_name,
+ const std::string device_id,
+ VideoCaptureApi capture_api,
+ VideoCaptureTransportType transport_type);
+ VideoCaptureDeviceDescriptor(const std::string friendly_name,
+ const std::string device_id,
+ const std::string model_id,
+ VideoCaptureApi capture_api,
+ VideoCaptureTransportType transport_type);
+ VideoCaptureDeviceDescriptor(const VideoCaptureDeviceDescriptor& other);
+ ~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;
+ // Friendly name of a device, plus the model identifier in parentheses.
+ std::string GetNameAndModel() const;
+
+ std::string friendly_name; // Name that is intended for display in the UI
+ std::string device_id;
+ // A unique hardware identifier of the capture device.
+ // It is of the form "[vid]:[pid]" when a USB device is detected, and empty
+ // otherwise.
+ std::string model_id;
+
+ VideoCaptureApi capture_api;
+ VideoCaptureTransportType transport_type;
+};
+
+using VideoCaptureDeviceDescriptors = std::list<VideoCaptureDeviceDescriptor>;
+
+} // namespace media
+
+#endif // MEDIA_CAPTURE_VIDEO_VIDEO_CAPTURE_DEVICE_DESCRIPTOR_H_

Powered by Google App Engine
This is Rietveld 408576698