plugins: use VA allocator by default on raw caps
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Wed, 8 Jul 2020 09:57:52 +0000 (11:57 +0200)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Wed, 8 Jul 2020 11:17:38 +0000 (11:17 +0000)
Instead of using dmabuf allocator in source pad, when raw video caps
are negotiated, it uses VA allocator as before, since it is stable
in more use cases, for example transcoding, and more backend drivers.

Dmabuf allocator is only used when dmabuf caps feature is negotiated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>

gst/vaapi/gstvaapipluginbase.c

index 7a06493..5cf1a7b 100644 (file)
@@ -593,11 +593,7 @@ ensure_srcpad_allocator (GstVaapiPluginBase * plugin, GstPad * srcpad,
     goto valid_allocator;
 
   srcpriv->allocator = NULL;
-  if (caps && gst_caps_is_video_raw (caps)) {
-    GstAllocator *allocator = create_dmabuf_srcpad_allocator (plugin, vinfo,
-        !srcpriv->can_dmabuf);
-    srcpriv->allocator = allocator;
-  } else if (caps && gst_vaapi_caps_feature_contains (caps,
+  if (caps && gst_vaapi_caps_feature_contains (caps,
           GST_VAAPI_CAPS_FEATURE_DMABUF)) {
     srcpriv->allocator = create_dmabuf_srcpad_allocator (plugin, vinfo, FALSE);
     if (!srcpriv->allocator)