va: vpp: enable compositor
authorU. Artie Eoff <ullysses.a.eoff@intel.com>
Tue, 26 Apr 2022 16:07:26 +0000 (12:07 -0400)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Sat, 21 May 2022 19:18:15 +0000 (21:18 +0200)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2332>

subprojects/gst-plugins-bad/sys/va/plugin.c

index afcd65a..edc4425 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "gstvaav1dec.h"
 #include "gstvacaps.h"
+#include "gstvacompositor.h"
 #include "gstvadeinterlace.h"
 #include "gstvadevice.h"
 #include "gstvafilter.h"
@@ -206,16 +207,18 @@ static void
 plugin_register_vpp (GstPlugin * plugin, GstVaDevice * device)
 {
   GstVaFilter *filter;
-  gboolean has_colorbalance, has_deinterlace;
+  gboolean has_colorbalance, has_deinterlace, has_compose;
 
   has_colorbalance = FALSE;
   has_deinterlace = FALSE;
+  has_compose = FALSE;
   filter = gst_va_filter_new (device->display);
   if (gst_va_filter_open (filter)) {
     has_colorbalance =
         gst_va_filter_has_filter (filter, VAProcFilterColorBalance);
     has_deinterlace =
         gst_va_filter_has_filter (filter, VAProcFilterDeinterlacing);
+    has_compose = gst_va_filter_has_compose (filter);
   } else {
     GST_WARNING ("Failed open VA filter");
     gst_object_unref (filter);
@@ -232,6 +235,13 @@ plugin_register_vpp (GstPlugin * plugin, GstVaDevice * device)
           device->render_device_path);
     }
   }
+
+  if (has_compose) {
+    if (!gst_va_compositor_register (plugin, device, GST_RANK_NONE)) {
+      GST_WARNING ("Failed to register compositor: %s",
+          device->render_device_path);
+    }
+  }
 }
 
 static inline void