Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: media/base/video_capture_types.h

Issue 1204063005: Reland: Video Capture: extract storage info from pixel format in VideoCaptureFormat. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: dcheng@s https://codereview.chromium.org/1210743003/#ps20001 Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698