From 9821c0ae96eb811423e8afee26adf3f7deffc0d6 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Sat, 29 Apr 2023 00:33:26 +0200 Subject: [PATCH] autovideoconvert: Use cudaconvert for formats not allowed by glcolorconverts There are some pixel formats supported by `cudaconvert` but not `glcolorconvert` so prefer using `cudaconvert` for those cases rather than using `videoconvertscale` and system memory Part-of: --- .../gst-plugins-bad/gst/autoconvert/gstautovideoconvert.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/subprojects/gst-plugins-bad/gst/autoconvert/gstautovideoconvert.c b/subprojects/gst-plugins-bad/gst/autoconvert/gstautovideoconvert.c index f4bdbe0f6b..6bb8b489d7 100644 --- a/subprojects/gst-plugins-bad/gst/autoconvert/gstautovideoconvert.c +++ b/subprojects/gst-plugins-bad/gst/autoconvert/gstautovideoconvert.c @@ -134,6 +134,13 @@ gst_auto_video_convert_init (GstAutoVideoConvert * autovideoconvert) .filters = { NULL }, .rank = GST_RANK_PRIMARY, }, + { /* FIXME: Generically make it so we go through cudaconvert for formats not supported by `glcolorconvert` */ + .first_elements = { "capsfilter caps=video/x-raw(ANY),format={I420_10LE,I422_10LE,I422_12LE}", "cudaupload", NULL }, + .colorspace_converters = { "cudaconvert", NULL }, + .last_elements = { "cudadownload", "capsfilter caps=video/x-raw(memory:GLMemory)", NULL }, + .filters = { NULL }, + .rank = GST_RANK_SECONDARY + 2, + }, { /* CUDA -> GL */ .first_elements = { "capsfilter caps=video/x-raw(memory:CUDAMemory)", "cudadownload", NULL }, .colorspace_converters = { "glcolorconvert", "glcolorscale", "glcolorconvert", NULL },