| Index: media/video/capture/video_capture_device.h
|
| diff --git a/media/video/capture/video_capture_device.h b/media/video/capture/video_capture_device.h
|
| index 747f1b00d3a6a98e74ab4d3091e84d9cf13e792c..874b926c3fbdf69f6ca1969c05e9239e8b13075e 100644
|
| --- a/media/video/capture/video_capture_device.h
|
| +++ b/media/video/capture/video_capture_device.h
|
| @@ -41,7 +41,14 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
| Name();
|
| Name(const std::string& name, const std::string& id);
|
|
|
| -#if defined(OS_WIN)
|
| +#if defined(OS_LINUX)
|
| + // Linux/CrOS targets Capture Api type: it can only be set on construction.
|
| + enum CaptureApiType {
|
| + V4L2_SINGLE_PLANE,
|
| + V4L2_MULTI_PLANE,
|
| + API_TYPE_UNKNOWN
|
| + };
|
| +#elif defined(OS_WIN)
|
| // Windows targets Capture Api type: it can only be set on construction.
|
| enum CaptureApiType {
|
| MEDIA_FOUNDATION,
|
| @@ -49,8 +56,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
| DIRECT_SHOW_WDM_CROSSBAR,
|
| API_TYPE_UNKNOWN
|
| };
|
| -#endif
|
| -#if defined(OS_MACOSX)
|
| +#elif defined(OS_MACOSX)
|
| // Mac targets Capture Api type: it can only be set on construction.
|
| enum CaptureApiType {
|
| AVFOUNDATION,
|
| @@ -64,7 +70,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
| OTHER_TRANSPORT
|
| };
|
| #endif
|
| -#if defined(OS_WIN) || defined(OS_MACOSX)
|
| +#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
|
| Name(const std::string& name,
|
| const std::string& id,
|
| const CaptureApiType api_type);
|
| @@ -102,7 +108,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
| return unique_id_ < other.id();
|
| }
|
|
|
| -#if defined(OS_WIN) || defined(OS_MACOSX)
|
| +#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
|
| CaptureApiType capture_api_type() const {
|
| return capture_api_class_.capture_api_type();
|
| }
|
| @@ -133,7 +139,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
| private:
|
| std::string device_name_;
|
| std::string unique_id_;
|
| -#if defined(OS_WIN) || defined(OS_MACOSX)
|
| +#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
|
| // This class wraps the CaptureApiType to give it a by default value if not
|
| // initialized.
|
| class CaptureApiClass {
|
| @@ -195,9 +201,22 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
| virtual void OnIncomingCapturedData(const uint8* data,
|
| int length,
|
| const VideoCaptureFormat& frame_format,
|
| - int rotation, // Clockwise.
|
| + int clockwise_rotation,
|
| const base::TimeTicks& timestamp) = 0;
|
|
|
| + // Captured a 3 planar YUV frame. Planes are possibly disjoint.
|
| + // |frame_format| must indicate I420.
|
| + virtual void OnIncomingCapturedYuvData(
|
| + const uint8* y_data,
|
| + const uint8* u_data,
|
| + const uint8* v_data,
|
| + size_t y_stride,
|
| + size_t u_stride,
|
| + size_t v_stride,
|
| + const VideoCaptureFormat& frame_format,
|
| + int clockwise_rotation,
|
| + const base::TimeTicks& timestamp) = 0;
|
| +
|
| // Reserve an output buffer into which contents can be captured directly.
|
| // The returned Buffer will always be allocated with a memory size suitable
|
| // for holding a packed video frame with pixels of |format| format, of
|
|
|