intel-media-driver: backport fixes

Fixes dmabuf sharing with glimagesink failing with
certain color format between msdkvpp and glimagesink
from gst-plugins-bad master.

Backport patches:
* 0001-media_libva-export-packed-YUV-when-VA_EXPORT_SURFACE.patch

Submitted patches:
* 0002-media-libva-Add-export-AYUV-color-in-vaExportSurface.patch

Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Lim Siew Hoon 2020-12-24 19:42:04 +08:00 committed by Anuj Mittal
parent e8e901aac7
commit 5c0965962d
3 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,62 @@
From 8fc1d919fd33db698e5470602942ab6a2d6b7841 Mon Sep 17 00:00:00 2001
From: Haihao Xiang <haihao.xiang@intel.com>
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 <siew.hoon.lim@intel.com>
---
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

View File

@ -0,0 +1,33 @@
From 979e90d7bc9ff6d9064e1f0378015abf40d86af2 Mon Sep 17 00:00:00 2001
From: Lim Siew Hoon <siew.hoon.lim@intel.com>
Date: Thu, 24 Dec 2020 18:47:56 +0800
Subject: [PATCH 2/2] media-libva: Add export AYUV color in
vaExportSurfaceHandle when VA_EXPORT_SURFACE_COMPOSED_LAYERS is not set.
Example:
gst-launch-1.0 videotestsrc ! msdkvpp \
'video/x-raw(memory:DMABuf)',format=VUYA ! glimagesink
Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1115]
Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
---
media_driver/linux/common/ddi/media_libva.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/media_driver/linux/common/ddi/media_libva.cpp b/media_driver/linux/common/ddi/media_libva.cpp
index 778b7011..0e9f07d3 100755
--- a/media_driver/linux/common/ddi/media_libva.cpp
+++ b/media_driver/linux/common/ddi/media_libva.cpp
@@ -6679,6 +6679,8 @@ static uint32_t DdiMedia_GetDrmFormatOfSeparatePlane(uint32_t fourcc, int plane)
return DRM_FORMAT_VYUY;
case VA_FOURCC_UYVY:
return DRM_FORMAT_UYVY;
+ case VA_FOURCC_AYUV:
+ return DRM_FORMAT_AYUV;
case VA_FOURCC_Y210:
return DRM_FORMAT_Y210;
case VA_FOURCC_Y216:
--
2.17.1

View File

@ -20,6 +20,8 @@ DEPENDS += "libva gmmlib"
SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;branch=intel-media-20.3 \
file://0001-Encode-Fixed-VP9-444-frame-header.patch \
file://0001-media_libva-export-packed-YUV-when-VA_EXPORT_SURFACE.patch \
file://0002-media-libva-Add-export-AYUV-color-in-vaExportSurface.patch \
"
SRCREV = "86ec0b6f61862806d8aed1803537728d1dfadf84"