From 8fc1d919fd33db698e5470602942ab6a2d6b7841 Mon Sep 17 00:00:00 2001 From: Haihao Xiang Date: Thu, 3 Dec 2020 10:52:15 +0800 Subject: [PATCH 1/2] media_libva: export packed YUV when VA_EXPORT_SURFACE_COMPOSED_LAYERS is not set vaExportSurfaceHandle works for packed RGB w/wo VA_EXPORT_SURFACE_COMPOSED_LAYERS, it should work for packed YUV too w/wo VA_EXPORT_SURFACE_COMPOSED_LAYERS Example: gst-launch-1.0 videotestsrc ! msdkvpp ! \ 'video/x-raw(memory:DMABuf)',format=YUY2 ! glimagesink The patch was imported from the iHD media-driver git server (https://github.com/intel/media-driver.git) as of commit id 38e5f4ab95a5c4fb3fe55d3d132795ee804d9310. Upstream-Status: Backport Signed-off-by: Lim Siew Hoon --- media_driver/linux/common/ddi/media_libva.cpp | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/media_driver/linux/common/ddi/media_libva.cpp b/media_driver/linux/common/ddi/media_libva.cpp index 91c3ff14..778b7011 100755 --- a/media_driver/linux/common/ddi/media_libva.cpp +++ b/media_driver/linux/common/ddi/media_libva.cpp @@ -6672,9 +6672,27 @@ static uint32_t DdiMedia_GetDrmFormatOfSeparatePlane(uint32_t fourcc, int plane) return DRM_FORMAT_R16; case VA_FOURCC_YUY2: + return DRM_FORMAT_YUYV; + case VA_FOURCC_YVYU: + return DRM_FORMAT_YVYU; + case VA_FOURCC_VYUY: + return DRM_FORMAT_VYUY; case VA_FOURCC_UYVY: - // These are not representable as separate planes. - return 0; + return DRM_FORMAT_UYVY; + case VA_FOURCC_Y210: + return DRM_FORMAT_Y210; + case VA_FOURCC_Y216: + return DRM_FORMAT_Y216; + case VA_FOURCC_Y410: + return DRM_FORMAT_Y410; + case VA_FOURCC_Y416: + return DRM_FORMAT_Y416; +#if VA_CHECK_VERSION(1, 9, 0) + case VA_FOURCC_Y212: + return DRM_FORMAT_Y216; + case VA_FOURCC_Y412: + return DRM_FORMAT_Y416; +#endif case VA_FOURCC_ARGB: return DRM_FORMAT_ARGB8888; -- 2.17.1