Chromium Code Reviews| 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 { |
|
mcasas
2015/06/24 21:23:23
dcheng@ enum class.
I don't understand, do you me
dcheng
2015/06/24 21:41:47
enum class VideoPixelStorage {
CPU,
TEXTURE,
mcasas
2015/06/25 01:19:51
I wrote a bug to do this in the near future, toget
dcheng
2015/06/25 02:02:18
Some comments here would be nice =)
|
| + 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; |