From: Mengkejiergeli Ba Date: Mon, 24 Oct 2022 03:56:51 +0000 (+0800) Subject: msdkvpp: Set va mem caps as higher priority X-Git-Tag: 1.22.0~678 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=13be7cbe868007eebea715e0c2f6a3d5d8648d13;p=platform%2Fupstream%2Fgstreamer.git msdkvpp: Set va mem caps as higher priority We use va pool as msdkvpp's bufferpool, which means both va memory and dma memory will be allocated by va pool. Considering drm modifier stuff is not ready, we use va memory with higher priortiry than dma memory when deciding vpp caps. Besides, this patch removes the specified "interlace-mode" in vpp caps. Part-of: --- diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c index 0b7f2e7..9fc5f38 100644 --- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c +++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c @@ -110,7 +110,7 @@ GST_DEBUG_CATEGORY_EXTERN (gst_msdkvpp_debug); GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_DMABUF, \ SUPPORTED_DMABUF_FORMAT) ";" #define VA_SINK_CAPS_STR \ - GST_MSDK_CAPS_MAKE_WITH_VA_FEATURE (SUPPORTED_VA_FORMAT) + GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("memory:VAMemory", SUPPORTED_VA_FORMAT) #else #define DMABUF_SINK_CAPS_STR "" #define VA_SINK_CAPS_STR "" @@ -121,7 +121,7 @@ GST_DEBUG_CATEGORY_EXTERN (gst_msdkvpp_debug); GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_DMABUF, \ SRC_DMABUF_FORMAT) ";" #define VA_SRC_CAPS_STR \ - GST_MSDK_CAPS_MAKE_WITH_VA_FEATURE (SUPPORTED_VA_FORMAT) + GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("memory:VAMemory", SUPPORTED_VA_FORMAT) #else #define DMABUF_SRC_CAPS_STR "" #define VA_SRC_CAPS_STR "" @@ -1389,20 +1389,20 @@ gst_msdkvpp_fixate_caps (GstBaseTransform * trans, GST_DEBUG_OBJECT (trans, "fixated to %" GST_PTR_FORMAT, result); gst_caps_unref (othercaps); - /* We let msdkvpp srcpad first query if downstream has dmabuf type caps, - * if not, will check the type of va memory. + /* We let msdkvpp srcpad first query if downstream has va memory type caps, + * if not, will check the type of dma memory. */ #ifndef _WIN32 - if (pad_accept_memory (thiz, GST_CAPS_FEATURE_MEMORY_DMABUF, - direction == GST_PAD_SRC ? GST_PAD_SINK : GST_PAD_SRC, result)) { - gst_caps_set_features (result, 0, - gst_caps_features_new (GST_CAPS_FEATURE_MEMORY_DMABUF, NULL)); - *use_dmabuf = TRUE; - } else if (pad_accept_memory (thiz, GST_CAPS_FEATURE_MEMORY_VA, + if (pad_accept_memory (thiz, GST_CAPS_FEATURE_MEMORY_VA, direction == GST_PAD_SRC ? GST_PAD_SINK : GST_PAD_SRC, result)) { gst_caps_set_features (result, 0, gst_caps_features_new (GST_CAPS_FEATURE_MEMORY_VA, NULL)); *use_va = TRUE; + } else if (pad_accept_memory (thiz, GST_CAPS_FEATURE_MEMORY_DMABUF, + direction == GST_PAD_SRC ? GST_PAD_SINK : GST_PAD_SRC, result)) { + gst_caps_set_features (result, 0, + gst_caps_features_new (GST_CAPS_FEATURE_MEMORY_DMABUF, NULL)); + *use_dmabuf = TRUE; } #endif