summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2024-04-18 16:46:07 -0400
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>2024-04-26 16:15:24 +0200
commit69ff63db4d9d162247c974641a53787ba9ed6931 (patch)
treea8a9057fe2832c9c8e19efdd27bde813f059feaa
parent430b34fb2e9c9e03f91996935ad84d1319ed6733 (diff)
Work around rcar-gen3 gstreamer issues
The scarthgap-dev branch of meta-rcar-gen3 has bbappends for the gstreamer1.0-plugins-* and gstreamer1.0-omx recipes that effectively build the Renesas 1.20.3 forks and package them as 1.22.x. This breaks building gstreamer users since there are mismatches between the main gstreamer package contents and the plugins. To fix this for now: - BBMASK out the bbappends - Update our gstreamer1.0-plugins-bad bbappend to enable the KMS plugin to avoid breaking the BSP gstreamer plugins packagegroup. This can be removed once we no longer need to BBMASK the upstream bbappends. - Remove the rcar-gen3 version of our local patch against gstreamer1.0-plugins-bad, as it no longer applies (since rcar-gen3 will be using the upstream version for now). This can be revisited when meta-rcar-gen3 is updated to resolve the mismatch. As a bonus, the now unnecessary network flag overrides we were doing for the gstreamer plugin recipes have been removed, as they are no longer required. Bug-AGL: SPEC-4578 Change-Id: I4e6f1646c93d981744e65dddf6753c3dc005426e Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-rw-r--r--meta-agl-bsp/conf/include/agl_rcar.inc8
-rw-r--r--meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.%.bbappend1
-rw-r--r--meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.%.bbappend6
-rw-r--r--meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.%.bbappend1
-rw-r--r--meta-agl-core/recipes-multimedia/gstreamer1.0-plugins-bad/files/rcar-gen3/0001-Added-appid-and-title-support.patch166
5 files changed, 12 insertions, 170 deletions
diff --git a/meta-agl-bsp/conf/include/agl_rcar.inc b/meta-agl-bsp/conf/include/agl_rcar.inc
index e1169c21e..01314f8c9 100644
--- a/meta-agl-bsp/conf/include/agl_rcar.inc
+++ b/meta-agl-bsp/conf/include/agl_rcar.inc
@@ -18,7 +18,6 @@ PREFERRED_PROVIDER_libgbm:rcar-gen3 = "libgbm"
PREFERRED_PROVIDER_virtual/libgbm:rcar-gen3 = "libgbm"
PREFERRED_RPROVIDER_libgbm-dev:rcar-gen3 = "libgbm"
-
PREFERRED_RPROVIDER_libomxil:rcar-gen3 = "omx-user-module"
PREFERRED_PROVIDER_virtual/libomxil:rcar-gen3 = "omx-user-module"
VIRTUAL-RUNTIME_libomxil:rcar-gen3 = "omx-user-module"
@@ -53,3 +52,10 @@ MACHINE_EXTRA_RRECOMMENDS:append:rcar-gen3 = " \
kernel-module-vspm-if \
omx-user-module \
"
+
+# Mask out BSP layer gstreamer* 1.22.x bbappends for now, as the BSP
+# effectively is building 1.20.x plugins and packaging them as 1.22,
+# which breaks building various things. The whole directory is not
+# commented out because we still want the vspfilter plugin.
+BBMASK += "meta-renesas/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx"
+BBMASK += "meta-renesas/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-"
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.%.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.%.bbappend
deleted file mode 100644
index d91281c18..000000000
--- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-do_unpack[network] = "1"
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.%.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.%.bbappend
index d91281c18..eee123cf4 100644
--- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.%.bbappend
+++ b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.%.bbappend
@@ -1 +1,5 @@
-do_unpack[network] = "1"
+# Enable here for now due to meta-rcar-gen3 bbappends being masked
+# out, can be removed once gstreamer 1.22.x is properly supported
+# there.
+EXTRA_OECONF += "--enable-kms"
+PACKAGECONFIG:append = " kms"
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.%.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.%.bbappend
deleted file mode 100644
index d91281c18..000000000
--- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-do_unpack[network] = "1"
diff --git a/meta-agl-core/recipes-multimedia/gstreamer1.0-plugins-bad/files/rcar-gen3/0001-Added-appid-and-title-support.patch b/meta-agl-core/recipes-multimedia/gstreamer1.0-plugins-bad/files/rcar-gen3/0001-Added-appid-and-title-support.patch
deleted file mode 100644
index 72b924337..000000000
--- a/meta-agl-core/recipes-multimedia/gstreamer1.0-plugins-bad/files/rcar-gen3/0001-Added-appid-and-title-support.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From df64f7e34d01a03957d78317ef9a1cf6d6b95055 Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Wed, 9 Aug 2023 14:34:19 +0300
-Subject: [PATCH] Added appid and title support
-
-Bug-AGL: SPEC-4870
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- ext/wayland/gstwaylandsink.c | 43 ++++++++++++++++++++++++++++++++++--
- ext/wayland/gstwaylandsink.h | 2 ++
- ext/wayland/wlwindow.c | 10 ++++++++-
- ext/wayland/wlwindow.h | 2 +-
- 4 files changed, 53 insertions(+), 4 deletions(-)
-
-diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
-index 4918154..f743cf2 100644
---- a/ext/wayland/gstwaylandsink.c
-+++ b/ext/wayland/gstwaylandsink.c
-@@ -66,7 +66,9 @@ enum
- PROP_DISPLAY,
- PROP_FULLSCREEN,
- PROP_USE_SUBSURFACE,
-- PROP_SUPPRESS_INTERLACE
-+ PROP_SUPPRESS_INTERLACE,
-+ PROP_APP_ID,
-+ PROP_TITLE
- };
-
- #define DEFAULT_USE_SUBSURFACE TRUE
-@@ -229,6 +231,16 @@ gst_wayland_sink_class_init (GstWaylandSinkClass * klass)
- DEFAULT_SUPPRESS_INTERLACE,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-+ g_object_class_install_property (gobject_class, PROP_APP_ID,
-+ g_param_spec_string ("appid", "Top-level application id", "Wayland "
-+ "appid, as xdg_shell::set_app_id",
-+ NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-+
-+ g_object_class_install_property (gobject_class, PROP_TITLE,
-+ g_param_spec_string ("title", "Top-level title", "Wayland "
-+ "title, xdg_shell::set_title",
-+ NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-+
- gst_type_mark_as_plugin_api (GST_TYPE_WAYLAND_VIDEO, 0);
- }
-
-@@ -266,6 +278,16 @@ gst_wayland_sink_get_property (GObject * object,
- g_value_set_string (value, sink->display_name);
- GST_OBJECT_UNLOCK (sink);
- break;
-+ case PROP_APP_ID:
-+ GST_OBJECT_LOCK (sink);
-+ g_value_set_string (value, sink->app_id);
-+ GST_OBJECT_UNLOCK (sink);
-+ break;
-+ case PROP_TITLE:
-+ GST_OBJECT_LOCK (sink);
-+ g_value_set_string (value, sink->title);
-+ GST_OBJECT_UNLOCK (sink);
-+ break;
- case PROP_FULLSCREEN:
- GST_OBJECT_LOCK (sink);
- g_value_set_boolean (value, sink->fullscreen);
-@@ -298,6 +320,16 @@ gst_wayland_sink_set_property (GObject * object,
- sink->display_name = g_value_dup_string (value);
- GST_OBJECT_UNLOCK (sink);
- break;
-+ case PROP_APP_ID:
-+ GST_OBJECT_LOCK (sink);
-+ sink->app_id = g_value_dup_string (value);
-+ GST_OBJECT_UNLOCK (sink);
-+ break;
-+ case PROP_TITLE:
-+ GST_OBJECT_LOCK (sink);
-+ sink->title = g_value_dup_string (value);
-+ GST_OBJECT_UNLOCK (sink);
-+ break;
- case PROP_FULLSCREEN:
- GST_OBJECT_LOCK (sink);
- gst_wayland_sink_set_fullscreen (sink, g_value_get_boolean (value));
-@@ -331,12 +363,18 @@ gst_wayland_sink_finalize (GObject * object)
- gst_buffer_unref (sink->last_buffer);
- if (sink->display)
- g_object_unref (sink->display);
-+ if (sink->title)
-+ g_object_unref (sink->title);
-+ if (sink->app_id)
-+ g_object_unref (sink->app_id);
- if (sink->window)
- g_object_unref (sink->window);
- if (sink->pool)
- gst_object_unref (sink->pool);
-
- g_free (sink->display_name);
-+ g_free (sink->title);
-+ g_free (sink->app_id);
-
- g_mutex_clear (&sink->display_lock);
- g_mutex_clear (&sink->render_lock);
-@@ -768,7 +806,8 @@ gst_wayland_sink_show_frame (GstVideoSink * vsink, GstBuffer * buffer)
- if (!sink->window) {
- /* if we were not provided a window, create one ourselves */
- sink->window = gst_wl_window_new_toplevel (sink->display,
-- &sink->video_info, sink->fullscreen, &sink->render_lock);
-+ &sink->video_info, sink->fullscreen, sink->app_id, sink->title,
-+ &sink->render_lock);
- g_signal_connect_object (sink->window, "closed",
- G_CALLBACK (on_window_closed), sink, 0);
- }
-diff --git a/ext/wayland/gstwaylandsink.h b/ext/wayland/gstwaylandsink.h
-index 46ea538..e6c94ae 100644
---- a/ext/wayland/gstwaylandsink.h
-+++ b/ext/wayland/gstwaylandsink.h
-@@ -64,6 +64,8 @@ struct _GstWaylandSink
- gboolean fullscreen;
-
- gchar *display_name;
-+ gchar *app_id;
-+ gchar *title;
-
- gboolean redraw_pending;
- GMutex render_lock;
-diff --git a/ext/wayland/wlwindow.c b/ext/wayland/wlwindow.c
-index 3aace87..16faec8 100644
---- a/ext/wayland/wlwindow.c
-+++ b/ext/wayland/wlwindow.c
-@@ -255,7 +255,7 @@ gst_wl_window_ensure_fullscreen (GstWlWindow * window, gboolean fullscreen)
-
- GstWlWindow *
- gst_wl_window_new_toplevel (GstWlDisplay * display, const GstVideoInfo * info,
-- gboolean fullscreen, GMutex * render_lock)
-+ gboolean fullscreen, gchar *app_id, gchar *title, GMutex * render_lock)
- {
- GstWlWindow *window;
-
-@@ -288,6 +288,14 @@ gst_wl_window_new_toplevel (GstWlDisplay * display, const GstVideoInfo * info,
-
- /* Finally, commit the xdg_surface state as toplevel */
- window->configured = FALSE;
-+ if (app_id)
-+ xdg_toplevel_set_app_id (window->xdg_toplevel, app_id);
-+ else
-+ xdg_toplevel_set_app_id (window->xdg_toplevel, "ext.wayland.waylandsink");
-+ if (title)
-+ xdg_toplevel_set_title (window->xdg_toplevel, title);
-+ else
-+ xdg_toplevel_set_title (window->xdg_toplevel, "ext.wayland.waylandsink");
- wl_surface_commit (window->area_surface);
- wl_display_flush (display->display);
-
-diff --git a/ext/wayland/wlwindow.h b/ext/wayland/wlwindow.h
-index 034a5a5..6b525c8 100644
---- a/ext/wayland/wlwindow.h
-+++ b/ext/wayland/wlwindow.h
-@@ -84,7 +84,7 @@ GType gst_wl_window_get_type (void);
- void gst_wl_window_ensure_fullscreen (GstWlWindow * window,
- gboolean fullscreen);
- GstWlWindow *gst_wl_window_new_toplevel (GstWlDisplay * display,
-- const GstVideoInfo * info, gboolean fullscreen, GMutex * render_lock);
-+ const GstVideoInfo * info, gboolean fullscreen, gchar * app_id, gchar *title, GMutex * render_lock);
- GstWlWindow *gst_wl_window_new_in_surface (GstWlDisplay * display,
- struct wl_surface * parent, GMutex * render_lock);
-
---
-2.35.1
-