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..99b2ef843ea3ef0e09dde0b20c1ab8dc7e174106 100644 |
--- a/media/base/video_capture_types.h |
+++ b/media/base/video_capture_types.h |
@@ -18,6 +18,8 @@ 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. |
+// TODO(mcasas): http://crbug.com/504160 Consider making this an enum class. |
enum VideoPixelFormat { |
PIXEL_FORMAT_I420, |
PIXEL_FORMAT_YV12, |
@@ -29,12 +31,21 @@ 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. |
+// TODO(mcasas): http://crbug.com/504160 Consider making this an enum class. |
+enum VideoPixelStorage { |
+ PIXEL_STORAGE_CPU, |
+ PIXEL_STORAGE_TEXTURE, |
+ PIXEL_STORAGE_GPUMEMORYBUFFER, |
+ PIXEL_STORAGE_MAX = 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 +82,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 +109,7 @@ struct MEDIA_EXPORT VideoCaptureFormat { |
gfx::Size frame_size; |
float frame_rate; |
VideoPixelFormat pixel_format; |
+ VideoPixelStorage pixel_storage; |
}; |
typedef std::vector<VideoCaptureFormat> VideoCaptureFormats; |