Index: content/common/gpu/media/v4l2_video_decode_accelerator.cc |
diff --git a/content/common/gpu/media/v4l2_video_decode_accelerator.cc b/content/common/gpu/media/v4l2_video_decode_accelerator.cc |
index 64672fccdd75c83bdc7c0885a3134edbbb429d4e..59590577247c5fc63d43d10f9db9c72e89f67db7 100644 |
--- a/content/common/gpu/media/v4l2_video_decode_accelerator.cc |
+++ b/content/common/gpu/media/v4l2_video_decode_accelerator.cc |
@@ -256,15 +256,19 @@ bool V4L2VideoDecodeAccelerator::Initialize(const Config& config, |
// Capabilities check. |
struct v4l2_capability caps; |
- const __u32 kCapsRequired = |
- V4L2_CAP_VIDEO_CAPTURE_MPLANE | |
- V4L2_CAP_VIDEO_OUTPUT_MPLANE | |
- V4L2_CAP_STREAMING; |
+ const __u32 kCapsRequired = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_STREAMING; |
IOCTL_OR_ERROR_RETURN_FALSE(VIDIOC_QUERYCAP, &caps); |
if ((caps.capabilities & kCapsRequired) != kCapsRequired) { |
- LOG(ERROR) << "Initialize(): ioctl() failed: VIDIOC_QUERYCAP" |
- ", caps check failed: 0x" << std::hex << caps.capabilities; |
- return false; |
+ // This cap combination is deprecated, but some older drivers may still be |
+ // returning it. |
+ const __u32 kCapsRequiredCompat = V4L2_CAP_VIDEO_CAPTURE_MPLANE | |
+ V4L2_CAP_VIDEO_OUTPUT_MPLANE | |
+ V4L2_CAP_STREAMING; |
+ if ((caps.capabilities & kCapsRequiredCompat) != kCapsRequiredCompat) { |
+ LOG(ERROR) << "Initialize(): ioctl() failed: VIDIOC_QUERYCAP" |
+ ", caps check failed: 0x" << std::hex << caps.capabilities; |
+ return false; |
+ } |
} |
if (!SetupFormats()) |