cuda: Add YUY2 and UYVY formats for GL interop
authorSeungha Yang <seungha@centricular.com>
Thu, 30 Jun 2022 07:45:46 +0000 (16:45 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 30 Jun 2022 11:17:15 +0000 (11:17 +0000)
Those formats are not supported conversion formats by CUDA convert/scale elements
but would be useful for GL <-> CUDA interop use case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2691>

subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.c
subprojects/gst-plugins-bad/sys/nvcodec/gstcudabasefilter.c
subprojects/gst-plugins-bad/sys/nvcodec/gstcudaformat.h

index 3cddb30..7818827 100644 (file)
@@ -185,6 +185,8 @@ gst_cuda_allocator_alloc_internal (GstCudaAllocator * self,
     case GST_VIDEO_FORMAT_BGR:
     case GST_VIDEO_FORMAT_BGR10A2_LE:
     case GST_VIDEO_FORMAT_RGB10A2_LE:
+    case GST_VIDEO_FORMAT_YUY2:
+    case GST_VIDEO_FORMAT_UYVY:
       alloc_info->stride[0] = pitch;
       alloc_info->offset[0] = 0;
       break;
index a0c1dfa..4d7ef78 100644 (file)
 GST_DEBUG_CATEGORY_STATIC (gst_cuda_base_filter_debug);
 #define GST_CAT_DEFAULT gst_cuda_base_filter_debug
 
+#define GST_CUDA_FILTER_FORMATS \
+    "{ I420, YV12, NV12, NV21, P010_10LE, P016_LE, I420_10LE, Y444, Y444_16LE, " \
+    "BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE, Y42B, I422_10LE, I422_12LE }"
+
 static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
-        (GST_CAPS_FEATURE_MEMORY_CUDA_MEMORY, GST_CUDA_FORMATS))
+        (GST_CAPS_FEATURE_MEMORY_CUDA_MEMORY, GST_CUDA_FILTER_FORMATS))
     );
 
 static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
-        (GST_CAPS_FEATURE_MEMORY_CUDA_MEMORY, GST_CUDA_FORMATS))
+        (GST_CAPS_FEATURE_MEMORY_CUDA_MEMORY, GST_CUDA_FILTER_FORMATS))
     );
 
 #define gst_cuda_base_filter_parent_class parent_class
index 8c60967..5f756af 100644 (file)
@@ -25,11 +25,13 @@ G_BEGIN_DECLS
 
 #define GST_CUDA_FORMATS \
     "{ I420, YV12, NV12, NV21, P010_10LE, P016_LE, I420_10LE, Y444, Y444_16LE, " \
-    "BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE, Y42B, I422_10LE, I422_12LE }"
+    "BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE, " \
+    "Y42B, I422_10LE, I422_12LE, YUY2, UYVY }"
 
 #define GST_CUDA_GL_FORMATS \
     "{ I420, YV12, NV12, NV21, P010_10LE, P016_LE, Y444, " \
-    "BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE }"
+    "BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE, " \
+    "YUY2, UYVY }"
 
 #define GST_CUDA_D3D11_FORMATS \
     "{ I420, YV12, I420_10LE, Y444, Y444_16LE, " \