diff --git a/gst/vaapi/gstvaapipluginutil.c b/gst/vaapi/gstvaapipluginutil.c index b11901f824..e9ff8b6e93 100644 --- a/gst/vaapi/gstvaapipluginutil.c +++ b/gst/vaapi/gstvaapipluginutil.c @@ -540,6 +540,7 @@ gst_vaapi_find_preferred_caps_feature (GstPad * pad, GstCaps * allowed_caps, guint i, j, num_structures; GstCaps *out_caps, *caps = NULL; static const guint feature_list[] = { GST_VAAPI_CAPS_FEATURE_VAAPI_SURFACE, + GST_VAAPI_CAPS_FEATURE_DMABUF, GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META, GST_VAAPI_CAPS_FEATURE_SYSTEM_MEMORY, }; @@ -627,6 +628,9 @@ gst_vaapi_caps_feature_to_string (GstVaapiCapsFeature feature) case GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META: str = GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META; break; + case GST_VAAPI_CAPS_FEATURE_DMABUF: + str = GST_CAPS_FEATURE_MEMORY_DMABUF; + break; case GST_VAAPI_CAPS_FEATURE_VAAPI_SURFACE: str = GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE; break; diff --git a/gst/vaapi/gstvaapipluginutil.h b/gst/vaapi/gstvaapipluginutil.h index 61a833558a..19053df0ce 100644 --- a/gst/vaapi/gstvaapipluginutil.h +++ b/gst/vaapi/gstvaapipluginutil.h @@ -66,6 +66,7 @@ typedef enum GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, GST_VAAPI_CAPS_FEATURE_SYSTEM_MEMORY, GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META, + GST_VAAPI_CAPS_FEATURE_DMABUF, GST_VAAPI_CAPS_FEATURE_VAAPI_SURFACE, } GstVaapiCapsFeature; @@ -110,6 +111,10 @@ gst_vaapi_caps_feature_contains (const GstCaps * caps, GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }") +#define GST_VAAPI_MAKE_DMABUF_CAPS \ + GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ + GST_CAPS_FEATURE_MEMORY_DMABUF, "{ NV12, I420, YV12 }") + G_GNUC_INTERNAL gboolean gst_caps_set_interlaced (GstCaps * caps, GstVideoInfo * vip);