cudamemory: add support for planar 4:2:2 YUV formats

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2269>
This commit is contained in:
Corentin Damman 2022-04-22 15:58:13 +02:00 committed by GStreamer Marge Bot
parent 7064404b1e
commit 8678fc999a
2 changed files with 15 additions and 1 deletions

View file

@ -146,6 +146,17 @@ gst_cuda_allocator_alloc_internal (GstCudaAllocator * self,
alloc_info->offset[2] = alloc_info->offset[1] + alloc_info->offset[2] = alloc_info->offset[1] +
alloc_info->stride[1] * height / 2; alloc_info->stride[1] * height / 2;
break; break;
case GST_VIDEO_FORMAT_Y42B:
case GST_VIDEO_FORMAT_I422_10LE:
case GST_VIDEO_FORMAT_I422_12LE:
alloc_info->stride[0] = pitch;
alloc_info->stride[1] = pitch;
alloc_info->stride[2] = pitch;
alloc_info->offset[0] = 0;
alloc_info->offset[1] = alloc_info->stride[0] * height;
alloc_info->offset[2] = alloc_info->offset[1] +
alloc_info->stride[1] * height;
break;
case GST_VIDEO_FORMAT_NV12: case GST_VIDEO_FORMAT_NV12:
case GST_VIDEO_FORMAT_NV21: case GST_VIDEO_FORMAT_NV21:
case GST_VIDEO_FORMAT_P010_10LE: case GST_VIDEO_FORMAT_P010_10LE:
@ -498,6 +509,9 @@ gst_cuda_allocator_alloc (GstCudaAllocator * allocator,
case GST_VIDEO_FORMAT_P016_LE: case GST_VIDEO_FORMAT_P016_LE:
alloc_height *= 2; alloc_height *= 2;
break; break;
case GST_VIDEO_FORMAT_Y42B:
case GST_VIDEO_FORMAT_I422_10LE:
case GST_VIDEO_FORMAT_I422_12LE:
case GST_VIDEO_FORMAT_Y444: case GST_VIDEO_FORMAT_Y444:
case GST_VIDEO_FORMAT_Y444_16LE: case GST_VIDEO_FORMAT_Y444_16LE:
alloc_height *= 3; alloc_height *= 3;

View file

@ -25,7 +25,7 @@ G_BEGIN_DECLS
#define GST_CUDA_FORMATS \ #define GST_CUDA_FORMATS \
"{ I420, YV12, NV12, NV21, P010_10LE, P016_LE, I420_10LE, Y444, Y444_16LE, " \ "{ 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 }" "BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE, Y42B, I422_10LE, I422_12LE }"
#define GST_CUDA_GL_FORMATS \ #define GST_CUDA_GL_FORMATS \
"{ I420, YV12, NV12, NV21, P010_10LE, P016_LE, Y444, " \ "{ I420, YV12, NV12, NV21, P010_10LE, P016_LE, Y444, " \