// Copyright 2012 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_CAPTURE_TYPES_H_ #define MEDIA_CAPTURE_VIDEO_CAPTURE_TYPES_H_ #include <stddef.h> #include <vector> #include "base/unguessable_token.h" #include "build/build_config.h" #include "media/base/video_types.h" #include "media/capture/capture_export.h" #include "ui/gfx/geometry/size.h" namespace media { // TODO(wjia): this type should be defined in a common place and // shared with device manager. VideoCaptureSessionId; // Policies for capture devices that have source content that varies in size. // It is up to the implementation how the captured content will be transformed // (e.g., scaling and/or letterboxing) in order to produce video frames that // strictly adheree to one of these policies. enum class ResolutionChangePolicy { … }; // Potential values of the googPowerLineFrequency optional constraint passed to // getUserMedia. Note that the numeric values are currently significant, and are // used to map enum values to corresponding frequency values. enum class PowerLineFrequency { … }; enum class VideoCaptureBufferType { … }; // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. enum class VideoCaptureError { … }; // WARNING: Do not change the values assigned to the entries. They are used for // UMA logging. enum class VideoCaptureFrameDropReason { … }; // Assert that the int:frequency mapping is correct. static_assert …; static_assert …; static_assert …; // Some drivers use rational time per frame instead of float frame rate, this // constant k is used to convert between both: A fps -> [k/k*A] seconds/frame. const int kFrameRatePrecision = …; // Video capture format specification. // This class is used by the video capture device to specify the format of every // frame captured and returned to a client. It is also used to specify a // supported capture format by a device. struct CAPTURE_EXPORT VideoCaptureFormat { … }; VideoCaptureFormats; // Parameters for starting video capture. // This class is used by the client of a video capture device to specify the // format of frames in which the client would like to have captured frames // returned. struct CAPTURE_EXPORT VideoCaptureParams { … }; CAPTURE_EXPORT std::ostream& operator<<( std::ostream& os, const VideoCaptureParams::SuggestedConstraints& constraints); } // namespace media #endif // MEDIA_CAPTURE_VIDEO_CAPTURE_TYPES_H_