| Index: media/base/video_capture_types.h
|
| diff --git a/media/base/video_capture_types.h b/media/base/video_capture_types.h
|
| index 520dafda38d7e99b7bf9f30e8d4edce22badfcd2..1d85aa0cb0a2d031d75cfc60445b6a7cd1e5cbdb 100644
|
| --- a/media/base/video_capture_types.h
|
| +++ b/media/base/video_capture_types.h
|
| @@ -18,6 +18,7 @@ namespace media {
|
| typedef int VideoCaptureSessionId;
|
|
|
| // Color formats from camera. This list is sorted in order of preference.
|
| +// TODO(mcasas): Consider if this list can be merged with media::Format.
|
| enum VideoPixelFormat {
|
| PIXEL_FORMAT_I420,
|
| PIXEL_FORMAT_YV12,
|
| @@ -29,12 +30,19 @@ enum VideoPixelFormat {
|
| PIXEL_FORMAT_RGB32,
|
| PIXEL_FORMAT_ARGB,
|
| PIXEL_FORMAT_MJPEG,
|
| - PIXEL_FORMAT_TEXTURE, // Capture format as a GL texture.
|
| - PIXEL_FORMAT_GPUMEMORYBUFFER,
|
| PIXEL_FORMAT_UNKNOWN, // Color format not set.
|
| PIXEL_FORMAT_MAX,
|
| };
|
|
|
| +// Storage type for the pixels. In principle, all combinations of Storage and
|
| +// Format are possible, though some are very typical, such as texture + ARGB,
|
| +// and others are only available if the platform allows it e.g. GpuMemoryBuffer.
|
| +enum VideoPixelStorage {
|
| + PIXEL_STORAGE_CPU,
|
| + PIXEL_STORAGE_TEXTURE,
|
| + PIXEL_STORAGE_GPUMEMORYBUFFER,
|
| +};
|
| +
|
| // 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
|
| @@ -71,9 +79,15 @@ struct MEDIA_EXPORT VideoCaptureFormat {
|
| VideoCaptureFormat(const gfx::Size& frame_size,
|
| float frame_rate,
|
| VideoPixelFormat pixel_format);
|
| + VideoCaptureFormat(const gfx::Size& frame_size,
|
| + float frame_rate,
|
| + VideoPixelFormat pixel_format,
|
| + VideoPixelStorage pixel_storage);
|
|
|
| + // TODO(mcasas): Remove this method http://crbug.com/501134.
|
| std::string ToString() const;
|
| static std::string PixelFormatToString(VideoPixelFormat format);
|
| + static std::string PixelStorageToString(VideoPixelStorage storage);
|
|
|
| // Returns the required buffer size to hold an image of a given
|
| // VideoCaptureFormat with no padding and tightly packed.
|
| @@ -92,6 +106,7 @@ struct MEDIA_EXPORT VideoCaptureFormat {
|
| gfx::Size frame_size;
|
| float frame_rate;
|
| VideoPixelFormat pixel_format;
|
| + VideoPixelStorage pixel_storage;
|
| };
|
|
|
| typedef std::vector<VideoCaptureFormat> VideoCaptureFormats;
|
|
|