From af8bc52e026897d379609cc51d33f628583dcfee Mon Sep 17 00:00:00 2001 From: Tom Hochstein Date: Thu, 3 Aug 2023 10:16:20 -0700 Subject: gstreamer: Upgrade 1.20.3.imx -> 1.22.0.imx Note, this commit does also complete the 'snapshot' model being used by including the .inc files. Signed-off-by: Tom Hochstein --- .../gstreamer/gst-devtools_1.20.3.imx.bb | 56 ------ .../gstreamer/gst-devtools_1.22.0.imx.bb | 56 ++++++ ...ix-for-APNG-encoder-property-registration.patch | 86 -------- .../gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch | 49 +++++ .../gstreamer/gstreamer1.0-libav_1.20.3.imx.bb | 41 ---- .../gstreamer/gstreamer1.0-libav_1.22.0.imx.bb | 36 ++++ .../gstreamer/gstreamer1.0-omx_1.20.3.imx.bb | 52 ----- .../gstreamer/gstreamer1.0-omx_1.22.0.imx.bb | 52 +++++ ...ninitialized-warnings-when-compiling-with.patch | 28 --- .../gstreamer1.0-plugins-bad_1.20.3.imx.bb | 218 --------------------- .../gstreamer1.0-plugins-bad_1.22.0.imx.bb | 218 +++++++++++++++++++++ ...001-Fix-types-to-match-callback-functions.patch | 53 ----- ...rphymem.c-Typecast-result-of-gst_phymem_g.patch | 48 ----- .../gstreamer1.0-plugins-base_1.20.3.imx.bb | 155 --------------- .../gstreamer1.0-plugins-base_1.22.0.imx.bb | 147 ++++++++++++++ .../gstreamer/gstreamer1.0-plugins-common.inc | 47 +++++ ...pe-declaration-for-gst_v4l2_object_stream.patch | 32 --- ...ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch | 56 ------ ...e-gst-allocators-gstdmabuf.h-for-gst_is_d.patch | 32 --- .../gstreamer1.0-plugins-good_1.20.3.imx.bb | 118 ----------- .../gstreamer1.0-plugins-good_1.22.0.imx.bb | 116 +++++++++++ .../gstreamer/gstreamer1.0-plugins-imx_2.2.0.bb | 2 +- .../gstreamer/gstreamer1.0-plugins-license.inc | 19 ++ .../gstreamer/gstreamer1.0-plugins-packaging.inc | 73 +++++++ .../gstreamer1.0-plugins-ugly_1.20.3.imx.bb | 57 ------ .../gstreamer1.0-plugins-ugly_1.22.0.imx.bb | 52 +++++ .../gstreamer/gstreamer1.0-python_1.20.3.imx.bb | 32 --- .../gstreamer/gstreamer1.0-python_1.22.0.imx.bb | 32 +++ .../gstreamer1.0-rtsp-server_1.20.3.imx.bb | 42 ---- .../gstreamer1.0-rtsp-server_1.22.0.imx.bb | 37 ++++ .../gstreamer/gstreamer1.0-vaapi_1.20.3.imx.bb | 55 ------ .../gstreamer/gstreamer1.0-vaapi_1.22.0.imx.bb | 59 ++++++ ...ts-respect-the-idententaion-used-in-meson.patch | 24 ++- ...2-tests-add-support-for-install-the-tests.patch | 56 +++--- .../gstreamer/gstreamer1.0_1.20.3.imx.bb | 104 ---------- .../gstreamer/gstreamer1.0_1.22.0.imx.bb | 103 ++++++++++ ...f-_TIME_BITS-along-with-_FILE_OFFSET_BITS.patch | 34 ++++ .../gstreamer/imx-gst1.0-plugin_git.bb | 7 +- 38 files changed, 1173 insertions(+), 1311 deletions(-) delete mode 100644 recipes-multimedia/gstreamer/gst-devtools_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gst-devtools_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-libav-Fix-for-APNG-encoder-property-registration.patch create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Fix-types-to-match-callback-functions.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-Add-prototype-declaration-for-gst_v4l2_object_stream.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Include-gst-allocators-gstdmabuf.h-for-gst_is_d.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.0.imx.bb delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0_1.20.3.imx.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0_1.22.0.imx.bb create mode 100644 recipes-multimedia/gstreamer/imx-gst1.0-plugin/0011-meson-Undef-_TIME_BITS-along-with-_FILE_OFFSET_BITS.patch (limited to 'recipes-multimedia') diff --git a/recipes-multimedia/gstreamer/gst-devtools_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gst-devtools_1.20.3.imx.bb deleted file mode 100644 index 5daba9d7..00000000 --- a/recipes-multimedia/gstreamer/gst-devtools_1.20.3.imx.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "Gstreamer validation tool" -DESCRIPTION = "A Tool to test GStreamer components" -HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html" -SECTION = "multimedia" - -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" - -S = "${WORKDIR}/gst-devtools-${@get_gst_ver('${PV}')}" - -SRC_URI = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${@get_gst_ver('${PV}')}.tar.xz \ - file://0001-connect-has-a-different-signature-on-musl.patch \ - " - -SRC_URI[sha256sum] = "bbbd45ead703367ea8f4be9b3c082d7b62bef47b240a39083f27844e28758c47" - -DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" -RRECOMMENDS:${PN} = "git" - -FILES:${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*" - -inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection - -# Drop .imx from PV -def get_gst_ver(v): - return oe.utils.trim_version(v, 3) - -# TODO: put this in a gettext.bbclass patch -def gettext_oemeson(d): - if d.getVar('USE_NLS') == 'no': - return '-Dnls=disabled' - # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set - if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'): - return '-Dnls=disabled' - return '-Dnls=enabled' - -# Build GstValidateVideo -PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - -Ddebug_viewer=disabled \ - -Dtests=disabled \ - -Dvalidate=enabled \ - ${@gettext_oemeson(d)} \ -" - -do_install:append () { - for fn in ${bindir}/gst-validate-launcher \ - ${libdir}/gst-validate-launcher/python/launcher/config.py; do - sed -i -e 's,${B},/usr/src/debug/${PN},g' -e 's,${S},/usr/src/debug/${PN},g' ${D}$fn - done -} - -GIR_MESON_ENABLE_FLAG = "enabled" -GIR_MESON_DISABLE_FLAG = "disabled" diff --git a/recipes-multimedia/gstreamer/gst-devtools_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gst-devtools_1.22.0.imx.bb new file mode 100644 index 00000000..4006f3eb --- /dev/null +++ b/recipes-multimedia/gstreamer/gst-devtools_1.22.0.imx.bb @@ -0,0 +1,56 @@ +SUMMARY = "Gstreamer validation tool" +DESCRIPTION = "A Tool to test GStreamer components" +HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html" +SECTION = "multimedia" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" + +S = "${WORKDIR}/gst-devtools-${@get_gst_ver('${PV}')}" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${@get_gst_ver('${PV}')}.tar.xz \ + file://0001-connect-has-a-different-signature-on-musl.patch \ + " + +SRC_URI[sha256sum] = "4d21fee5c15f2877c0b1f6c2da0cdba67ce7caab2c199ab27e91a1394d5ba195" + +DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" +RRECOMMENDS:${PN} = "git" + +FILES:${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*" + +inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection + +# Drop .imx from PV +def get_gst_ver(v): + return oe.utils.trim_version(v, 3) + +# TODO: put this in a gettext.bbclass patch +def gettext_oemeson(d): + if d.getVar('USE_NLS') == 'no': + return '-Dnls=disabled' + # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set + if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'): + return '-Dnls=disabled' + return '-Dnls=enabled' + +# Build GstValidateVideo +PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Ddebug_viewer=disabled \ + -Dtests=disabled \ + -Dvalidate=enabled \ + ${@gettext_oemeson(d)} \ +" + +do_install:append () { + for fn in ${bindir}/gst-validate-launcher \ + ${libdir}/gst-validate-launcher/python/launcher/config.py; do + sed -i -e 's,${B},/usr/src/debug/${PN},g' -e 's,${S},/usr/src/debug/${PN},g' ${D}$fn + done +} + +GIR_MESON_ENABLE_FLAG = "enabled" +GIR_MESON_DISABLE_FLAG = "disabled" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-libav-Fix-for-APNG-encoder-property-registration.patch b/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-libav-Fix-for-APNG-encoder-property-registration.patch deleted file mode 100644 index 526bbb00..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-libav-Fix-for-APNG-encoder-property-registration.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 78a97c1ec35ada76d83fc67d0549ba56c74d8875 Mon Sep 17 00:00:00 2001 -From: Seungha Yang -Date: Thu, 7 Jul 2022 22:16:30 +0900 -Subject: [PATCH] libav: Fix for APNG encoder property registration - -The AVClass name of Animated PNG in FFmpeg 5.x is "(A)PNG" -and it will be converted to "-a-png" through -g_ascii_strdown() and g_strcanon(). But GLib disallow leading '-' -character for a GType name. Strip leading '-' to workaround it. - -Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2724] - -Seungha Yangs patch was imported without modifications. - -Signed-off-by: Claus Stovgaard ---- - ext/libav/gstavcfg.c | 29 +++++++++++++++++++++++------ - 1 file changed, 23 insertions(+), 6 deletions(-) - -diff --git a/ext/libav/gstavcfg.c b/ext/libav/gstavcfg.c -index c736920..a8635a7 100644 ---- a/ext/libav/gstavcfg.c -+++ b/ext/libav/gstavcfg.c -@@ -91,10 +91,19 @@ register_enum (const AVClass ** obj, const AVOption * top_opt) - gchar *lower_obj_name = g_ascii_strdown ((*obj)->class_name, -1); - gchar *enum_name = g_strdup_printf ("%s-%s", lower_obj_name, top_opt->unit); - gboolean none_default = TRUE; -+ const gchar *enum_name_strip; - - g_strcanon (enum_name, G_CSET_a_2_z G_CSET_DIGITS, '-'); - -- if ((res = g_type_from_name (enum_name))) -+ /* strip leading '-'s */ -+ enum_name_strip = enum_name; -+ while (enum_name_strip[0] == '-') -+ enum_name_strip++; -+ -+ if (enum_name_strip[0] == '\0') -+ goto done; -+ -+ if ((res = g_type_from_name (enum_name_strip))) - goto done; - - while ((opt = av_opt_next (obj, opt))) { -@@ -150,9 +159,8 @@ register_enum (const AVClass ** obj, const AVOption * top_opt) - } - } - -- res = -- g_enum_register_static (enum_name, &g_array_index (values, GEnumValue, -- 0)); -+ res = g_enum_register_static (enum_name_strip, -+ &g_array_index (values, GEnumValue, 0)); - - gst_type_mark_as_plugin_api (res, 0); - } -@@ -177,10 +185,19 @@ register_flags (const AVClass ** obj, const AVOption * top_opt) - GArray *values = g_array_new (TRUE, TRUE, sizeof (GEnumValue)); - gchar *lower_obj_name = g_ascii_strdown ((*obj)->class_name, -1); - gchar *flags_name = g_strdup_printf ("%s-%s", lower_obj_name, top_opt->unit); -+ const gchar *flags_name_strip; - - g_strcanon (flags_name, G_CSET_a_2_z G_CSET_DIGITS, '-'); - -- if ((res = g_type_from_name (flags_name))) -+ /* strip leading '-'s */ -+ flags_name_strip = flags_name; -+ while (flags_name_strip[0] == '-') -+ flags_name_strip++; -+ -+ if (flags_name_strip[0] == '\0') -+ goto done; -+ -+ if ((res = g_type_from_name (flags_name_strip))) - goto done; - - while ((opt = av_opt_next (obj, opt))) { -@@ -211,7 +228,7 @@ register_flags (const AVClass ** obj, const AVOption * top_opt) - g_array_sort (values, (GCompareFunc) cmp_flags_value); - - res = -- g_flags_register_static (flags_name, &g_array_index (values, -+ g_flags_register_static (flags_name_strip, &g_array_index (values, - GFlagsValue, 0)); - - gst_type_mark_as_plugin_api (res, 0); diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch b/recipes-multimedia/gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch new file mode 100644 index 00000000..0a06540f --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch @@ -0,0 +1,49 @@ +From cde31d23c071ee93fae96331805f696856084254 Mon Sep 17 00:00:00 2001 +From: "U. Artie Eoff" +Date: Mon, 13 Feb 2023 17:02:01 -0500 +Subject: [PATCH] avviddec: change + AV_CODEC_CAP_AUTO_THREADS->AV_CODEC_CAP_OTHER_THREADS + +This fixes a compile error with recent upstream FFmpeg. + +The AV_CODEC_CAP_AUTO_THREADS was deprecated and renamed to +AV_CODEC_CAP_OTHER_THREADS in FFmpeg upstream commit +7d09579190de (lavc 58.132.100). + +The AV_CODEC_CAP_AUTO_THREADS was finally removed in FFmpeg upstream +commit 10c9a0874cb3 (lavc 59.63.100). + +Part-of: + +Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/cde31d23c071ee93fae96331805f696856084254?merge_request_iid=3964] +Signed-off-by: Alexander Kanavin +--- + ext/libav/gstavviddec.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c +index 43cea456ae8..6d7c4cd0de8 100644 +--- a/ext/libav/gstavviddec.c ++++ b/ext/libav/gstavviddec.c +@@ -35,6 +35,10 @@ + + GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE); + ++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,132,100) ++#define AV_CODEC_CAP_OTHER_THREADS AV_CODEC_CAP_AUTO_THREADS ++#endif ++ + #define GST_FFMPEG_VIDEO_CODEC_FRAME_FLAG_ALLOCATED (1<<15) + + #define MAX_TS_MASK 0xff +@@ -615,7 +619,7 @@ gst_ffmpegviddec_set_format (GstVideoDecoder * decoder, + if (ffmpegdec->max_threads == 0) { + /* When thread type is FF_THREAD_FRAME, extra latency is introduced equal + * to one frame per thread. We thus need to calculate the thread count ourselves */ +- if ((!(oclass->in_plugin->capabilities & AV_CODEC_CAP_AUTO_THREADS)) || ++ if ((!(oclass->in_plugin->capabilities & AV_CODEC_CAP_OTHER_THREADS)) || + (ffmpegdec->context->thread_type & FF_THREAD_FRAME)) + ffmpegdec->context->thread_count = + MIN (gst_ffmpeg_auto_max_threads (), 16); +-- +GitLab diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.3.imx.bb deleted file mode 100644 index 5777679d..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.3.imx.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "Libav-based GStreamer 1.x plugin" -DESCRIPTION = "Contains a GStreamer plugin for using the encoders, decoders, \ -muxers, and demuxers provided by FFmpeg." -HOMEPAGE = "http://gstreamer.freedesktop.org/" -SECTION = "multimedia" - -# ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency -LICENSE_FLAGS = "commercial" -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ - file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ - " - -SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${@get_gst_ver('${PV}')}.tar.xz \ - file://0001-libav-Fix-for-APNG-encoder-property-registration.patch \ - " -SRC_URI[sha256sum] = "3fedd10560fcdfaa1b6462cbf79a38c4e7b57d7f390359393fc0cef6dbf27dfe" - -S = "${WORKDIR}/gst-libav-${@get_gst_ver('${PV}')}" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" - -inherit meson pkgconfig upstream-version-is-even - -EXTRA_OEMESON += " \ - -Dtests=disabled \ -" - -# Drop .imx from PV -def get_gst_ver(v): - return oe.utils.trim_version(v, 3) - -FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" - -# These recipes are copies of oe-core 1.20.3 that are not available -# anymore upstream on the master branch. -# The requirement to have them is because they are dependencies of -# the other ones imx specific gstreamer forks on the layer. -# So make their names maching the exisng ones will make it more safe. -COMPATIBLE_MACHINE = "(imx-nxp-bsp)" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.imx.bb new file mode 100644 index 00000000..742004d8 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.imx.bb @@ -0,0 +1,36 @@ +SUMMARY = "Libav-based GStreamer 1.x plugin" +DESCRIPTION = "Contains a GStreamer plugin for using the encoders, decoders, \ +muxers, and demuxers provided by FFmpeg." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +SECTION = "multimedia" + +# ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency +LICENSE_FLAGS = "commercial" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ + file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ + " + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${@get_gst_ver('${PV}')}.tar.xz \ + file://ffmpeg-6.0.patch \ + " +SRC_URI[sha256sum] = "0e48407b4905227a260213dbda84cba3812f0530fc7a75b43829102ef82810f1" + +S = "${WORKDIR}/gst-libav-${@get_gst_ver('${PV}')}" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" + +inherit meson pkgconfig upstream-version-is-even + +EXTRA_OEMESON += " \ + -Dtests=disabled \ +" + +# Drop .imx from PV +def get_gst_ver(v): + return oe.utils.trim_version(v, 3) + +FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.3.imx.bb deleted file mode 100644 index dc1c8ba0..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.3.imx.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "OpenMAX IL plugins for GStreamer" -DESCRIPTION = "Wraps available OpenMAX IL components and makes them available as standard GStreamer elements." -HOMEPAGE = "http://gstreamer.freedesktop.org/" -SECTION = "multimedia" - -LICENSE = "LGPL-2.1-or-later" -LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" - -SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${@get_gst_ver('${PV}')}.tar.xz" - -SRC_URI[sha256sum] = "8db48040bb41f09edf8d17ff6d16c54888d7777ba4501c2c69f0083350ea9a15" - -S = "${WORKDIR}/gst-omx-${@get_gst_ver('${PV}')}" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad virtual/libomxil" - -inherit meson pkgconfig upstream-version-is-even - -GSTREAMER_1_0_OMX_TARGET ?= "bellagio" -GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0" - -EXTRA_OEMESON += "-Dtarget=${GSTREAMER_1_0_OMX_TARGET}" - -python __anonymous () { - omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET") - if omx_target in ['generic', 'bellagio']: - # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,# - # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros); - # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this - d.appendVar("CFLAGS", " -I${S}/omx/openmax") - elif omx_target == "rpi": - # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific - d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH")) -} - -set_omx_core_name() { - sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf" -} - -# Drop .imx from PV -def get_gst_ver(v): - return oe.utils.trim_version(v, 3) - -do_install[postfuncs] += " set_omx_core_name " - -FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" - -VIRTUAL-RUNTIME_libomxil ?= "libomxil" -RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_libomxil}" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.0.imx.bb new file mode 100644 index 00000000..dc4bccd7 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.0.imx.bb @@ -0,0 +1,52 @@ +SUMMARY = "OpenMAX IL plugins for GStreamer" +DESCRIPTION = "Wraps available OpenMAX IL components and makes them available as standard GStreamer elements." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +SECTION = "multimedia" + +LICENSE = "LGPL-2.1-or-later" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${@get_gst_ver('${PV}')}.tar.xz" + +SRC_URI[sha256sum] = "dbc951a99af532380e599aa8acd9e1385fdb299b46b5868cd2be4230ad888341" + +S = "${WORKDIR}/gst-omx-${@get_gst_ver('${PV}')}" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad virtual/libomxil" + +inherit meson pkgconfig upstream-version-is-even + +GSTREAMER_1_0_OMX_TARGET ?= "bellagio" +GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0" + +EXTRA_OEMESON += "-Dtarget=${GSTREAMER_1_0_OMX_TARGET}" + +python __anonymous () { + omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET") + if omx_target in ['generic', 'bellagio']: + # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,# + # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros); + # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this + d.appendVar("CFLAGS", " -I${S}/omx/openmax") + elif omx_target == "rpi": + # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific + d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH")) +} + +set_omx_core_name() { + sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf" +} + +# Drop .imx from PV +def get_gst_ver(v): + return oe.utils.trim_version(v, 3) + +do_install[postfuncs] += " set_omx_core_name " + +FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" + +VIRTUAL-RUNTIME_libomxil ?= "libomxil" +RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_libomxil}" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch deleted file mode 100644 index 13a673cd..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f08ab3ac2ce43ac91d3bf65b26f26436690f499b Mon Sep 17 00:00:00 2001 -From: Andre McCurdy -Date: Tue, 26 Jan 2016 15:16:01 -0800 -Subject: [PATCH 1/4] fix maybe-uninitialized warnings when compiling with -Os - -Upstream-Status: Pending - -Signed-off-by: Andre McCurdy ---- - gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c -index 2c60ced..e8226d8 100644 ---- a/gst-libs/gst/codecparsers/gstvc1parser.c -+++ b/gst-libs/gst/codecparsers/gstvc1parser.c -@@ -1730,7 +1730,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size, - GstVC1SeqLayer * seqlayer) - { - guint32 tmp; -- guint8 tmp8; -+ guint8 tmp8 = 0; - guint8 structA[8] = { 0, }; - guint8 structB[12] = { 0, }; - GstBitReader br; --- -2.28.0 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.3.imx.bb deleted file mode 100644 index 139107f5..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.3.imx.bb +++ /dev/null @@ -1,218 +0,0 @@ -# This recipe is for the i.MX fork of gstreamer1.0-plugins-bad. For ease of -# maintenance, the top section is a verbatim copy of an OE-core -# recipe. The second section customizes the recipe for i.MX. - -########### OE-core copy ################## -# Upstream hash: a21649109374fde44cf77de845cfb3cb6cbfb138 - -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc - -DESCRIPTION = "'Bad' GStreamer plugins and helper libraries " -HOMEPAGE = "https://gstreamer.freedesktop.org/" -BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues" - -SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ - file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \ - file://0002-avoid-including-sys-poll.h-directly.patch \ - file://0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch \ - file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ - file://0005-msdk-fix-includedir-path.patch \ - " -SRC_URI[sha256sum] = "09d3c2cf5911f0bc7da6bf557a55251779243d3de216b6a26cc90c445b423848" - -S = "${WORKDIR}/gst-plugins-bad-${PV}" - -LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS += "gstreamer1.0-plugins-base" - -inherit gobject-introspection - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ - bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \ - sndfile ttml uvch264 webp \ - ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \ -" - -PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom" -PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass" -PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5" -PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" -PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo" -PACKAGECONFIG[curl] = "-Dcurl=enabled,-Dcurl=disabled,curl" -PACKAGECONFIG[dash] = "-Ddash=enabled,-Ddash=disabled,libxml2" -PACKAGECONFIG[dc1394] = "-Ddc1394=enabled,-Ddc1394=disabled,libdc1394" -PACKAGECONFIG[directfb] = "-Ddirectfb=enabled,-Ddirectfb=disabled,directfb" -PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl" -PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac" -PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2" -PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" -PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled," -# Pick atleast one crypto backend below when enabling hls -PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle" -PACKAGECONFIG[openssl] = "-Dhls-crypto=openssl,,openssl" -PACKAGECONFIG[gcrypt] = "-Dhls-crypto=libgcrypt,,libgcrypt" -# the gl packageconfig enables OpenGL elements that haven't been ported -# to -base yet. They depend on the gstgl library in -base, so we do -# not add GL dependencies here, since these are taken care of in -base. -PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled," -PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm" -PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265" -PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" -PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" -PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" -PACKAGECONFIG[msdk] = "-Dmsdk=enabled,-Dmsdk=disabled,intel-mediasdk" -PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" -PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" -PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" -PACKAGECONFIG[openh264] = "-Dopenh264=enabled,-Dopenh264=disabled,openh264" -PACKAGECONFIG[openjpeg] = "-Dopenjpeg=enabled,-Dopenjpeg=disabled,openjpeg" -PACKAGECONFIG[openmpt] = "-Dopenmpt=enabled,-Dopenmpt=disabled,libopenmpt" -# the opus encoder/decoder elements are now in the -base package, -# but the opus parser remains in -bad -PACKAGECONFIG[opusparse] = "-Dopus=enabled,-Dopus=disabled,libopus" -PACKAGECONFIG[resindvd] = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdread libdvdnav" -PACKAGECONFIG[rsvg] = "-Drsvg=enabled,-Drsvg=disabled,librsvg" -PACKAGECONFIG[rtmp] = "-Drtmp=enabled,-Drtmp=disabled,rtmpdump" -PACKAGECONFIG[sbc] = "-Dsbc=enabled,-Dsbc=disabled,sbc" -PACKAGECONFIG[sctp] = "-Dsctp=enabled,-Dsctp=disabled" -PACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=disabled,libxml2" -PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" -PACKAGECONFIG[srt] = "-Dsrt=enabled,-Dsrt=disabled,srt" -PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp" -PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" -PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" -PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" -PACKAGECONFIG[v4l2codecs] = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev" -PACKAGECONFIG[va] = "-Dva=enabled,-Dva=disabled,libva" -PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" -PACKAGECONFIG[voamrwbenc] = "-Dvoamrwbenc=enabled,-Dvoamrwbenc=disabled,vo-amrwbenc" -PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader shaderc-native" -PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm" -PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp" -PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice" -PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" -PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" -PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon" -PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265" - -GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'faad resindvd x265', d)}" - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - -Daes=enabled \ - -Dcodecalpha=enabled \ - -Ddecklink=enabled \ - -Ddvb=enabled \ - -Dfbdev=enabled \ - -Dipcpipeline=enabled \ - -Dshm=enabled \ - -Dtranscode=enabled \ - -Dandroidmedia=disabled \ - -Dapplemedia=disabled \ - -Dasio=disabled \ - -Davtp=disabled \ - -Dbs2b=disabled \ - -Dchromaprint=disabled \ - -Dd3dvideosink=disabled \ - -Dd3d11=disabled \ - -Ddirectsound=disabled \ - -Ddts=disabled \ - -Dfdkaac=disabled \ - -Dflite=disabled \ - -Dgme=disabled \ - -Dgs=disabled \ - -Dgsm=disabled \ - -Diqa=disabled \ - -Dkate=disabled \ - -Dladspa=disabled \ - -Dldac=disabled \ - -Dlv2=disabled \ - -Dmagicleap=disabled \ - -Dmediafoundation=disabled \ - -Dmicrodns=disabled \ - -Dmpeg2enc=disabled \ - -Dmplex=disabled \ - -Dmusepack=disabled \ - -Dnvcodec=disabled \ - -Dopenexr=disabled \ - -Dopenni2=disabled \ - -Dopenaptx=disabled \ - -Dopensles=disabled \ - -Donnx=disabled \ - -Dqroverlay=disabled \ - -Dsoundtouch=disabled \ - -Dspandsp=disabled \ - -Dsvthevcenc=disabled \ - -Dteletext=disabled \ - -Dwasapi=disabled \ - -Dwasapi2=disabled \ - -Dwildmidi=disabled \ - -Dwinks=disabled \ - -Dwinscreencap=disabled \ - -Dwpe=disabled \ - -Dzxing=disabled \ -" -export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" - -ARM_INSTRUCTION_SET:armv4 = "arm" -ARM_INSTRUCTION_SET:armv5 = "arm" - -FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" -FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" -FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles" -FILES:${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs" - -########### End of OE-core copy ########### - -########### i.MX overrides ################ - -DEFAULT_PREFERENCE = "-1" - -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS:append:imxgpu2d = " virtual/libg2d" - -SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ - file://0002-avoid-including-sys-poll.h-directly.patch \ - file://0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch \ - file://0005-msdk-fix-includedir-path.patch \ - " -SRC_URI:prepend = "${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} " -GST1.0-PLUGINS-BAD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-bad.git;protocol=https" -SRCBRANCH = "MM_04.07.03_2301_L6.1.y" -SRCREV = "6db7bca26b81468b647b680d7ef67b1b8b938b00" - -S = "${WORKDIR}/git" - -inherit use-imx-headers - -PACKAGE_ARCH:imxpxp = "${MACHINE_SOCARCH}" -PACKAGE_ARCH:mx8-nxp-bsp = "${MACHINE_SOCARCH}" - -PACKAGECONFIG_REMOVE ?= " \ - dtls vulkan \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', 'gl', d)} \ -" -PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}" -PACKAGECONFIG:append:mx8-nxp-bsp = " kms tinycompress" - -PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress" - -EXTRA_OEMESON += " \ - -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \ -" - -COMPATIBLE_MACHINE = "(imx-nxp-bsp)" - -# it uses nested functions sadly, in ext/wayland/gstwaylandsink.c for GST_ELEMENT_REGISTER_DEFINE -# -TOOLCHAIN = "gcc" -########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.imx.bb new file mode 100644 index 00000000..18992571 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.imx.bb @@ -0,0 +1,218 @@ +# This recipe is for the i.MX fork of gstreamer1.0-plugins-bad. For ease of +# maintenance, the top section is a verbatim copy of an OE-core +# recipe. The second section customizes the recipe for i.MX. + +########### OE-core copy ################## +# Upstream hash: fb2d28e0315ece6180c87c7047587673024a09f7 + +require gstreamer1.0-plugins-common.inc +require gstreamer1.0-plugins-license.inc + +DESCRIPTION = "'Bad' GStreamer plugins and helper libraries " +HOMEPAGE = "https://gstreamer.freedesktop.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ + file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \ + file://0002-avoid-including-sys-poll.h-directly.patch \ + file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ + " +SRC_URI[sha256sum] = "3c9d9300f5f4fb3e3d36009379d1fb6d9ecd79c1a135df742b8a68417dd663a1" + +S = "${WORKDIR}/gst-plugins-bad-${PV}" + +LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS += "gstreamer1.0-plugins-base" + +inherit gobject-introspection + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ + bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \ + sndfile ttml uvch264 webp \ + ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \ +" + +PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom" +PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass" +PACKAGECONFIG[avtp] = "-Davtp=enabled,-Davtp=disabled,libavtp" +PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5" +PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" +PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo" +PACKAGECONFIG[curl] = "-Dcurl=enabled,-Dcurl=disabled,curl" +PACKAGECONFIG[dash] = "-Ddash=enabled,-Ddash=disabled,libxml2" +PACKAGECONFIG[dc1394] = "-Ddc1394=enabled,-Ddc1394=disabled,libdc1394" +PACKAGECONFIG[directfb] = "-Ddirectfb=enabled,-Ddirectfb=disabled,directfb" +PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl" +PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac" +PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2" +PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" +PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled," +# Pick atleast one crypto backend below when enabling hls +PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle" +PACKAGECONFIG[openssl] = "-Dhls-crypto=openssl,,openssl" +PACKAGECONFIG[gcrypt] = "-Dhls-crypto=libgcrypt,,libgcrypt" +# the gl packageconfig enables OpenGL elements that haven't been ported +# to -base yet. They depend on the gstgl library in -base, so we do +# not add GL dependencies here, since these are taken care of in -base. +PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled," +PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm" +PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265" +PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" +PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" +PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" +PACKAGECONFIG[msdk] = "-Dmsdk=enabled,-Dmsdk=disabled,intel-mediasdk" +PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" +PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" +PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" +PACKAGECONFIG[openh264] = "-Dopenh264=enabled,-Dopenh264=disabled,openh264" +PACKAGECONFIG[openjpeg] = "-Dopenjpeg=enabled,-Dopenjpeg=disabled,openjpeg" +PACKAGECONFIG[openmpt] = "-Dopenmpt=enabled,-Dopenmpt=disabled,libopenmpt" +# the opus encoder/decoder elements are now in the -base package, +# but the opus parser remains in -bad +PACKAGECONFIG[opusparse] = "-Dopus=enabled,-Dopus=disabled,libopus" +PACKAGECONFIG[resindvd] = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdread libdvdnav" +PACKAGECONFIG[rsvg] = "-Drsvg=enabled,-Drsvg=disabled,librsvg" +PACKAGECONFIG[rtmp] = "-Drtmp=enabled,-Drtmp=disabled,rtmpdump" +PACKAGECONFIG[sbc] = "-Dsbc=enabled,-Dsbc=disabled,sbc" +PACKAGECONFIG[sctp] = "-Dsctp=enabled,-Dsctp=disabled" +PACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=disabled,libxml2" +PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" +PACKAGECONFIG[srt] = "-Dsrt=enabled,-Dsrt=disabled,srt" +PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp" +PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" +PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" +PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" +# this enables support for stateless V4L2 mem2mem codecs, which is a newer form of +# V4L2 codec; the V4L2 code in -base supports the older stateful V4L2 mem2mem codecs +PACKAGECONFIG[v4l2codecs] = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev" +PACKAGECONFIG[va] = "-Dva=enabled,-Dva=disabled,libva" +PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" +PACKAGECONFIG[voamrwbenc] = "-Dvoamrwbenc=enabled,-Dvoamrwbenc=disabled,vo-amrwbenc" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader shaderc-native" +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm" +PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp" +PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice" +PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" +PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon" +PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265" + +GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'faad resindvd x265', d)}" + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Daes=enabled \ + -Dcodecalpha=enabled \ + -Ddecklink=enabled \ + -Ddvb=enabled \ + -Dfbdev=enabled \ + -Dipcpipeline=enabled \ + -Dshm=enabled \ + -Dtranscode=enabled \ + -Dandroidmedia=disabled \ + -Dapplemedia=disabled \ + -Dasio=disabled \ + -Dbs2b=disabled \ + -Dchromaprint=disabled \ + -Dd3dvideosink=disabled \ + -Dd3d11=disabled \ + -Ddirectsound=disabled \ + -Ddts=disabled \ + -Dfdkaac=disabled \ + -Dflite=disabled \ + -Dgme=disabled \ + -Dgs=disabled \ + -Dgsm=disabled \ + -Diqa=disabled \ + -Dkate=disabled \ + -Dladspa=disabled \ + -Dldac=disabled \ + -Dlv2=disabled \ + -Dmagicleap=disabled \ + -Dmediafoundation=disabled \ + -Dmicrodns=disabled \ + -Dmpeg2enc=disabled \ + -Dmplex=disabled \ + -Dmusepack=disabled \ + -Dnvcodec=disabled \ + -Dopenexr=disabled \ + -Dopenni2=disabled \ + -Dopenaptx=disabled \ + -Dopensles=disabled \ + -Donnx=disabled \ + -Dqroverlay=disabled \ + -Dsoundtouch=disabled \ + -Dspandsp=disabled \ + -Dsvthevcenc=disabled \ + -Dteletext=disabled \ + -Dwasapi=disabled \ + -Dwasapi2=disabled \ + -Dwildmidi=disabled \ + -Dwinks=disabled \ + -Dwinscreencap=disabled \ + -Dwpe=disabled \ + -Dzxing=disabled \ +" + +export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" + +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" + +FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" +FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" +FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles" +FILES:${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs" + + +########### End of OE-core copy ########### + +########### i.MX overrides ################ + +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS:append:imxgpu2d = " virtual/libg2d" + +SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ + file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \ + file://0002-avoid-including-sys-poll.h-directly.patch" +SRC_URI:prepend = "${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} " +GST1.0-PLUGINS-BAD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-bad.git;protocol=https" +SRCBRANCH = "MM_04.08.00_2305_L6.1.y" +SRCREV = "3c2f0b5794e699437964f2c337463f57b1e17f51" + +S = "${WORKDIR}/git" + +inherit use-imx-headers + +PACKAGE_ARCH:imxpxp = "${MACHINE_SOCARCH}" +PACKAGE_ARCH:mx8-nxp-bsp = "${MACHINE_SOCARCH}" + +PACKAGECONFIG_REMOVE ?= " \ + dtls vulkan \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', 'gl', d)} \ +" +PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}" +PACKAGECONFIG:append:mx8-nxp-bsp = " kms tinycompress" + +PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress" + +EXTRA_OEMESON += " \ + -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \ +" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" + +# it uses nested functions sadly, in ext/wayland/gstwaylandsink.c for GST_ELEMENT_REGISTER_DEFINE +# +TOOLCHAIN = "gcc" +########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Fix-types-to-match-callback-functions.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Fix-types-to-match-callback-functions.patch deleted file mode 100644 index 378d5e27..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Fix-types-to-match-callback-functions.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 98b5411642ffac9d895de968748102c2c6d18cb4 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 1 Feb 2023 14:29:49 -0800 -Subject: [PATCH] Fix types to match callback functions - -Fixes build errors seen with gcc13 - -| ../git/gst-libs/gst/gl/gstglphymemory.c:312:25: error: incompatible function pointer types assigning to 'GDestroyNotify' (aka 'void (*)(void *)') from 'void (GstMemory *)' (aka 'void (struct _GstMemory *)') [-Win -compatible-function-pointer-types] -| params->parent.notify = gst_gl_phy_mem_destroy; -| ^ ~~~~~~~~~~~~~~~~~~~~~~ -| ../git/gst-libs/gst/gl/gstglphymemory.c:340:5: warning: cast to smaller integer type 'guint' (aka 'unsigned int') from 'guint8 *' (aka 'unsigned char *') [-Wpointer-to-int-cast] -| (guint)memblk->paddr, -| ^~~~~~~~~~~~~~~~~~~~ -| ../git/gst-libs/gst/gl/gstglphymemory.c:345:7: error: incompatible function pointer types passing 'void (GstGLContext *, DirectVIVData *)' (aka 'void (struct _GstGLContext *, DirectVIVData *)') to parameter of ty -pe 'GstGLContextThreadFunc' (aka 'void (*)(struct _GstGLContext *, void *)') [-Wincompatible-function-pointer-types] -| _do_viv_direct_tex_bind_mem, &directvivdata); -| ^~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Upstream-Status: Submitted [https://github.com/nxp-imx/gst-plugins-base/pull/1] -Signed-off-by: Khem Raj ---- - gst-libs/gst/gl/gstglphymemory.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/gst-libs/gst/gl/gstglphymemory.c b/gst-libs/gst/gl/gstglphymemory.c -index d82c9a66a..0a191f1a5 100644 ---- a/gst-libs/gst/gl/gstglphymemory.c -+++ b/gst-libs/gst/gl/gstglphymemory.c -@@ -163,9 +163,10 @@ _finish_texture (GstGLContext * ctx, gpointer * data) - } - - static void --_do_viv_direct_tex_bind_mem (GstGLContext * ctx, DirectVIVData * data) -+_do_viv_direct_tex_bind_mem (GstGLContext * ctx, void * data_in) - { - GstGLFuncs *gl = ctx->gl_vtable; -+ DirectVIVData *data = (DirectVIVData*) data_in; - - GST_DEBUG ("viv direct bind, tex_id %d, fmt: %d, res: (%dx%d)", data->tex_id, - data->fmt, data->w, data->h); -@@ -211,7 +212,7 @@ _directviv_video_format_to_gl_format (GstVideoFormat format) - } - - static void --gst_gl_phy_mem_destroy (GstMemory * mem) -+gst_gl_phy_mem_destroy (void * mem) - { - gst_memory_unref (mem); - } --- -2.39.1 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch deleted file mode 100644 index 19057147..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 071fd005ad6572767d7441c97549b1c904719944 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 12 Sep 2022 20:29:25 -0700 -Subject: [PATCH] gstallocatorphymem.c: Typecast result of gst_phymem_get_phy - to guintptr - -This fixes a warning/error found with clang-15 - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - gst-libs/gst/allocators/gstallocatorphymem.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/gst-libs/gst/allocators/gstallocatorphymem.c -+++ b/gst-libs/gst/allocators/gstallocatorphymem.c -@@ -225,7 +225,7 @@ static guintptr - gst_allocator_phymem_get_phys_addr (GstPhysMemoryAllocator * allocator, - GstMemory * mem) - { -- return gst_phymem_get_phy (mem); -+ return (guintptr)gst_phymem_get_phy (mem); - } - - static void ---- a/gst-libs/gst/gl/gstglphymemory.c -+++ b/gst-libs/gst/gl/gstglphymemory.c -@@ -337,7 +337,7 @@ gst_gl_physical_memory_setup_buffer (Gst - GST_VIDEO_INFO_HEIGHT (info), - viv_fmt, - memblk->vaddr, -- memblk->paddr, -+ (guint)memblk->paddr, - FALSE - }; - ---- a/gst/subparse/gstssaparse.c -+++ b/gst/subparse/gstssaparse.c -@@ -24,7 +24,9 @@ - #include "config.h" - #endif - -+#include /* isspace() */ - #include /* atoi() */ -+#include /* sscanf() */ - #include - - #include "gstssaparse.h" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb deleted file mode 100644 index f66ee05d..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb +++ /dev/null @@ -1,155 +0,0 @@ -# This recipe is for the i.MX fork of gstreamer1.0-plugins-base. For ease of -# maintenance, the top section is a verbatim copy of an OE-core -# recipe. The second section customizes the recipe for i.MX. - -########### OE-core copy ################## -# Upstream hash: a21649109374fde44cf77de845cfb3cb6cbfb138 - -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc - -DESCRIPTION = "'Base' GStreamer plugins and helper libraries" -HOMEPAGE = "https://gstreamer.freedesktop.org/" -BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues" -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770" - -SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ - file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ - file://0003-viv-fb-Make-sure-config.h-is-included.patch \ - file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ - " -SRC_URI[sha256sum] = "96d8a6413ba9394fbec1217aeef63741a729d476a505a797c1d5337d8fa7c204" - -S = "${WORKDIR}/gst-plugins-base-${PV}" - -DEPENDS += "iso-codes util-linux zlib" - -inherit gobject-introspection - -PACKAGES_DYNAMIC =+ "^libgst.*" - -# opengl packageconfig factored out to make it easy for distros -# and BSP layers to choose OpenGL APIs/platforms/window systems -PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ - jpeg ogg pango png theora vorbis \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ -" - -OPENGL_APIS = 'opengl gles2' -OPENGL_PLATFORMS = 'egl' - -X11DEPENDS = "virtual/libx11 libsm libxrender libxv" -X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled" -X11DISABLEOPTS = "-Dx11=disabled -Dxvideo=disabled -Dxshm=disabled" - -PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" -PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia" -PACKAGECONFIG[graphene] = "-Dgl-graphene=enabled,-Dgl-graphene=disabled,graphene" -PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg" -PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg" -PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus" -PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango" -PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng" -PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native" -PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora" -PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor" -PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual" -PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis" -PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" - -# OpenGL API packageconfigs -PACKAGECONFIG[opengl] = ",,virtual/libgl libglu" -PACKAGECONFIG[gles2] = ",,virtual/libgles2" - -# OpenGL platform packageconfigs -PACKAGECONFIG[egl] = ",,virtual/egl" - -# OpenGL window systems (except for X11) -PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" -PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" -PACKAGECONFIG[dispmanx] = ",,virtual/libomxil" -PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d" - -OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}" - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ - ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ - ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ -" - -FILES:${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h" -FILES:${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" - -def get_opengl_cmdline_list(switch_name, options, d): - selected_options = [] - if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d): - for option in options.split(): - if bb.utils.contains('PACKAGECONFIG', option, True, False, d): - selected_options += [option] - if selected_options: - return '-D' + switch_name + '=' + ','.join(selected_options) - else: - return '' - -CVE_PRODUCT += "gst-plugins-base" - -########### End of OE-core copy ########### - -########### i.MX overrides ################ - -DEFAULT_PREFERENCE = "-1" - -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=69333daa044cb77e486cc36129f7a770" - -SRC_URI:remove = " \ - https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ - file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ - file://0003-viv-fb-Make-sure-config.h-is-included.patch \ - file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch" -SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} " -SRC_URI += "file://0001-Fix-types-to-match-callback-functions.patch" -SRC_URI += "file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch" -GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https" -SRCBRANCH = "MM_04.07.03_2301_L6.1.y" -SRCREV = "fad4d243e030452b26dfbb2eb0f4d94befa4b9eb" - -S = "${WORKDIR}/git" - -inherit use-imx-headers - -PACKAGECONFIG_GL:imxgpu2d = \ - "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl viv-fb', '', d)}" -PACKAGECONFIG_GL:imxgpu3d = \ - "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl viv-fb', '', d)}" -PACKAGECONFIG_GL:use-mainline-bsp = \ - "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl gbm', '', d)}" - -PACKAGECONFIG_REMOVE ?= "jpeg" -PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}" -PACKAGECONFIG:append:imxgpu2d = " g2d" - -PACKAGECONFIG[g2d] = ",,virtual/libg2d" -PACKAGECONFIG[viv-fb] = ",,virtual/libgles2" - -EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}"" - -# links with imx-gpu libs which are pre-built for glibc -# gcompat will address it during runtime -LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined" - -# Remove this meta package when moving to gstreamer 1.22+, this is for making -# gst packagegroups from master work with gstreamer 1.20.3.imx -PACKAGES += "${PN}-videoconvertscale" -ALLOW_EMPTY:${PN}-videoconvertscale = "1" -RDEPENDS:${PN}-videoconvertscale = "${PN}-videoconvert ${PN}-videoscale" - -COMPATIBLE_MACHINE = "(imx-nxp-bsp)" - -########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.imx.bb new file mode 100644 index 00000000..04cb5a5b --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.imx.bb @@ -0,0 +1,147 @@ +# This recipe is for the i.MX fork of gstreamer1.0-plugins-base. For ease of +# maintenance, the top section is a verbatim copy of an OE-core +# recipe. The second section customizes the recipe for i.MX. + +########### OE-core copy ################## +# Upstream hash: fb2d28e0315ece6180c87c7047587673024a09f7 + +require gstreamer1.0-plugins-common.inc + +DESCRIPTION = "'Base' GStreamer plugins and helper libraries" +HOMEPAGE = "https://gstreamer.freedesktop.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ + file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ + file://0003-viv-fb-Make-sure-config.h-is-included.patch \ + file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ + " +SRC_URI[sha256sum] = "f53672294f3985d56355c8b1df8f6b49c8c8721106563e19f53be3507ff2229d" + +S = "${WORKDIR}/gst-plugins-base-${PV}" + +DEPENDS += "iso-codes util-linux zlib" + +inherit gobject-introspection + +# opengl packageconfig factored out to make it easy for distros +# and BSP layers to choose OpenGL APIs/platforms/window systems +PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ + jpeg ogg pango png theora vorbis \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ +" + +OPENGL_APIS = 'opengl gles2' +OPENGL_PLATFORMS = 'egl' + +X11DEPENDS = "virtual/libx11 libsm libxrender libxv" +X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled" +X11DISABLEOPTS = "-Dx11=disabled -Dxvideo=disabled -Dxshm=disabled" + +PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" +PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia" +PACKAGECONFIG[graphene] = "-Dgl-graphene=enabled,-Dgl-graphene=disabled,graphene" +PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg" +PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg" +PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus" +PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango" +PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng" +# This enables Qt5 QML examples in -base. The Qt5 GStreamer +# qmlglsink and qmlglsrc plugins still exist in -good. +PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native" +PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora" +PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor" +PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual" +PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis" +PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" + +# OpenGL API packageconfigs +PACKAGECONFIG[opengl] = ",,virtual/libgl libglu" +PACKAGECONFIG[gles2] = ",,virtual/libgles2" + +# OpenGL platform packageconfigs +PACKAGECONFIG[egl] = ",,virtual/egl" + +# OpenGL window systems (except for X11) +PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" +PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" +PACKAGECONFIG[dispmanx] = ",,virtual/libomxil" +PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d" + +OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}" + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ + ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ + ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ +" + +FILES:${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h" +FILES:${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" + +def get_opengl_cmdline_list(switch_name, options, d): + selected_options = [] + if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d): + for option in options.split(): + if bb.utils.contains('PACKAGECONFIG', option, True, False, d): + selected_options += [option] + if selected_options: + return '-D' + switch_name + '=' + ','.join(selected_options) + else: + return '' + +CVE_PRODUCT += "gst-plugins-base" + +########### End of OE-core copy ########### + +########### i.MX overrides ################ + +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=69333daa044cb77e486cc36129f7a770" + +SRC_URI:remove = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ + file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ + file://0003-viv-fb-Make-sure-config.h-is-included.patch \ + file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch" +SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} " +GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https" +SRCBRANCH = "MM_04.08.00_2305_L6.1.y" +SRCREV = "aaaf7df211523b1835659ae85c510e5615d451d7" + +S = "${WORKDIR}/git" + +inherit use-imx-headers + +PACKAGECONFIG_GL:imxgpu2d = \ + "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl viv-fb', '', d)}" +PACKAGECONFIG_GL:imxgpu3d = \ + "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl viv-fb', '', d)}" +PACKAGECONFIG_GL:use-mainline-bsp = \ + "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl gbm', '', d)}" + +PACKAGECONFIG_REMOVE ?= "jpeg" +PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}" +PACKAGECONFIG:append:imxgpu2d = " g2d" + +PACKAGECONFIG[g2d] = ",,virtual/libg2d" +PACKAGECONFIG[viv-fb] = ",,virtual/libgles2" + +EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}"" + +# links with imx-gpu libs which are pre-built for glibc +# gcompat will address it during runtime +LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" + +########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc new file mode 100644 index 00000000..54dd9287 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc @@ -0,0 +1,47 @@ +# This .inc file contains the common setup for the gstreamer1.0-plugins-* +# plugin set recipes. + +# SUMMARY is set in the actual .bb recipes +HOMEPAGE = "https://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" + +DEPENDS = "gstreamer1.0 glib-2.0-native" + +inherit gettext meson pkgconfig upstream-version-is-even + +require gstreamer1.0-plugins-packaging.inc + +# Orc enables runtime JIT compilation of data processing routines from Orc +# bytecode to SIMD instructions for various architectures (currently SSE, MMX, +# MIPS, Altivec and NEON are supported). +# This value is used in the PACKAGECONFIG values for each plugin set recipe. +# By modifying it, Orc can be enabled/disabled in all of these recipes at once. +GSTREAMER_ORC ?= "orc" +# workaround to disable orc on mips to fix the build failure +# {standard input}: Assembler messages: +# {standard input}:46587: Error: branch out of range +GSTREAMER_ORC:mips = "" +PACKAGECONFIG[orc] = "-Dorc=enabled,-Dorc=disabled,orc orc-native" + +# TODO: put this in a gettext.bbclass patch (with variables to allow for +# configuring the option name and the enabled/disabled values). +def gettext_oemeson(d): + if d.getVar('USE_NLS') == 'no': + return '-Dnls=disabled' + # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set + if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'): + return '-Dnls=disabled' + return '-Dnls=enabled' + +# Not all plugin sets contain examples, so the -Dexamples +# option needs to be added conditionally. +GST_PLUGIN_SET_HAS_EXAMPLES ?= "1" + +EXTRA_OEMESON += " \ + ${@bb.utils.contains('GST_PLUGIN_SET_HAS_EXAMPLES', '1', '-Dexamples=disabled', '', d)} \ + ${@gettext_oemeson(d)} \ +" + +GIR_MESON_ENABLE_FLAG = "enabled" +GIR_MESON_DISABLE_FLAG = "disabled" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-Add-prototype-declaration-for-gst_v4l2_object_stream.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-Add-prototype-declaration-for-gst_v4l2_object_stream.patch deleted file mode 100644 index 0a6637de..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-Add-prototype-declaration-for-gst_v4l2_object_stream.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 50c821e3578e3e0892574d88ef7edb25d60ae50a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 12 Mar 2023 19:39:46 -0700 -Subject: [PATCH] Add prototype declaration for gst_v4l2_object_streamoff - -Fixes build with latest compilers e.g. clang-16 - -../git/sys/v4l2/gstv4l2videodec.c:354:10: error: call to undeclared function 'gst_v4l2_object_streamoff'; ISO C99 and later do not support implicit function declarations [ -Wimplicit-function-declaration] - if (!gst_v4l2_object_streamoff (self->v4l2capture)) - ^ - -Upstream-Status: Submitted [https://github.com/nxp-imx/gst-plugins-good/pull/1] -Signed-off-by: Khem Raj ---- - sys/v4l2/gstv4l2object.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h -index 685086902..c84dc1724 100644 ---- a/sys/v4l2/gstv4l2object.h -+++ b/sys/v4l2/gstv4l2object.h -@@ -323,6 +323,7 @@ GstStructure * gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc); - - /* crop / compose */ - gboolean gst_v4l2_object_set_crop (GstV4l2Object * obj, struct v4l2_rect *result); -+gboolean gst_v4l2_object_streamoff (GstV4l2Object * v4l2object); - - /* TODO Move to proper namespace */ - /* open/close the device */ --- -2.39.2 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch deleted file mode 100644 index 788d7520..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch +++ /dev/null @@ -1,56 +0,0 @@ -From bf8b2fa0f6870589d036f0f33c140a3f85b530a0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 31 Mar 2020 21:23:28 -0700 -Subject: [PATCH] qt: include ext/qt/gstqtgl.h instead of gst/gl/gstglfuncs.h - -gst/gl/gstglfuncs.h is included via ext/qt/gstqtgl.h which has logic to -prefer qt headers definitions for GLsync - -This helps in fixing build errors like below - -/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: error: conflicting declaration 'typedef struct __GLsync* GLsync' - 24 | typedef struct __GLsync *GLsync; - | ^~~~~~ -In file included from /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:84, - from ../gst-plugins-good-1.16.2/ext/qt/gstqsgtexture.cc:30: -/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: note: previous declaration as 'typedef void* GLsync -' - 40 | typedef gpointer GLsync; - | ^~~~~~ - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - ext/qt/gstqsgtexture.cc | 2 +- - ext/qt/qtwindow.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc -index a05d26e..4cc9fc6 100644 ---- a/ext/qt/gstqsgtexture.cc -+++ b/ext/qt/gstqsgtexture.cc -@@ -27,7 +27,7 @@ - - #include - #include --#include -+#include - #include "gstqsgtexture.h" - - #define GST_CAT_DEFAULT gst_qsg_texture_debug -diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc -index 9360c33..0dfd3f1 100644 ---- a/ext/qt/qtwindow.cc -+++ b/ext/qt/qtwindow.cc -@@ -25,7 +25,7 @@ - #include - - #include --#include -+#include - #include "qtwindow.h" - #include "gstqsgtexture.h" - #include "gstqtglutility.h" --- -2.28.0 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Include-gst-allocators-gstdmabuf.h-for-gst_is_d.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Include-gst-allocators-gstdmabuf.h-for-gst_is_d.patch deleted file mode 100644 index 1345dd4f..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Include-gst-allocators-gstdmabuf.h-for-gst_is_d.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dc5d752ec3fbec10402aa60fa8245e384e0c7206 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 7 Jun 2023 22:53:47 -0700 -Subject: [PATCH] v4l2: Include gst/allocators/gstdmabuf.h for - gst_is_dmabuf_memory() - -This is flagged by clang-16 -../git/sys/v4l2/gstv4l2videoenc.c:756:9: error: call to undeclared function 'gst_is_dmabuf_memory'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] - if (gst_is_dmabuf_memory (gst_buffer_peek_memory (frame->input_buffer, 0)) - ^ - -Upstream-Status: Submitted [https://github.com/nxp-imx/gst-plugins-good/pull/2] -Signed-off-by: Khem Raj ---- - sys/v4l2/gstv4l2videoenc.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sys/v4l2/gstv4l2videoenc.c b/sys/v4l2/gstv4l2videoenc.c -index a505a228f..f24d5a795 100644 ---- a/sys/v4l2/gstv4l2videoenc.c -+++ b/sys/v4l2/gstv4l2videoenc.c -@@ -36,6 +36,7 @@ - - #include - #include -+#include - - GST_DEBUG_CATEGORY_STATIC (gst_v4l2_video_enc_debug); - #define GST_CAT_DEFAULT gst_v4l2_video_enc_debug --- -2.41.0 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.3.imx.bb deleted file mode 100644 index 95e33d5b..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.3.imx.bb +++ /dev/null @@ -1,118 +0,0 @@ -# This recipe is for the i.MX fork of gstreamer1.0-plugins-good. For ease of -# maintenance, the top section is a verbatim copy of an OE-core -# recipe. The second section customizes the recipe for i.MX. - -########### OE-core copy ################## -# Upstream hash: 66ba273c10b7d738f18620b5a2883d735fff3162 - -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc - -DESCRIPTION = "'Good' GStreamer plugins" -HOMEPAGE = "https://gstreamer.freedesktop.org/" -BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues" - -SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ - file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \ - file://0001-v4l2-Include-gst-allocators-gstdmabuf.h-for-gst_is_d.patch \ - " - -SRC_URI[sha256sum] = "f8f3c206bf5cdabc00953920b47b3575af0ef15e9f871c0b6966f6d0aa5868b7" - -S = "${WORKDIR}/gst-plugins-good-${PV}" - -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" - -DEPENDS += "gstreamer1.0-plugins-base libcap zlib" -RPROVIDES:${PN}-pulseaudio += "${PN}-pulse" -RPROVIDES:${PN}-soup += "${PN}-souphttpsrc" - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ - ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'asm', '', d)} \ - bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup speex taglib v4l2 \ -" - -X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" -X11ENABLEOPTS = "-Dximagesrc=enabled -Dximagesrc-xshm=enabled -Dximagesrc-xfixes=enabled -Dximagesrc-xdamage=enabled" -X11DISABLEOPTS = "-Dximagesrc=disabled -Dximagesrc-xshm=disabled -Dximagesrc-xfixes=disabled -Dximagesrc-xdamage=disabled" - -QT5WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}" - -PACKAGECONFIG[asm] = "-Dasm=enabled,-Dasm=disabled,nasm-native" -PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" -PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" -PACKAGECONFIG[dv1394] = "-Ddv1394=enabled,-Ddv1394=disabled,libiec61883 libavc1394 libraw1394" -PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac" -PACKAGECONFIG[gdk-pixbuf] = "-Dgdk-pixbuf=enabled,-Dgdk-pixbuf=disabled,gdk-pixbuf" -PACKAGECONFIG[gtk] = "-Dgtk3=enabled,-Dgtk3=disabled,gtk+3" -PACKAGECONFIG[gudev] = "-Dv4l2-gudev=enabled,-Dv4l2-gudev=disabled,libgudev" -PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack" -PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg" -PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame" -PACKAGECONFIG[libpng] = "-Dpng=enabled,-Dpng=disabled,libpng" -PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils" -PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" -PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" -PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native ${QT5WAYLANDDEPENDS}" -# Starting with version 1.20, the GStreamer soup plugin loads libsoup with dlopen() -# instead of linking to it. And instead of using the default libsoup C headers, it -# uses its own stub header. Consequently, objdump will not show the libsoup .so as -# a dependency, and libsoup won't be added to an image. Fix this by setting libsoup -# as RDEPEND instead of DEPEND. -PACKAGECONFIG[soup] = "-Dsoup=enabled,-Dsoup=disabled,,libsoup-2.4" -PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex" -PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland" -PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib" -PACKAGECONFIG[v4l2] = "-Dv4l2=enabled -Dv4l2-probe=true,-Dv4l2=disabled -Dv4l2-probe=false" -PACKAGECONFIG[vpx] = "-Dvpx=enabled,-Dvpx=disabled,libvpx" -PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack" -PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - -Daalib=disabled \ - -Ddirectsound=disabled \ - -Ddv=disabled \ - -Dlibcaca=disabled \ - -Doss=enabled \ - -Doss4=disabled \ - -Dosxaudio=disabled \ - -Dosxvideo=disabled \ - -Dshout2=disabled \ - -Dtwolame=disabled \ - -Dwaveform=disabled \ -" - -FILES:${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" - -########### End of OE-core copy ########### - -########### i.MX overrides ################ - -DEFAULT_PREFERENCE = "-1" - -LIC_FILES_CHKSUM = " \ - file://LICENSE.txt;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe \ -" - -# fb implementation of v4l2 uses libdrm -DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'v4l2', '${DEPENDS_V4L2}', '', d)}" -DEPENDS_V4L2 = "${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'libdrm', d)}" -RDEPENDS:${PN}-soup += "${@bb.utils.contains('PACKAGECONFIG', 'soup', 'libsoup-2.4', '', d)}" - -SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz" -SRC_URI:prepend = "${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} " -SRC_URI += "file://0001-Add-prototype-declaration-for-gst_v4l2_object_stream.patch" -GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-good.git;protocol=https" -SRCBRANCH = "MM_04.07.03_2301_L6.1.y" -SRCREV = "5de04382c1c73e7b6d3c448a8902f358784d4567" - -S = "${WORKDIR}/git" - -COMPATIBLE_MACHINE = "(imx-nxp-bsp)" - -########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.imx.bb new file mode 100644 index 00000000..a594e0c2 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.imx.bb @@ -0,0 +1,116 @@ +# This recipe is for the i.MX fork of gstreamer1.0-plugins-good. For ease of +# maintenance, the top section is a verbatim copy of an OE-core +# recipe. The second section customizes the recipe for i.MX. + +########### OE-core copy ################## +# Upstream hash: fb2d28e0315ece6180c87c7047587673024a09f7 + +require gstreamer1.0-plugins-common.inc + +DESCRIPTION = "'Good' GStreamer plugins" +HOMEPAGE = "https://gstreamer.freedesktop.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ + file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \ + " + +SRC_URI[sha256sum] = "582e617271e7f314d1a2211e3e3856ae2e4303c8c0d6114e9c4a5ea5719294b0" + +S = "${WORKDIR}/gst-plugins-good-${PV}" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +DEPENDS += "gstreamer1.0-plugins-base libcap zlib" +RPROVIDES:${PN}-pulseaudio += "${PN}-pulse" +RPROVIDES:${PN}-soup += "${PN}-souphttpsrc" +RDEPENDS:${PN}-soup += "${MLPREFIX}${@bb.utils.contains('PACKAGECONFIG', 'soup2', 'libsoup-2.4', 'libsoup', d)}" + +PACKAGECONFIG_SOUP ?= "soup3" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${PACKAGECONFIG_SOUP} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ + ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'asm', '', d)} \ + bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 speex taglib v4l2 \ +" + +X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" +X11ENABLEOPTS = "-Dximagesrc=enabled -Dximagesrc-xshm=enabled -Dximagesrc-xfixes=enabled -Dximagesrc-xdamage=enabled" +X11DISABLEOPTS = "-Dximagesrc=disabled -Dximagesrc-xshm=disabled -Dximagesrc-xfixes=disabled -Dximagesrc-xdamage=disabled" + +QT5WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}" + +PACKAGECONFIG[asm] = "-Dasm=enabled,-Dasm=disabled,nasm-native" +PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" +PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" +PACKAGECONFIG[dv1394] = "-Ddv1394=enabled,-Ddv1394=disabled,libiec61883 libavc1394 libraw1394" +PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac" +PACKAGECONFIG[gdk-pixbuf] = "-Dgdk-pixbuf=enabled,-Dgdk-pixbuf=disabled,gdk-pixbuf" +PACKAGECONFIG[gtk] = "-Dgtk3=enabled,-Dgtk3=disabled,gtk+3" +PACKAGECONFIG[gudev] = "-Dv4l2-gudev=enabled,-Dv4l2-gudev=disabled,libgudev" +PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack" +PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg" +PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame" +PACKAGECONFIG[libpng] = "-Dpng=enabled,-Dpng=disabled,libpng" +PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils" +PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" +PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" +PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native ${QT5WAYLANDDEPENDS}" +PACKAGECONFIG[soup2] = "-Dsoup=enabled,,libsoup-2.4,,,soup3" +PACKAGECONFIG[soup3] = "-Dsoup=enabled,,libsoup,,,soup2" +PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex" +PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland" +PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib" +PACKAGECONFIG[v4l2] = "-Dv4l2=enabled -Dv4l2-probe=true,-Dv4l2=disabled -Dv4l2-probe=false" +PACKAGECONFIG[vpx] = "-Dvpx=enabled,-Dvpx=disabled,libvpx" +PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack" +PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Daalib=disabled \ + -Ddirectsound=disabled \ + -Ddv=disabled \ + -Dlibcaca=disabled \ + -Doss=enabled \ + -Doss4=disabled \ + -Dosxaudio=disabled \ + -Dosxvideo=disabled \ + -Dshout2=disabled \ + -Dtwolame=disabled \ + -Dwaveform=disabled \ +" + +FILES:${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" + +########### End of OE-core copy ########### + +########### i.MX overrides ################ + +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = " \ + file://LICENSE.txt;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe \ +" + +# fb implementation of v4l2 uses libdrm +DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'v4l2', '${DEPENDS_V4L2}', '', d)}" +DEPENDS_V4L2 = "${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'libdrm', d)}" + +SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ + file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch" +SRC_URI:prepend = "${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} " +GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-good.git;protocol=https" +SRCBRANCH = "MM_04.08.00_2305_L6.1.y" +SRCREV = "84704602fe5d6d5012085e63fa8a7232af13c9b7" + +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" + +########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.2.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.2.0.bb index 70ae8937..5bf60e62 100644 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.2.0.bb +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.2.0.bb @@ -60,7 +60,7 @@ PACKAGECONFIG[v4l2-mxc-source-sink] = "-Dv4l2-mxc-source-sink=true,-Dv4l2-mxc-so PACKAGECONFIG[uniaudiodec] = "-Duniaudiodec=enabled,-Duniaudiodec=disabled,imx-codec" PACKAGECONFIG[mp3encoder] = "-Dmp3encoder=enabled,-Dmp3encoder=disabled,imx-codec" -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc +require gstreamer1.0-plugins-packaging.inc # the following line is required to produce one package for each plugin PACKAGES_DYNAMIC = "^${PN}-.*" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc new file mode 100644 index 00000000..8b1c0011 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc @@ -0,0 +1,19 @@ +# This .inc file contains functionality for automatically setting +# the the license of all plugins according to the GSTREAMER_GPL. + +PACKAGESPLITFUNCS += "set_gstreamer_license" + +python set_gstreamer_license () { + import oe.utils + pn = d.getVar('PN') + '-' + gpl_plugins_names = [pn+plugin for plugin in d.getVar('GSTREAMER_GPL').split()] + for pkg in oe.utils.packages_filter_out_system(d): + if pkg in gpl_plugins_names: + d.setVar('LICENSE:' + pkg, 'GPL-2.0-or-later') + else: + d.setVar('LICENSE:' + pkg, 'LGPL-2.1-or-later') +} + +EXTRA_OEMESON += " \ + ${@bb.utils.contains_any('PACKAGECONFIG', "${GSTREAMER_GPL}", '-Dgpl=enabled', '-Dgpl=disabled', d)} \ + " diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc new file mode 100644 index 00000000..d77aeed8 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc @@ -0,0 +1,73 @@ +# This .inc file contains functionality for automatically splitting +# built plugins into individual packages for each plugin. A -meta +# package is also set up that has no files of its own, but contains +# the names of all plugin packages in its RDEPENDS list. +# +# This is mainly used by the gstreamer1.0-plugins-* plugin set recipes, +# but can be used in any recipe that produces GStreamer plugins. + +# Dynamically generate packages for all enabled plugins +PACKAGES_DYNAMIC = "^${PN}-.* ^libgst.*" + +PACKAGESPLITFUNCS =+ "split_gstreamer10_packages" +PACKAGESPLITFUNCS += "set_gstreamer10_metapkg_rdepends" + +python split_gstreamer10_packages () { + gst_libdir = d.expand('${libdir}/gstreamer-1.0') + postinst = d.getVar('plugin_postinst') + glibdir = d.getVar('libdir') + + # GStreamer libraries + do_split_packages(d, glibdir, r'^lib(.*)\.so\.*', 'lib%s', 'GStreamer 1.0 %s library', extra_depends='', allow_links=True) + # GStreamer plugin shared objects + do_split_packages(d, gst_libdir, r'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer 1.0 plugin for %s', postinst=postinst, extra_depends='') + # GObject introspection files for GStreamer plugins + do_split_packages(d, glibdir+'/girepository-1.0', r'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer 1.0 typelib file for %s', postinst=postinst, extra_depends='') + # Static GStreamer libraries for development + do_split_packages(d, gst_libdir, r'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer 1.0 plugin for %s (static development files)', extra_depends='${PN}-staticdev') +} + +python set_gstreamer10_metapkg_rdepends () { + import os + import oe.utils + + # Go through all generated packages (excluding the main package and + # the -meta package itself) and add them to the -meta package as RDEPENDS. + + pn = d.getVar('PN') + metapkg = pn + '-meta' + d.setVar('ALLOW_EMPTY:' + metapkg, "1") + d.setVar('FILES:' + metapkg, "") + exclude = [ pn, pn + '-meta' ] + metapkg_rdepends = [] + pkgdest = d.getVar('PKGDEST') + for pkg in oe.utils.packages_filter_out_system(d): + if pkg not in exclude and pkg not in metapkg_rdepends: + # See if the package is empty by looking at the contents of its PKGDEST subdirectory. + # If this subdirectory is empty, then the package is. + # Empty packages do not get added to the meta package's RDEPENDS + pkgdir = os.path.join(pkgdest, pkg) + if os.path.exists(pkgdir): + dir_contents = os.listdir(pkgdir) or [] + else: + dir_contents = [] + is_empty = len(dir_contents) == 0 + if not is_empty: + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends)) + d.setVar('DESCRIPTION:' + metapkg, pn + ' meta package') +} + +# each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev +# so we need them even when empty (like in gst-plugins-good case) +ALLOW_EMPTY:${PN} = "1" +ALLOW_EMPTY:${PN}-dev = "1" +ALLOW_EMPTY:${PN}-staticdev = "1" + +PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" + +FILES:${PN} = "" +FILES:${PN}-apps = "${bindir}" +FILES:${PN}-glib = "${datadir}/glib-2.0" + +RRECOMMENDS:${PN} += "${PN}-meta" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.3.imx.bb deleted file mode 100644 index 32af9683..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.3.imx.bb +++ /dev/null @@ -1,57 +0,0 @@ -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc - -DESCRIPTION = "'Ugly GStreamer plugins" -HOMEPAGE = "https://gstreamer.freedesktop.org/" -BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues" - -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" - -LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" -LICENSE_FLAGS = "commercial" - -SRC_URI = " \ - https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${@get_gst_ver("${PV}")}.tar.xz \ - " -SRC_URI[sha256sum] = "8caa20789a09c304b49cf563d33cca9421b1875b84fcc187e4a385fa01d6aefd" - -S = "${WORKDIR}/gst-plugins-ugly-${@get_gst_ver("${PV}")}" - -DEPENDS += "gstreamer1.0-plugins-base" - -GST_PLUGIN_SET_HAS_EXAMPLES = "0" - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - a52dec mpeg2dec \ -" - -PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr" -PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr" -PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52" -PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio" -PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread" -PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec" -PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264" - -GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'a52dec cdio dvdread mpeg2dec x264', d)}" - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - -Dsidplay=disabled \ -" - -# Drop .imx from PV -def get_gst_ver(v): - return oe.utils.trim_version(v, 3) - -FILES:${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" -FILES:${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" - -# These recipes are copies of oe-core 1.20.3 that are not available -# anymore upstream on the master branch. -# The requirement to have them is because they are dependencies of -# the other ones imx specific gstreamer forks on the layer. -# So make their names maching the exisng ones will make it more safe. -COMPATIBLE_MACHINE = "(imx-nxp-bsp)" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.imx.bb new file mode 100644 index 00000000..17522a93 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.imx.bb @@ -0,0 +1,52 @@ +require gstreamer1.0-plugins-common.inc +require gstreamer1.0-plugins-license.inc + +SUMMARY = "'Ugly GStreamer plugins" +HOMEPAGE = "https://gstreamer.freedesktop.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues" + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + " + +LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" +LICENSE_FLAGS = "commercial" + +SRC_URI = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${@get_gst_ver("${PV}")}.tar.xz \ + " +SRC_URI[sha256sum] = "a644dc981afa2d8d3a913f763ab9523c0620ee4e65a7ec73c7721c29da3c5a0c" + +S = "${WORKDIR}/gst-plugins-ugly-${@get_gst_ver("${PV}")}" + +DEPENDS += "gstreamer1.0-plugins-base" + +GST_PLUGIN_SET_HAS_EXAMPLES = "0" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + a52dec mpeg2dec \ +" + +PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr" +PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr" +PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52" +PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio" +PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread" +PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec" +PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264" + +GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'a52dec cdio dvdread mpeg2dec x264', d)}" + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Dsidplay=disabled \ +" + +# Drop .imx from PV +def get_gst_ver(v): + return oe.utils.trim_version(v, 3) + +FILES:${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" +FILES:${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.3.imx.bb deleted file mode 100644 index 4da992ee..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.3.imx.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Python bindings for GStreamer 1.0" -DESCRIPTION = "GStreamer Python binding overrides (complementing the bindings \ -provided by python-gi) " -HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/" -SECTION = "multimedia" - -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" - -SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${@get_gst_ver('${PV}')}.tar.xz" -SRC_URI[sha256sum] = "db348120eae955b8cc4de3560a7ea06e36d6e1ddbaa99a7ad96b59846601cfdc" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" -RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" - -PNREAL = "gst-python" - -S = "${WORKDIR}/${PNREAL}-${@get_gst_ver('${PV}')}" - -EXTRA_OEMESON += "\ - -Dtests=disabled \ - -Dplugin=enabled \ - -Dlibpython-dir=${libdir} \ -" - -# Drop .imx from PV -def get_gst_ver(v): - return oe.utils.trim_version(v, 3) - -inherit meson pkgconfig setuptools3-base upstream-version-is-even - -FILES:${PN} += "${libdir}/gstreamer-1.0" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.imx.bb new file mode 100644 index 00000000..6f38929a --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.imx.bb @@ -0,0 +1,32 @@ +SUMMARY = "Python bindings for GStreamer 1.0" +DESCRIPTION = "GStreamer Python binding overrides (complementing the bindings \ +provided by python-gi) " +HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/" +SECTION = "multimedia" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${@get_gst_ver('${PV}')}.tar.xz" +SRC_URI[sha256sum] = "6c63ad364ca4617eb2cbb3975ab26c66760eb3c7a6adf5be69f99c11e21ef3a5" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" +RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" + +PNREAL = "gst-python" + +S = "${WORKDIR}/${PNREAL}-${@get_gst_ver('${PV}')}" + +EXTRA_OEMESON += "\ + -Dtests=disabled \ + -Dplugin=enabled \ + -Dlibpython-dir=${libdir} \ +" + +# Drop .imx from PV +def get_gst_ver(v): + return oe.utils.trim_version(v, 3) + +inherit meson pkgconfig setuptools3-base upstream-version-is-even + +FILES:${PN} += "${libdir}/gstreamer-1.0" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.3.imx.bb deleted file mode 100644 index 2a3d9db6..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.3.imx.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "A library on top of GStreamer for building an RTSP server" -HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" -SECTION = "multimedia" -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" - -PNREAL = "gst-rtsp-server" - -SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${@get_gst_ver("${PV}")}.tar.xz" - -SRC_URI[sha256sum] = "ee402718be9b127f0e5e66ca4c1b4f42e4926ec93ba307b7ccca5dc6cc9794ca" - -S = "${WORKDIR}/${PNREAL}-${@get_gst_ver("${PV}")}" - -inherit meson pkgconfig upstream-version-is-even gobject-introspection - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - -Dexamples=disabled \ - -Dtests=disabled \ -" - -GIR_MESON_ENABLE_FLAG = "enabled" -GIR_MESON_DISABLE_FLAG = "disabled" - -# Drop .imx from PV -def get_gst_ver(v): - return oe.utils.trim_version(v, 3) - -# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc - -CVE_PRODUCT += "gst-rtsp-server" - -# These recipes are copies of oe-core 1.20.3 that are not available -# anymore upstream on the master branch. -# The requirement to have them is because they are dependencies of -# the other ones imx specific gstreamer forks on the layer. -# So make their names maching the exisng ones will make it more safe. -COMPATIBLE_MACHINE = "(imx-nxp-bsp)" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.0.imx.bb new file mode 100644 index 00000000..d569ea9f --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.0.imx.bb @@ -0,0 +1,37 @@ +SUMMARY = "A library on top of GStreamer for building an RTSP server" +HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" +SECTION = "multimedia" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" + +PNREAL = "gst-rtsp-server" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${@get_gst_ver("${PV}")}.tar.xz" + +SRC_URI[sha256sum] = "aea24eeb59ee5fadfac355de2f7cecb51966c3e147e5ad7cfb4c314f1a4086ed" + +S = "${WORKDIR}/${PNREAL}-${@get_gst_ver("${PV}")}" + +inherit meson pkgconfig upstream-version-is-even gobject-introspection + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Dexamples=disabled \ + -Dtests=disabled \ +" + +GIR_MESON_ENABLE_FLAG = "enabled" +GIR_MESON_DISABLE_FLAG = "disabled" + +# Drop .imx from PV +def get_gst_ver(v): + return oe.utils.trim_version(v, 3) + +# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well +require gstreamer1.0-plugins-packaging.inc + +CVE_PRODUCT += "gst-rtsp-server" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.3.imx.bb deleted file mode 100644 index 503f828f..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.3.imx.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "VA-API support to GStreamer" -HOMEPAGE = "https://gstreamer.freedesktop.org/" -DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \ -based plugins for GStreamer and helper libraries: `vaapidecode', \ -`vaapiconvert', and `vaapisink'." - -REALPN = "gstreamer-vaapi" - -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${@get_gst_ver('${PV}')}.tar.xz" - -SRC_URI[sha256sum] = "6ee99eb316abdde9ad37002915bd8c3867918f6fdc74b7cf2ac4c1ae0d690b45" - -S = "${WORKDIR}/${REALPN}-${@get_gst_ver('${PV}')}" -DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" - -inherit meson pkgconfig features_check upstream-version-is-even - -REQUIRED_DISTRO_FEATURES ?= "opengl" - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - -Dexamples=disabled \ - -Dtests=enabled \ -" - -# Drop .imx from PV -def get_gst_ver(v): - return oe.utils.trim_version(v, 3) - -PACKAGES =+ "${PN}-tests" - -# OpenGL packageconfig factored out to make it easy for distros -# and BSP layers to pick either glx, egl, or no GL. By default, -# try detecting X11 first, and if found (with OpenGL), use GLX, -# otherwise try to check if EGL can be used. -PACKAGECONFIG_GL ?= "egl" - -PACKAGECONFIG ??= "drm encoders \ - ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" - -PACKAGECONFIG[drm] = "-Dwith_drm=yes,-Dwith_drm=no,udev libdrm" -PACKAGECONFIG[egl] = "-Dwith_egl=yes,-Dwith_egl=no,virtual/egl" -PACKAGECONFIG[encoders] = "-Dwith_encoders=yes,-Dwith_encoders=no" -PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/libgl" -PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland wayland-protocols" -PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxrandr libxrender" - -FILES:${PN} += "${libdir}/gstreamer-*/*.so" -FILES:${PN}-dbg += "${libdir}/gstreamer-*/.debug" -FILES:${PN}-dev += "${libdir}/gstreamer-*/*.a" -FILES:${PN}-tests = "${bindir}/*" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.0.imx.bb new file mode 100644 index 00000000..288de6c5 --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.0.imx.bb @@ -0,0 +1,59 @@ +SUMMARY = "VA-API support to GStreamer" +HOMEPAGE = "https://gstreamer.freedesktop.org/" +DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \ +based plugins for GStreamer and helper libraries: `vaapidecode', \ +`vaapiconvert', and `vaapisink'." + +REALPN = "gstreamer-vaapi" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${@get_gst_ver('${PV}')}.tar.xz" + +SRC_URI[sha256sum] = "593ccad19f88e5fa29f40f98356c007806bd535828707b1406944d16a90bdff5" + +S = "${WORKDIR}/${REALPN}-${@get_gst_ver('${PV}')}" +DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" + +inherit meson pkgconfig features_check upstream-version-is-even + +REQUIRED_DISTRO_FEATURES ?= "opengl" + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Dexamples=disabled \ + -Dtests=enabled \ +" + +# Drop .imx from PV +def get_gst_ver(v): + return oe.utils.trim_version(v, 3) + +PACKAGES =+ "${PN}-tests" + +# Use egl for i.MX +PACKAGECONFIG_GL ?= "egl" + +PACKAGECONFIG ??= "drm encoders \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" + +PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,udev libdrm" +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl" +PACKAGECONFIG[encoders] = "-Dencoders=enabled,-Dencoders=disabled" +PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/libgl" +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols" +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libxrandr libxrender" + +FILES:${PN} += "${libdir}/gstreamer-*/*.so" +FILES:${PN}-dbg += "${libdir}/gstreamer-*/.debug" +FILES:${PN}-dev += "${libdir}/gstreamer-*/*.a" +FILES:${PN}-tests = "${bindir}/*" + +# correct .pc install location - fixed in upstream trunk +do_install:append() { + mkdir -p ${D}/${libdir}/pkgconfig + mv ${D}/${libdir}/gstreamer-1.0/pkgconfig/*.pc ${D}/${libdir}/pkgconfig + rmdir ${D}/${libdir}/gstreamer-1.0/pkgconfig/ +} diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch index 312c04fb..1b9278db 100644 --- a/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch +++ b/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch @@ -1,20 +1,21 @@ -From 1eb77a4ea5a3967c688d8f1192f99c605badc7e2 Mon Sep 17 00:00:00 2001 +From 559e1dd850b2b9eb3a415aa43e932e5e48f605cd Mon Sep 17 00:00:00 2001 From: Jose Quaresma Date: Sun, 11 Apr 2021 19:48:13 +0100 -Subject: [PATCH 1/4] tests: respect the idententaion used in meson +Subject: [PATCH] tests: respect the idententaion used in meson Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] Signed-off-by: Jose Quaresma + --- - subprojects/gstreamer/tests/check/meson.build | 10 +++++----- + tests/check/meson.build | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) -diff --git a/subprojects/gstreamer/tests/check/meson.build b/subprojects/gstreamer/tests/check/meson.build -index 9c4228b6e4..506606684d 100644 ---- a/subprojects/gstreamer/tests/check/meson.build -+++ b/subprojects/gstreamer/tests/check/meson.build -@@ -146,11 +146,11 @@ foreach t : core_tests +diff --git a/tests/check/meson.build b/tests/check/meson.build +index 9787b0a..16caac7 100644 +--- a/tests/check/meson.build ++++ b/tests/check/meson.build +@@ -145,11 +145,11 @@ foreach t : core_tests if not skip_test exe = executable(test_name, fname, @@ -22,15 +23,12 @@ index 9c4228b6e4..506606684d 100644 - cpp_args : gst_c_args + test_defines, - include_directories : [configinc], - link_with : link_with_libs, -- dependencies : test_deps + glib_deps + gst_deps, +- dependencies : gst_deps + test_deps, + c_args : gst_c_args + test_defines, + cpp_args : gst_c_args + test_defines, + include_directories : [configinc], + link_with : link_with_libs, -+ dependencies : test_deps + glib_deps + gst_deps, ++ dependencies : gst_deps + test_deps, ) env = environment() --- -2.33.1 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch index d18c19c3..568e38cb 100644 --- a/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch +++ b/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch @@ -1,7 +1,7 @@ -From 62f5bb7bfc2498219df7280e73480d8ed2378ce5 Mon Sep 17 00:00:00 2001 +From 08b1aaff972a7f6349373fc1ad4cc23081adb52c Mon Sep 17 00:00:00 2001 From: Jose Quaresma Date: Sun, 11 Apr 2021 19:48:13 +0100 -Subject: [PATCH 2/4] tests: add support for install the tests +Subject: [PATCH] tests: add support for install the tests This will provide to run the tests using the gnome-desktop-testing [1] @@ -10,19 +10,20 @@ This will provide to run the tests using the gnome-desktop-testing [1] Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] Signed-off-by: Jose Quaresma + --- - subprojects/gstreamer/meson.build | 4 ++++ - subprojects/gstreamer/meson_options.txt | 1 + - subprojects/gstreamer/tests/check/meson.build | 22 ++++++++++++++++++- - .../gstreamer/tests/check/template.test.in | 3 +++ + meson.build | 4 ++++ + meson_options.txt | 1 + + tests/check/meson.build | 22 +++++++++++++++++++++- + tests/check/template.test.in | 3 +++ 4 files changed, 29 insertions(+), 1 deletion(-) - create mode 100644 subprojects/gstreamer/tests/check/template.test.in + create mode 100644 tests/check/template.test.in -diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build -index d20fe0040f..b595d8f990 100644 ---- a/subprojects/gstreamer/meson.build -+++ b/subprojects/gstreamer/meson.build -@@ -562,6 +562,10 @@ if bashcomp_dep.found() +diff --git a/meson.build b/meson.build +index f9f591d..3906fb3 100644 +--- a/meson.build ++++ b/meson.build +@@ -606,6 +606,10 @@ if bashcomp_dep.found() endif endif @@ -33,10 +34,10 @@ index d20fe0040f..b595d8f990 100644 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') pkgconfig = import('pkgconfig') -diff --git a/subprojects/gstreamer/meson_options.txt b/subprojects/gstreamer/meson_options.txt -index 7363bdb7a1..a34ba37dad 100644 ---- a/subprojects/gstreamer/meson_options.txt -+++ b/subprojects/gstreamer/meson_options.txt +diff --git a/meson_options.txt b/meson_options.txt +index 7363bdb..a34ba37 100644 +--- a/meson_options.txt ++++ b/meson_options.txt @@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso option('memory-alignment', type: 'combo', choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'], @@ -45,10 +46,10 @@ index 7363bdb7a1..a34ba37dad 100644 # Feature options option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries') -diff --git a/subprojects/gstreamer/tests/check/meson.build b/subprojects/gstreamer/tests/check/meson.build -index 506606684d..00a138a568 100644 ---- a/subprojects/gstreamer/tests/check/meson.build -+++ b/subprojects/gstreamer/tests/check/meson.build +diff --git a/tests/check/meson.build b/tests/check/meson.build +index 16caac7..f2d400f 100644 +--- a/tests/check/meson.build ++++ b/tests/check/meson.build @@ -124,10 +124,16 @@ test_defines = [ '-UG_DISABLE_ASSERT', '-UG_DISABLE_CAST_CHECKS', @@ -67,16 +68,16 @@ index 506606684d..00a138a568 100644 # sanity checking if get_option('check').disabled() if get_option('tests').enabled() -@@ -151,6 +157,8 @@ foreach t : core_tests +@@ -150,6 +156,8 @@ foreach t : core_tests include_directories : [configinc], link_with : link_with_libs, - dependencies : test_deps + glib_deps + gst_deps, + dependencies : gst_deps + test_deps, + install_dir: installed_tests_execdir, + install: installed_tests_enabled, ) env = environment() -@@ -162,6 +170,18 @@ foreach t : core_tests +@@ -161,6 +169,18 @@ foreach t : core_tests env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner') env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer') @@ -95,15 +96,12 @@ index 506606684d..00a138a568 100644 test(test_name, exe, env: env, timeout : 3 * 60) endif endforeach -diff --git a/subprojects/gstreamer/tests/check/template.test.in b/subprojects/gstreamer/tests/check/template.test.in +diff --git a/tests/check/template.test.in b/tests/check/template.test.in new file mode 100644 -index 0000000000..f701627f87 +index 0000000..f701627 --- /dev/null -+++ b/subprojects/gstreamer/tests/check/template.test.in ++++ b/tests/check/template.test.in @@ -0,0 +1,3 @@ +[Test] +Type=session +Exec=@installed_tests_dir@/@program@ --- -2.33.1 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0_1.20.3.imx.bb deleted file mode 100644 index 95d6425c..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0_1.20.3.imx.bb +++ /dev/null @@ -1,104 +0,0 @@ -# This recipe is for the i.MX fork of gstreamer1.0. For ease of -# maintenance, the top section is a verbatim copy of an OE-core -# recipe. The second section customizes the recipe for i.MX. - -########### OE-core copy ################## -# Upstream hash: a21649109374fde44cf77de845cfb3cb6cbfb138 - -SUMMARY = "GStreamer 1.0 multimedia framework" -DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ -It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." -HOMEPAGE = "http://gstreamer.freedesktop.org/" -BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" -SECTION = "multimedia" -LICENSE = "LGPL-2.1-or-later" - -DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native" - -inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome - -LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ - file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" - -S = "${WORKDIR}/gstreamer-${PV}" - -SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ - file://run-ptest \ - file://0001-tests-respect-the-idententaion-used-in-meson.patch;striplevel=3 \ - file://0002-tests-add-support-for-install-the-tests.patch;striplevel=3 \ - file://0003-tests-use-a-dictionaries-for-environment.patch;striplevel=3 \ - file://0004-tests-add-helper-script-to-run-the-installed_tests.patch;striplevel=3 \ - file://0005-tests-remove-gstbin-test_watch_for_state_change-test.patch \ - " -SRC_URI[sha256sum] = "de094a404a3ad8f4977829ea87edf695a4da0b5c8f613ebe54ab414bac89f031" - -PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ - check \ - debug \ - tools" - -PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false" -PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false" -PACKAGECONFIG[coretracers] = "-Dcoretracers=enabled,-Dcoretracers=disabled" -PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled" -PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled_tests=true,-Dtests=disabled -Dinstalled_tests=false" -PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" -PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils" -PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion" -PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled" -PACKAGECONFIG[setcap] = "-Dptp-helper-permissions=capabilities,,libcap libcap-native" - -# TODO: put this in a gettext.bbclass patch -def gettext_oemeson(d): - if d.getVar('USE_NLS') == 'no': - return '-Dnls=disabled' - # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set - if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'): - return '-Dnls=disabled' - return '-Dnls=enabled' - -EXTRA_OEMESON += " \ - -Ddoc=disabled \ - -Dexamples=disabled \ - -Ddbghelp=disabled \ - ${@gettext_oemeson(d)} \ -" - -GIR_MESON_ENABLE_FLAG = "enabled" -GIR_MESON_DISABLE_FLAG = "disabled" - -PACKAGES += "${PN}-bash-completion" - -# Add the core element plugins to the main package -FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" -FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" -FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" - -CVE_PRODUCT = "gstreamer" - -PTEST_BUILD_HOST_FILES = "" - -########### End of OE-core copy ########### - -########### i.MX overrides ################ - -DEFAULT_PREFERENCE = "-1" - -LIC_FILES_CHKSUM = " \ - file://LICENSE.txt;md5=69333daa044cb77e486cc36129f7a770 \ - file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d \ -" - -# Use i.MX fork of GST for customizations -SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz" -SRC_URI:prepend = "${GST1.0_SRC};branch=${SRCBRANCH} " -GST1.0_SRC ?= "gitsm://github.com/nxp-imx/gstreamer.git;protocol=https" -SRCBRANCH = "MM_04.07.03_2301_L6.1.y" -SRCREV = "e525a482611b2fccbebbc0f9fc32a88a707558fa" - -S = "${WORKDIR}/git" - -COMPATIBLE_MACHINE = "(imx-nxp-bsp)" - -########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/gstreamer1.0_1.22.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0_1.22.0.imx.bb new file mode 100644 index 00000000..9201246a --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0_1.22.0.imx.bb @@ -0,0 +1,103 @@ +# This recipe is for the i.MX fork of gstreamer1.0. For ease of +# maintenance, the top section is a verbatim copy of an OE-core +# recipe. The second section customizes the recipe for i.MX. + +########### OE-core copy ################## +# Upstream hash: fb2d28e0315ece6180c87c7047587673024a09f7 + +SUMMARY = "GStreamer 1.0 multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPL-2.1-or-later" + +DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native" + +inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome + +LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" + +S = "${WORKDIR}/gstreamer-${PV}" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ + file://run-ptest \ + file://0001-tests-respect-the-idententaion-used-in-meson.patch \ + file://0002-tests-add-support-for-install-the-tests.patch \ + file://0003-tests-use-a-dictionaries-for-environment.patch;striplevel=3 \ + file://0004-tests-add-helper-script-to-run-the-installed_tests.patch;striplevel=3 \ + " +SRC_URI[sha256sum] = "78d21b5469ac93edafc6d8ceb63bc82f6cbbee94d2f866cca6b9252157ee0a09" + +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ + check \ + debug \ + tools" + +PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false" +PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false" +PACKAGECONFIG[coretracers] = "-Dcoretracers=enabled,-Dcoretracers=disabled" +PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled" +PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled_tests=true,-Dtests=disabled -Dinstalled_tests=false" +PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" +PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils" +PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion" +PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled" +PACKAGECONFIG[setcap] = "-Dptp-helper-permissions=capabilities,,libcap libcap-native" + +# TODO: put this in a gettext.bbclass patch +def gettext_oemeson(d): + if d.getVar('USE_NLS') == 'no': + return '-Dnls=disabled' + # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set + if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'): + return '-Dnls=disabled' + return '-Dnls=enabled' + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Dexamples=disabled \ + -Ddbghelp=disabled \ + ${@gettext_oemeson(d)} \ +" + +GIR_MESON_ENABLE_FLAG = "enabled" +GIR_MESON_DISABLE_FLAG = "disabled" + +PACKAGES += "${PN}-bash-completion" + +# Add the core element plugins to the main package +FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" +FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" +FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" + +CVE_PRODUCT = "gstreamer" + +PTEST_BUILD_HOST_FILES = "" + +########### End of OE-core copy ########### + +########### i.MX overrides ################ + +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = " \ + file://LICENSE.txt;md5=69333daa044cb77e486cc36129f7a770 \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d \ +" + +# Use i.MX fork of GST for customizations +SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz" +SRC_URI:prepend = "${GST1.0_SRC};branch=${SRCBRANCH} " +GST1.0_SRC ?= "gitsm://github.com/nxp-imx/gstreamer.git;protocol=https" +SRCBRANCH = "MM_04.08.00_2305_L6.1.y" +SRCREV = "e39d4ce54e78cb090cf4e5cd56f431c365c5b0f4" + +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" + +########### End of i.MX overrides ######### diff --git a/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0011-meson-Undef-_TIME_BITS-along-with-_FILE_OFFSET_BITS.patch b/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0011-meson-Undef-_TIME_BITS-along-with-_FILE_OFFSET_BITS.patch new file mode 100644 index 00000000..5a58a5a6 --- /dev/null +++ b/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0011-meson-Undef-_TIME_BITS-along-with-_FILE_OFFSET_BITS.patch @@ -0,0 +1,34 @@ +From bda3461b0b6493f3e04910e82e6e530a64af26b1 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein +Date: Mon, 24 Jul 2023 12:09:34 -0700 +Subject: [PATCH] meson: Undef _TIME_BITS along with _FILE_OFFSET_BITS + +On gcc 13, _TIME_BITS is set to 64 and causes failure with the undef of +_FILE_OFFSET_BITS: +``` +/usr/include/features-time64.h:26:5: error: #error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" + 26 | # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" + | ^~~~~ +``` + +Upstream-Status: Pending +Signed-off-by: Tom Hochstein +--- + meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/meson.build b/meson.build +index 7ec5c70..64b2930 100644 +--- a/meson.build ++++ b/meson.build +@@ -24,6 +24,7 @@ gst_dep = dependency('gstreamer-' + api_version, version : gst_req) + #meson automaticaly add _FILE_OFFSET_BITS=64 to gcc, this will make ipu test + #case fail when do mmap on 6q, autoconf didn't add this define, so undef it + add_project_arguments('-U_FILE_OFFSET_BITS', language: 'c') ++add_project_arguments('-U_TIME_BITS', language: 'c') + + #below two marcos are defined in autoconf + add_project_arguments ('-DARM', language: 'c') +-- +2.25.1 + diff --git a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb index b43b7ddb..1e2ffbde 100644 --- a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb +++ b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb @@ -22,7 +22,7 @@ RCONFLICTS:${PN} = "gst1.0-fsl-plugin" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24" -PV = "4.7.3+git${SRCPV}" +PV = "4.8.0+git${SRCPV}" SRC_URI = "git://github.com/nxp-imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH} \ file://0001-aiurdemux-Fix-type-of-USER_DATA_LOCATION.patch \ @@ -35,9 +35,10 @@ SRC_URI = "git://github.com/nxp-imx/imx-gst1.0-plugin.git;protocol=https;branch= file://0008-beepdec-Declare-beep_register_external_typefinders.patch \ file://0009-gstimxv4l2.c-Fix-incompatible-integer-to-pointer-con.patch \ file://0010-provide-declaration-for-aiur_register_external_typef.patch \ + file://0011-meson-Undef-_TIME_BITS-along-with-_FILE_OFFSET_BITS.patch \ " -SRCBRANCH = "MM_04.07.03_2301_L6.1.y" -SRCREV = "843215344b62de7a91d5880a4b093cd384c7b567" +SRCBRANCH = "MM_04.08.00_2305_L6.1.y" +SRCREV = "2df72651dcc0ecff9db7c0a96d59c5ca2b9be9d4" S = "${WORKDIR}/git" -- cgit v1.2.3-54-g00ecf