diff options
author | Zhang Yuankun <yuankunx.zhang@intel.com> | 2021-08-26 15:06:53 +0800 |
---|---|---|
committer | Zhang Yuankun <yuankunx.zhang@intel.com> | 2021-08-26 15:06:53 +0800 |
commit | bd8c0b33e7b9bf4fbe9104f3f529cea3519788c7 (patch) | |
tree | e4275de0170421ffa9009219cb49f26a614b27b9 | |
parent | 7809c58664519e8af2266fbb1da8dd93e78b5bc3 (diff) | |
download | gstreamer-vaapi-bd8c0b33e7b9bf4fbe9104f3f529cea3519788c7.tar.gz |
vaapi: decoder: modify the condition to judge whether dma buffer is supported
It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
return false even if this platform support the mem_type dma buffer.
And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
on Gen12(such as TGL).
Without this patch, The command such as:
gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
will return not-negotiated.
Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
-rw-r--r-- | gst/vaapi/gstvaapidecode.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gst/vaapi/gstvaapidecode.c b/gst/vaapi/gstvaapidecode.c index 76d1bc47..10be7559 100644 --- a/gst/vaapi/gstvaapidecode.c +++ b/gst/vaapi/gstvaapidecode.c @@ -274,9 +274,10 @@ gst_vaapidecode_ensure_allowed_srcpad_caps (GstVaapiDecode * decode) gst_caps_set_features_simple (va_caps, gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE)); - if (GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode) - && gst_vaapi_mem_type_supports (mem_types, - GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF)) { + if (gst_vaapi_mem_type_supports (mem_types, + GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF) || + gst_vaapi_mem_type_supports (mem_types, + GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2)) { dma_caps = gst_caps_copy (base_caps); gst_caps_set_features_simple (dma_caps, gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_DMABUF)); |