// Copyright 2016 The Chromium Authors // 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 <optional> #include <string> #include <vector> #include "media/base/video_facing.h" #include "media/capture/capture_export.h" namespace media { // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. enum class VideoCaptureApi { … }; // Represents capture device's support for different controls. struct VideoCaptureControlSupport { … }; enum class VideoCaptureTransportType { … }; // LINT.IfChange enum class CameraAvailability { … }; // LINT.ThenChange(//media/capture/mojom/video_capture_types.mojom) // Represents information about a capture device as returned by // VideoCaptureDeviceFactory::GetDeviceDescriptors(). // |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. // TODO(tommi): Given that this struct has become more complex with private // members, methods that are not just direct getters/setters // (e.g., GetNameAndModel), let's turn it into a class in order to properly // conform with the style guide and protect the integrity of the data that the // class owns. struct CAPTURE_EXPORT VideoCaptureDeviceDescriptor { … }; VideoCaptureDeviceDescriptors; } // namespace media #endif // MEDIA_CAPTURE_VIDEO_VIDEO_CAPTURE_DEVICE_DESCRIPTOR_H_