From f440a266c273a14449f55aa59e8555bb6fb22939 Mon Sep 17 00:00:00 2001 From: Gabriel Valcazar Date: Fri, 17 Dec 2021 14:08:56 +0100 Subject: [PATCH] hardknott: gstreamer-1.0: sync with meta-imx hardknott-5.10.72-2.2.0 branch Update to v1.18.5 while keeping our modifications Signed-off-by: Gabriel Valcazar --- .../gstreamer/gstreamer1.0-libav_1.18.0.bb | 34 --- .../gstreamer/gstreamer1.0-libav_1.18.5.bb | 24 ++ ...ialized-warnings-when-compiling-with.patch | 28 ++ ...-avoid-including-sys-poll.h-directly.patch | 30 +++ ...-sentinals-for-gst_structure_get-etc.patch | 88 ++++++ ...issing-opencv-data-dir-in-yocto-buil.patch | 49 ++++ .../0005-msdk-fix-includedir-path.patch | 31 +++ ...=> gstreamer1.0-plugins-bad_1.18.5.imx.bb} | 128 +++++---- ...iv-fb-Make-sure-config.h-is-included.patch | 30 +++ ...> gstreamer1.0-plugins-base_1.18.5.imx.bb} | 89 ++++-- ...t-gstqtgl.h-instead-of-gst-gl-gstglf.patch | 56 ++++ ...> gstreamer1.0-plugins-good_1.18.5.imx.bb} | 63 +++-- .../gstreamer1.0-plugins-ugly_1.18.0.bb | 6 - .../gstreamer1.0-plugins-ugly_1.18.5.bb | 43 +++ .../gstreamer1.0-rtsp-server_%.bbappend | 12 - .../gstreamer1.0-rtsp-server_1.18.5.bb | 31 +++ ...der.c-when-env-var-is-set-do-not-fal.patch | 64 +++++ ...-use-too-strict-timeout-for-validati.patch | 30 +++ ...002-Remove-unused-valgrind-detection.patch | 110 ++++++++ ...meson-Add-option-for-installed-tests.patch | 255 ++++++++++++++++++ ...18.0.imx.bb => gstreamer1.0_1.18.5.imx.bb} | 64 +++-- ...in_4.6.0.bb => imx-gst1.0-plugin_4.6.3.bb} | 14 +- 22 files changed, 1112 insertions(+), 167 deletions(-) delete mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch rename meta-digi-dey/recipes-multimedia/gstreamer/{gstreamer1.0-plugins-bad_1.18.0.imx.bb => gstreamer1.0-plugins-bad_1.18.5.imx.bb} (67%) create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch rename meta-digi-dey/recipes-multimedia/gstreamer/{gstreamer1.0-plugins-base_1.18.0.imx.bb => gstreamer1.0-plugins-base_1.18.5.imx.bb} (54%) create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch rename meta-digi-dey/recipes-multimedia/gstreamer/{gstreamer1.0-plugins-good_1.18.0.imx.bb => gstreamer1.0-plugins-good_1.18.5.imx.bb} (59%) delete mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.5.bb delete mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_%.bbappend create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.5.bb create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch rename meta-digi-dey/recipes-multimedia/gstreamer/{gstreamer1.0_1.18.0.imx.bb => gstreamer1.0_1.18.5.imx.bb} (58%) rename meta-digi-dey/recipes-multimedia/gstreamer/{imx-gst1.0-plugin_4.6.0.bb => imx-gst1.0-plugin_4.6.3.bb} (89%) diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb deleted file mode 100644 index d77787580..000000000 --- a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Libav-based GStreamer 1.x plugin" -HOMEPAGE = "http://gstreamer.freedesktop.org/" -SECTION = "multimedia" - -LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" -LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ - file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c" - -SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \ - " -SRC_URI[md5sum] = "fe2f07356fa37445837cdde274027117" -SRC_URI[sha256sum] = "42f93f5ce9a3fc22051e5f783a4574b56ebf213f331f75dcbc3552459bd3a06a" - -S = "${WORKDIR}/gst-libav-${PV}" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" - -inherit meson pkgconfig upstream-version-is-even - -FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" - -delete_unused_libav_copy() { - # When building with meson, the internal libav copy is not used. - # It is only present for legacy autotools based builds. In future - # GStreamer versions, the autotools scripts will be gone, and so - # will this internal copy. Until then, it will be present. In order - # to make sure this copy is not included in the -src package, just - # manually delete the copy. - rm -rf "${S}/gst-libs/ext/libav/" -} - -do_unpack[postfuncs] += " delete_unused_libav_copy" diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb new file mode 100644 index 000000000..bf1401975 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb @@ -0,0 +1,24 @@ +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 = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ + " + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz" +SRC_URI[sha256sum] = "822e008a910e9dd13aedbdd8dc63fedef4040c0ee2e927bab3112e9de693a548" + +S = "${WORKDIR}/gst-libav-${PV}" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" + +inherit meson pkgconfig upstream-version-is-even + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch new file mode 100644 index 000000000..13a673cd5 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch @@ -0,0 +1,28 @@ +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/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch new file mode 100644 index 000000000..ead6897f6 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch @@ -0,0 +1,30 @@ +From 3b05e91720c10fcf6e0e408595b7217f6fa145c2 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Wed, 3 Feb 2016 18:05:41 -0800 +Subject: [PATCH 2/4] avoid including directly + +musl libc generates warnings if is included directly. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + sys/dvb/gstdvbsrc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c +index ca6b92a..b2772db 100644 +--- a/sys/dvb/gstdvbsrc.c ++++ b/sys/dvb/gstdvbsrc.c +@@ -97,7 +97,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +-- +2.28.0 + diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch new file mode 100644 index 000000000..88fbc40dc --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch @@ -0,0 +1,88 @@ +From 5ed27de9f662fe063b8b3d5d4335aa64cd4718c9 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Tue, 9 Feb 2016 14:00:00 -0800 +Subject: [PATCH 3/4] ensure valid sentinals for gst_structure_get() etc + +For GStreamer functions declared with G_GNUC_NULL_TERMINATED, +ie __attribute__((__sentinel__)), gcc will generate a warning if the +last parameter passed to the function is not NULL (where a valid NULL +in this context is defined as zero with any pointer type). + +The C callers to such functions within gst-plugins-bad use the C NULL +definition (ie ((void*)0)), which is a valid sentinel. + +However the C++ NULL definition (ie 0L), is not a valid sentinel +without an explicit cast to a pointer type. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + sys/decklink/gstdecklink.cpp | 10 +++++----- + sys/decklink/gstdecklinkaudiosrc.cpp | 2 +- + sys/decklink/gstdecklinkvideosink.cpp | 2 +- + 3 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp +index 4dac7e1..43762ce 100644 +--- a/sys/decklink/gstdecklink.cpp ++++ b/sys/decklink/gstdecklink.cpp +@@ -674,7 +674,7 @@ gst_decklink_mode_get_generic_structure (GstDecklinkModeEnum e) + "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d, + "interlace-mode", G_TYPE_STRING, + mode->interlaced ? "interleaved" : "progressive", +- "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL); ++ "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, (void*)NULL); + + return s; + } +@@ -699,16 +699,16 @@ gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f, + case bmdFormat8BitYUV: /* '2vuy' */ + gst_structure_set (s, "format", G_TYPE_STRING, "UYVY", + "colorimetry", G_TYPE_STRING, mode->colorimetry, +- "chroma-site", G_TYPE_STRING, "mpeg2", NULL); ++ "chroma-site", G_TYPE_STRING, "mpeg2", (void*)NULL); + break; + case bmdFormat10BitYUV: /* 'v210' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "v210", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "v210", (void*)NULL); + break; + case bmdFormat8BitARGB: /* 'ARGB' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", (void*)NULL); + break; + case bmdFormat8BitBGRA: /* 'BGRA' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", (void*)NULL); + break; + case bmdFormat10BitRGB: /* 'r210' Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 */ + case bmdFormat12BitRGB: /* 'R12B' Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component */ +diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp +index 2fef934..c47229a 100644 +--- a/sys/decklink/gstdecklinkaudiosrc.cpp ++++ b/sys/decklink/gstdecklinkaudiosrc.cpp +@@ -379,7 +379,7 @@ gst_decklink_audio_src_start (GstDecklinkAudioSrc * self) + g_mutex_unlock (&self->input->lock); + + if (videosrc) { +- g_object_get (videosrc, "connection", &vconn, NULL); ++ g_object_get (videosrc, "connection", &vconn, (void *) NULL); + gst_object_unref (videosrc); + + switch (vconn) { +diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp +index e3a6775..f1a5aae 100644 +--- a/sys/decklink/gstdecklinkvideosink.cpp ++++ b/sys/decklink/gstdecklinkvideosink.cpp +@@ -286,7 +286,7 @@ reset_framerate (GstCapsFeatures * features, GstStructure * structure, + gpointer user_data) + { + gst_structure_set (structure, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, +- G_MAXINT, 1, NULL); ++ G_MAXINT, 1, (void *) NULL); + + return TRUE; + } +-- +2.28.0 + diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch new file mode 100644 index 000000000..b81670906 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch @@ -0,0 +1,49 @@ +From f19ff66640f2f472c4e9d9055253032d34e125c6 Mon Sep 17 00:00:00 2001 +From: Andrey Zhizhikin +Date: Mon, 27 Jan 2020 10:22:35 +0000 +Subject: [PATCH 4/4] opencv: resolve missing opencv data dir in yocto build + +When Yocto build is performed, opencv searches for data dir using simple +'test' command, this fails because pkg-config provides an absolute +path on the target which needs to be prepended by PKG_CONFIG_SYSROOT_DIR +in order for the 'test' utility to pick up the absolute path. + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Andrey Zhizhikin +--- + ext/opencv/meson.build | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build +index 0b0b3fc..0ed3344 100644 +--- a/ext/opencv/meson.build ++++ b/ext/opencv/meson.build +@@ -78,20 +78,21 @@ else + endif + + if opencv_found ++ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() + opencv_prefix = opencv_dep.get_pkgconfig_variable('prefix') + gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"'] + + # Check the data dir used by opencv for its xml data files + # Use prefix from pkg-config to be compatible with cross-compilation +- r = run_command('test', '-d', opencv_prefix + '/share/opencv') ++ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv') + if r.returncode() == 0 + gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv"' + else +- r = run_command('test', '-d', opencv_prefix + '/share/OpenCV') ++ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/OpenCV') + if r.returncode() == 0 + gstopencv_cargs += '-DOPENCV_PATH_NAME="OpenCV"' + else +- r = run_command('test', '-d', opencv_prefix + '/share/opencv4') ++ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv4') + if r.returncode() == 0 + gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv4"' + else +-- +2.28.0 + diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch new file mode 100644 index 000000000..cb3bb7d36 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch @@ -0,0 +1,31 @@ +From 1f00d5026118ebd48e4ccf83d32d67155c4e7f60 Mon Sep 17 00:00:00 2001 +From: Naveen Saini +Date: Wed, 30 Dec 2020 16:37:47 +0800 +Subject: [PATCH] msdk: fix includedir path + +In cross compilation, need to prepend PKG_CONFIG_SYSROOT_DIR to the dir path. + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Naveen Saini +--- + sys/msdk/meson.build | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sys/msdk/meson.build b/sys/msdk/meson.build +index 6346c9451..068f38548 100644 +--- a/sys/msdk/meson.build ++++ b/sys/msdk/meson.build +@@ -40,7 +40,9 @@ endif + + mfx_dep = dependency('libmfx', required: false) + if mfx_dep.found() ++ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() + mfx_incdir = mfx_dep.get_pkgconfig_variable('includedir') ++ mfx_incdir = pkgconf_sysroot + mfx_incdir + mfx_inc = [] + else + # Old versions of MediaSDK don't provide a pkg-config file +-- +2.17.1 + diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.imx.bb similarity index 67% rename from meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb rename to meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.imx.bb index e144e0b4c..730cde226 100644 --- a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.imx.bb @@ -1,43 +1,45 @@ +# 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: 633739bc912cf84c78f5ae0f7fbcb41663a05c7f + require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc -DEPENDS_append_imxgpu2d = " virtual/libg2d" -DEPENDS_append_mx8 = " libdrm" +DESCRIPTION = "'Bad' GStreamer plugins and helper libraries " +HOMEPAGE = "https://gstreamer.freedesktop.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues" -PACKAGECONFIG_append_mx8 = " kms tinycompress " +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] = "74e806bc5595b18c70e9ca93571e27e79dfb808e5d2e7967afa952b52e99c85f" -DEFAULT_PREFERENCE = "-1" - -PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}" -PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" - -GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" -SRCBRANCH = "MM_04.06.00_2012_L5.10.y" - -SRC_URI = " \ - ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \ -" -SRCREV = "ff973f1d87a61ac7e5a2b1e3c1de5b4eb2d07e4e" - -S = "${WORKDIR}/git" +S = "${WORKDIR}/gst-plugins-bad-${PV}" LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ - file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 " +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" DEPENDS += "gstreamer1.0-plugins-base" -inherit use-imx-headers gobject-introspection +inherit gobject-introspection PACKAGECONFIG ??= " \ ${GSTREAMER_ORC} \ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'directfb ', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'gl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \ ttml uvch264 webp \ " +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" @@ -59,6 +61,7 @@ PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm" PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265" PACKAGECONFIG[libmms] = "-Dlibmms=enabled,-Dlibmms=disabled,libmms" 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" @@ -74,43 +77,41 @@ PACKAGECONFIG[resindvd] = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdr 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,usrsctp" +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" +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[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress" - -# these plugins currently have no corresponding library in OE-core or meta-openembedded: -# aom androidmedia applemedia bs2b chromaprint d3dvideosink -# directsound dts fdkaac gme gsm iq kate ladspa lv2 mpeg2enc -# mplex musepack nvdec nvenc ofa openexr openni2 opensles -# soundtouch spandsp srt teletext vdpau wasapi wildmidi winks -# winscreencap wpe x265 +PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265" EXTRA_OEMESON += " \ + -Ddoc=disabled \ -Ddecklink=enabled \ -Ddvb=enabled \ -Dfbdev=enabled \ -Dipcpipeline=enabled \ - -Dnetsim=enabled \ -Dshm=enabled \ - -Daom=disabled \ + -Dtranscode=enabled \ -Dandroidmedia=disabled \ -Dapplemedia=disabled \ + -Davtp=disabled \ -Dbs2b=disabled \ -Dchromaprint=disabled \ -Dd3dvideosink=disabled \ + -Dd3d11=disabled \ -Ddirectsound=disabled \ -Ddts=disabled \ -Dfdkaac=disabled \ @@ -121,31 +122,28 @@ EXTRA_OEMESON += " \ -Dkate=disabled \ -Dladspa=disabled \ -Dlv2=disabled \ + -Dmagicleap=disabled \ + -Dmediafoundation=disabled \ + -Dmicrodns=disabled \ -Dmpeg2enc=disabled \ -Dmplex=disabled \ - -Dmsdk=disabled \ -Dmusepack=disabled \ + -Dnvcodec=disabled \ -Dofa=disabled \ -Dopenexr=disabled \ - -Dopenmpt=disabled \ -Dopenni2=disabled \ -Dopensles=disabled \ -Dsoundtouch=disabled \ -Dspandsp=disabled \ - -Dsrt=disabled \ + -Dsvthevcenc=disabled \ -Dteletext=disabled \ -Dwasapi=disabled \ + -Dwasapi2=disabled \ -Dwildmidi=disabled \ -Dwinks=disabled \ -Dwinscreencap=disabled \ -Dwpe=disabled \ - -Dx265=disabled \ - -Dzbar=disabled \ - ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-Dyadif=disabled", "", d)} \ - -Dintrospection="disabled" \ - -Ddtls="disabled" \ - -Dvulkan=disabled \ - -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \ + -Dzxing=disabled \ " export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" @@ -155,9 +153,45 @@ 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" -# include fragment shaders -FILES_${PN}-opengl += "/usr/share/*.fs" -FILES_libgsttranscoder-1.0 += "${datadir}/gstreamer-1.0/encoding-profiles/*" + +########### End of OE-core copy ########### + +########### i.MX overrides ################ + +DEFAULT_PREFERENCE = "-1" + +DEPENDS_append_imxgpu2d = " virtual/libg2d" + +SRC_URI_remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz" +GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" +SRCBRANCH = "MM_04.06.03_2110_L5.10.y" +SRC_URI_prepend = "${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} " +SRCREV = "64ea74a49cc06da92126cc680968497df679da8c" + +S = "${WORKDIR}/git" + +inherit use-imx-headers + +PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}" +PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" + +PACKAGECONFIG_REMOVE ?= " \ + dtls vulkan \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', 'gl', d)} \ +" +PACKAGECONFIG_remove = "${PACKAGECONFIG_REMOVE}" +PACKAGECONFIG_append_mx8 = " kms tinycompress" + +PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress" + +# Disable introspection to fix [GstPlayer-1.0.gir] Error +EXTRA_OEMESON += " \ + -Dintrospection=disabled \ + -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \ +" COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" + +########### End of i.MX overrides ######### diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch new file mode 100644 index 000000000..5dc405299 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch @@ -0,0 +1,30 @@ +From 4b5c7f655bf10b8b58df5ed5647a711b3502d4d2 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Tue, 21 May 2019 14:01:11 +0200 +Subject: [PATCH] viv-fb: Make sure config.h is included + +This prevents build errors due to missing GST_API_* symbols + +Upstream-Status: Pending + +Signed-off-by: Carlos Rafael Giani + +--- + gst-libs/gst/gl/gl-prelude.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gst-libs/gst/gl/gl-prelude.h b/gst-libs/gst/gl/gl-prelude.h +index 05e1f6229..96ce5e685 100644 +--- a/gst-libs/gst/gl/gl-prelude.h ++++ b/gst-libs/gst/gl/gl-prelude.h +@@ -22,6 +22,10 @@ + #ifndef __GST_GL_PRELUDE_H__ + #define __GST_GL_PRELUDE_H__ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include + + #ifdef BUILDING_GST_GL diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.imx.bb similarity index 54% rename from meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb rename to meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.imx.bb index 636b36471..fe3579173 100644 --- a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.imx.bb @@ -1,41 +1,48 @@ +# 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: 633739bc912cf84c78f5ae0f7fbcb41663a05c7f + 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 = "GPLv2+ & LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ -" +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" -GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https" -SRCBRANCH = "MM_04.06.00_2012_L5.10.y" -SRCREV = "c0198efbc99f38f5b7620dba6915fd666fd53bea" -SRC_URI = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \ +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 \ + file://0004-glimagesink-Downrank-to-marginal.patch \ " +SRC_URI[sha256sum] = "29e53229a84d01d722f6f6db13087231cdf6113dd85c25746b9b58c3d68e8323" -S = "${WORKDIR}/git" +S = "${WORKDIR}/gst-plugins-base-${PV}" DEPENDS += "iso-codes util-linux zlib" -DEPENDS_append_imxgpu2d = " virtual/libg2d" -inherit use-imx-headers gobject-introspection - -DEFAULT_PREFERENCE = "-1" +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 viv-fb', '', d)}" +PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" PACKAGECONFIG ??= " \ ${GSTREAMER_ORC} \ ${PACKAGECONFIG_GL} \ ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ - ogg pango png theora vorbis \ + jpeg ogg pango png theora vorbis \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ " OPENGL_APIS = 'opengl gles2' OPENGL_PLATFORMS = 'egl' -OPENGL_WINSYS = 'x11 wayland gbm viv-fb' X11DEPENDS = "virtual/libx11 libsm libxrender libxv" X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled" @@ -60,29 +67,29 @@ PACKAGECONFIG[gles2] = ",,virtual/libgles2" # OpenGL platform packageconfigs PACKAGECONFIG[egl] = ",,virtual/egl" -PACKAGECONFIG[viv-fb] = ",,virtual/egl virtual/libgles2" # OpenGL window systems (except for X11) PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" +PACKAGECONFIG[dispmanx] = ",,virtual/libomxil" + +OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', ' x11', '', d)}" +OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gbm', ' gbm', '', d)}" +OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', ' wayland', '', d)}" +OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'dispmanx', ' dispmanx', '', d)}" +OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'egl', ' egl', '', d)}" EXTRA_OEMESON += " \ + -Ddoc=disabled \ -Dgl-graphene=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)} \ - -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \ " -#GTKDOC_MESON_OPTION = "gtk_doc" -GTKDOC_MESON_ENABLE_FLAG = "enabled" -GTKDOC_MESON_DISABLE_FLAG = "disabled" - -FILES_${PN} += "${libdir}/gstreamer-1.0/include" +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" -COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" - def get_opengl_cmdline_list(switch_name, options, d): selected_options = [] if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d): @@ -93,3 +100,39 @@ def get_opengl_cmdline_list(switch_name, options, d): 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" + +DEPENDS_append_imxgpu2d = " virtual/libg2d" + +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://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ + file://0004-glimagesink-Downrank-to-marginal.patch \ +" +GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https" +SRCBRANCH = "MM_04.06.03_2110_L5.10.y" +SRC_URI_prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} " +SRCREV = "5fe4c49ad969d0bc5e104212ad261911b15a0b83" + +S = "${WORKDIR}/git" + +inherit use-imx-headers + +PACKAGECONFIG_REMOVE ?= "jpeg" +PACKAGECONFIG_remove = "${PACKAGECONFIG_REMOVE}" +PACKAGECONFIG_GL_append = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', ' viv-fb', '', d)}" +PACKAGECONFIG[viv-fb] = ",,virtual/libgles2" +OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'viv-fb', ' viv-fb', '', d)}" +EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}"" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" + +########### End of i.MX overrides ######### diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch new file mode 100644 index 000000000..788d75205 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch @@ -0,0 +1,56 @@ +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/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.5.imx.bb similarity index 59% rename from meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb rename to meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.5.imx.bb index 3d1d9c636..f71f635d7 100644 --- a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.5.imx.bb @@ -1,17 +1,24 @@ +# 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: 633739bc912cf84c78f5ae0f7fbcb41663a05c7f + 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" -GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https" -SRCBRANCH = "MM_04.06.00_2012_L5.10.y" +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://0002-rtpjitterbuffer-Fix-parsing-of-the-mediaclk-direct-f.patch \ + " -SRC_URI = " \ - ${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} \ -" -SRCREV = "67da20d13550aa257efcf3aaa2a3f0a7e50880ba" +SRC_URI[sha256sum] = "b6e50e3a9bbcd56ee6ec71c33aa8332cc9c926b0c1fae995aac8b3040ebe39b0" -DEFAULT_PREFERENCE = "-1" - -S = "${WORKDIR}/git" +S = "${WORKDIR}/gst-plugins-good-${PV}" LICENSE = "GPLv2+ & LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ @@ -24,6 +31,7 @@ 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 \ " @@ -31,6 +39,9 @@ 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" @@ -45,20 +56,18 @@ 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[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,libdrm" +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}" -# qt5 support is disabled, because it is not present in OE core, and requires more work than -# just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths). -# This is better done in a separate qt5 layer (which then should add a "qt5" packageconfig -# in a gstreamer1.0-plugins-good bbappend). - EXTRA_OEMESON += " \ + -Ddoc=disabled \ -Daalib=disabled \ -Ddirectsound=disabled \ -Ddv=disabled \ @@ -67,7 +76,6 @@ EXTRA_OEMESON += " \ -Doss4=disabled \ -Dosxaudio=disabled \ -Dosxvideo=disabled \ - -Dqt5=disabled \ -Dshout2=disabled \ -Dtwolame=disabled \ -Dwaveform=disabled \ @@ -75,4 +83,27 @@ EXTRA_OEMESON += " \ FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" +########### End of OE-core copy ########### + +########### i.MX overrides ################ + +DEFAULT_PREFERENCE = "-1" + +# fb implementation of v4l2 uses libdrm +DEPENDS_V4L2 = "${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'libdrm', d)}" +DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'v4l2', '${DEPENDS_V4L2}', '', d)}" + +SRC_URI_remove = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ + file://0002-rtpjitterbuffer-Fix-parsing-of-the-mediaclk-direct-f.patch \ +" +GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https" +SRCBRANCH = "MM_04.06.03_2110_L5.10.y" +SRC_URI_prepend = "${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} " +SRCREV = "7113baa4dd681cf028b04ef4ebe70b06db4b0f08" + +S = "${WORKDIR}/git" + COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" + +########### End of i.MX overrides ######### diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb deleted file mode 100644 index 7a2cc81aa..000000000 --- a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (C) 2020-2021 Digi International Inc. - -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb - -SRC_URI[md5sum] = "01d3a24152cfd5eb27b1787d44b524c6" -SRC_URI[sha256sum] = "686644e45e08258ae240c4519376668ad8d34ea6d0f6ab556473c317bfb7e082" diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.5.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.5.bb new file mode 100644 index 000000000..42611a50d --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.5.bb @@ -0,0 +1,43 @@ +require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.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 = "GPLv2+ & LGPLv2.1+ & LGPLv2+" +LICENSE_FLAGS = "commercial" + +SRC_URI = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ + " +SRC_URI[sha256sum] = "df32803e98f8a9979373fa2ca7e05e62f977b1097576d3a80619d9f5c69f66d9" + +S = "${WORKDIR}/gst-plugins-ugly-${PV}" + +DEPENDS += "gstreamer1.0-plugins-base" + +GST_PLUGIN_SET_HAS_EXAMPLES = "0" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + a52dec mpeg2dec \ +" + +PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52" +PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr" +PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr" +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" + +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Dsidplay=disabled \ +" + +FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" +FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_%.bbappend b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_%.bbappend deleted file mode 100644 index 7ca5620d7..000000000 --- a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_%.bbappend +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (C) 2020 Digi International Inc. - -PV = "1.16.0" - -SRC_URI[md5sum] = "adc4460239ec2eccf58ad9752ce53bfd" -SRC_URI[sha256sum] = "198e9eec1a3e32dc810d3fbf3a714850a22c6288d4a5c8e802c5ff984af03f19" - -# Disable introspection to fix [GstPlayer-1.0.gir] Error -EXTRA_OECONF += " \ - --disable-introspection \ -" - diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.5.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.5.bb new file mode 100644 index 000000000..02fb4b0f7 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.5.bb @@ -0,0 +1,31 @@ +SUMMARY = "A library on top of GStreamer for building an RTSP server" +HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" +SECTION = "multimedia" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" + +PNREAL = "gst-rtsp-server" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" + +SRC_URI[sha256sum] = "04d63bf48816c6f41c73f6de0f912a7cef0aab39c44162a7bcece1923dfc9d1f" + +S = "${WORKDIR}/${PNREAL}-${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" + +# 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" diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch new file mode 100644 index 000000000..786e7faaa --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch @@ -0,0 +1,64 @@ +From 14a8b5f82f70b7619e3b5596dec14fa6532919d5 Mon Sep 17 00:00:00 2001 +From: Jose Quaresma +Date: Sat, 10 Oct 2020 19:09:03 +0000 +Subject: [PATCH] gstpluginloader: when env var is set do not fall through to + system plugin scanner + +If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that. + +Falling through to the one installed on the system is problamatic in cross-compilation +environemnts, regardless of whether one pointed to by the env var succeeded or failed. + +taken from: +http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch?id=0db7ba34ca41b107042306d13a6f0162885c123b + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/669] +Signed-off-by: Jose Quaresma + +--- + gst/gstpluginloader.c | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c +index 621b24349..4e0f64650 100644 +--- a/gst/gstpluginloader.c ++++ b/gst/gstpluginloader.c +@@ -464,20 +464,19 @@ gst_plugin_loader_spawn (GstPluginLoader * loader) + if (loader->child_running) + return TRUE; + +- /* Find the gst-plugin-scanner: first try the env-var if it is set, +- * otherwise use the installed version */ ++ /* Find the gst-plugin-scanner */ + env = g_getenv ("GST_PLUGIN_SCANNER_1_0"); + if (env == NULL) + env = g_getenv ("GST_PLUGIN_SCANNER"); + + if (env != NULL && *env != '\0') { ++ /* use the env-var if it is set */ + GST_LOG ("Trying GST_PLUGIN_SCANNER env var: %s", env); + helper_bin = g_strdup (env); + res = gst_plugin_loader_try_helper (loader, helper_bin); + g_free (helper_bin); +- } +- +- if (!res) { ++ } else { ++ /* use the installed version */ + GST_LOG ("Trying installed plugin scanner"); + + #ifdef G_OS_WIN32 +@@ -497,10 +496,10 @@ gst_plugin_loader_spawn (GstPluginLoader * loader) + #endif + res = gst_plugin_loader_try_helper (loader, helper_bin); + g_free (helper_bin); ++ } + +- if (!res) { +- GST_INFO ("No gst-plugin-scanner available, or not working"); +- } ++ if (!res) { ++ GST_INFO ("No gst-plugin-scanner available, or not working"); + } + + return loader->child_running; diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch new file mode 100644 index 000000000..a2af5eec3 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch @@ -0,0 +1,30 @@ +From 30958cc93d4872926a7e8f139ad45d29b5be2520 Mon Sep 17 00:00:00 2001 +From: Seungha Yang +Date: Tue, 15 Sep 2020 00:54:58 +0900 +Subject: [PATCH] tests: seek: Don't use too strict timeout for validation + +Expected segment-done message might not be seen within expected +time if system is not powerful enough. + +Part-of: + +Upstream-Status: Backport [https://cgit.freedesktop.org/gstreamer/gstreamer/commit?id=f44312ae5d831438fcf8041162079c65321c588c] +Signed-off-by: Anuj Mittal + +--- + tests/check/pipelines/seek.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/check/pipelines/seek.c b/tests/check/pipelines/seek.c +index 28bb8846d..5f7447bc5 100644 +--- a/tests/check/pipelines/seek.c ++++ b/tests/check/pipelines/seek.c +@@ -521,7 +521,7 @@ GST_START_TEST (test_loopback_2) + + GST_INFO ("wait for segment done message"); + +- msg = gst_bus_timed_pop_filtered (bus, (GstClockTime) 2 * GST_SECOND, ++ msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, + GST_MESSAGE_SEGMENT_DONE | GST_MESSAGE_ERROR); + fail_unless (msg, "no message within the timed window"); + fail_unless_equals_string (GST_MESSAGE_TYPE_NAME (msg), "segment-done"); diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch new file mode 100644 index 000000000..c4ecd0069 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch @@ -0,0 +1,110 @@ +From caa29d32c6729aa6a7005d6cf8ea5e36ff710272 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= +Date: Fri, 14 Aug 2020 16:38:26 +0100 +Subject: [PATCH] Remove unused valgrind detection + +Having this just to log a debug message in case we're +running inside valgrind doesn't seem very useful, and +the code that used to use this no longer exists it seems. + +Part-of: + +Upstream-Status: Backport [a2cbf75523cdf8a4df1baa7007d86ef455972245] + +Signed-off-by: Jose Quaresma + +--- + gst/gst_private.h | 2 -- + gst/gstinfo.c | 39 --------------------------------------- + meson.build | 1 - + 3 files changed, 42 deletions(-) + +diff --git a/gst/gst_private.h b/gst/gst_private.h +index eefd044d9..8252ede51 100644 +--- a/gst/gst_private.h ++++ b/gst/gst_private.h +@@ -116,8 +116,6 @@ G_GNUC_INTERNAL gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin + + G_GNUC_INTERNAL gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin); + +-G_GNUC_INTERNAL gboolean _priv_gst_in_valgrind (void); +- + /* init functions called from gst_init(). */ + G_GNUC_INTERNAL void _priv_gst_quarks_initialize (void); + G_GNUC_INTERNAL void _priv_gst_mini_object_initialize (void); +diff --git a/gst/gstinfo.c b/gst/gstinfo.c +index eea1a219d..d3035d6db 100644 +--- a/gst/gstinfo.c ++++ b/gst/gstinfo.c +@@ -305,36 +305,6 @@ static gboolean pretty_tags = PRETTY_TAGS_DEFAULT; + static gint G_GNUC_MAY_ALIAS __default_level = GST_LEVEL_DEFAULT; + static gint G_GNUC_MAY_ALIAS __use_color = GST_DEBUG_COLOR_MODE_ON; + +-/* FIXME: export this? */ +-gboolean +-_priv_gst_in_valgrind (void) +-{ +- static enum +- { +- GST_VG_UNCHECKED, +- GST_VG_NO_VALGRIND, +- GST_VG_INSIDE +- } +- in_valgrind = GST_VG_UNCHECKED; +- +- if (in_valgrind == GST_VG_UNCHECKED) { +-#ifdef HAVE_VALGRIND_VALGRIND_H +- if (RUNNING_ON_VALGRIND) { +- GST_CAT_INFO (GST_CAT_GST_INIT, "we're running inside valgrind"); +- in_valgrind = GST_VG_INSIDE; +- } else { +- GST_CAT_LOG (GST_CAT_GST_INIT, "not doing extra valgrind stuff"); +- in_valgrind = GST_VG_NO_VALGRIND; +- } +-#else +- in_valgrind = GST_VG_NO_VALGRIND; +-#endif +- g_assert (in_valgrind == GST_VG_NO_VALGRIND || +- in_valgrind == GST_VG_INSIDE); +- } +- return (in_valgrind == GST_VG_INSIDE); +-} +- + static gchar * + _replace_pattern_in_gst_debug_file_name (gchar * name, const char *token, + guint val) +@@ -463,9 +433,6 @@ _priv_gst_debug_init (void) + _priv_GST_CAT_PROTECTION = + _gst_debug_category_new ("GST_PROTECTION", 0, "protection"); + +- /* print out the valgrind message if we're in valgrind */ +- _priv_gst_in_valgrind (); +- + env = g_getenv ("GST_DEBUG_OPTIONS"); + if (env != NULL) { + if (strstr (env, "full_tags") || strstr (env, "full-tags")) +@@ -2505,12 +2472,6 @@ gst_debug_construct_win_color (guint colorinfo) + return 0; + } + +-gboolean +-_priv_gst_in_valgrind (void) +-{ +- return FALSE; +-} +- + void + _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file, + const gchar * func, gint line, GObject * obj, const gchar * msg, +diff --git a/meson.build b/meson.build +index 82a17282b..42ae61790 100644 +--- a/meson.build ++++ b/meson.build +@@ -200,7 +200,6 @@ check_headers = [ + 'sys/wait.h', + 'ucontext.h', + 'unistd.h', +- 'valgrind/valgrind.h', + 'sys/resource.h', + 'sys/uio.h', + ] diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch new file mode 100644 index 000000000..503ef7971 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch @@ -0,0 +1,255 @@ +From 1453e8c73b8cb9414143df6a7dd164709d3c454c Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Fri, 25 Oct 2019 00:06:26 +0200 +Subject: [PATCH] meson: Add option for installed tests + +This adds an option for producing installed versions of the unit tests. +These versions don't need meson to run (only a small shell script). This +makes it easier to run cross compiled tests on a target machine. + +Upstream-Status: Pending + +Signed-off-by: Carlos Rafael Giani + +--- + build-aux/gen-installed-test-desc.py | 18 ++++++ + build-aux/gen-installed-test-shscript.py | 25 ++++++++ + meson_options.txt | 2 + + tests/check/meson.build | 46 +++++++++++++- + tests/files/testfile | 80 ++++++++++++++++++++++++ + 5 files changed, 170 insertions(+), 1 deletion(-) + create mode 100644 build-aux/gen-installed-test-desc.py + create mode 100644 build-aux/gen-installed-test-shscript.py + create mode 100644 tests/files/testfile + +diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py +new file mode 100644 +index 000000000..69e8a0faf +--- /dev/null ++++ b/build-aux/gen-installed-test-desc.py +@@ -0,0 +1,18 @@ ++import sys ++import os ++import argparse ++ ++def write_template(filename, data): ++ with open(filename, 'w') as f: ++ f.write(data) ++ ++def build_template(testdir, testname): ++ return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname)) ++ ++argparser = argparse.ArgumentParser(description='Generate installed-test data.') ++argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory') ++argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name') ++argparser.add_argument('--output', metavar='file', required=True, help='Output file') ++args = argparser.parse_args() ++ ++write_template(args.output, build_template(args.test_execdir, args.testname)) +diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py +new file mode 100644 +index 000000000..5da86fb37 +--- /dev/null ++++ b/build-aux/gen-installed-test-shscript.py +@@ -0,0 +1,25 @@ ++import sys ++import os ++import argparse ++ ++def write_template(filename, data): ++ with open(filename, 'w') as f: ++ f.write(data) ++ ++def build_template(testdir, testname): ++ return ''.join([ ++ "#!/usr/bin/env sh\n", ++ "export GST_STATE_IGNORE_ELEMENTS=''\n", ++ "export CK_DEFAULT_TIMEOUT=20\n", ++ "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n", ++ "{}\n".format(os.path.join(testdir, testname)), ++ ]) ++ ++argparser = argparse.ArgumentParser(description='Generate installed-test data.') ++argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory') ++argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name') ++argparser.add_argument('--output', metavar='file', required=True, help='Output file') ++args = argparser.parse_args() ++ ++write_template(args.output, build_template(args.test_execdir, args.testname)) ++os.chmod(args.output, 0o755) +diff --git a/meson_options.txt b/meson_options.txt +index 72c3997e2..346c423d4 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -15,6 +15,8 @@ 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'], + value: 'malloc') ++option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests') ++option('test-files-path', type : 'string', description : 'Path where to find test files') + + # Feature options + option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries') +diff --git a/tests/check/meson.build b/tests/check/meson.build +index a617cf159..e629131c5 100644 +--- a/tests/check/meson.build ++++ b/tests/check/meson.build +@@ -120,11 +120,17 @@ if add_languages('cpp', native: false, required: false) + ] + endif + ++test_files_path = get_option('test-files-path') ++if test_files_path == '' ++ test_files_path = meson.current_source_dir() + '/../files' ++endif ++message('Using path "@0@" as the path to read test files from'.format(test_files_path)) ++ + test_defines = [ + '-UG_DISABLE_ASSERT', + '-UG_DISABLE_CAST_CHECKS', + '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"', +- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"', ++ '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'), + '-DGST_DISABLE_DEPRECATED', + ] + +@@ -138,6 +144,14 @@ endif + glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep] + gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep] + ++installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0') ++installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0') ++installed_tests_enabled = get_option('installed-tests') ++ ++python = import('python').find_installation() ++gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py') ++gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py') ++ + foreach t : core_tests + fname = t[0] + test_name = fname.split('.')[0].underscorify() +@@ -151,8 +165,38 @@ foreach t : core_tests + include_directories : [configinc], + link_with : link_with_libs, + dependencies : test_deps + glib_deps + gst_deps, ++ install_dir: installed_tests_execdir, ++ install: installed_tests_enabled + ) + ++ if installed_tests_enabled ++ installed_test_shscript = test_name + '.sh' ++ shscript = custom_target (test_name + '_shscript', ++ output: installed_test_shscript, ++ command: [ ++ python, ++ gen_installed_test_shscript, ++ '--test-execdir=@0@'.format(installed_tests_execdir), ++ '--testname=@0@'.format(test_name), ++ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)), ++ ], ++ install: true, ++ install_dir: installed_tests_execdir) ++ ++ installed_test_desc = test_name + '.test' ++ data = custom_target(test_name + '_desc', ++ output: installed_test_desc, ++ command: [ ++ python, ++ gen_installed_test_desc, ++ '--test-execdir=@0@'.format(installed_tests_execdir), ++ '--testname=@0@'.format(installed_test_shscript), ++ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)), ++ ], ++ install: true, ++ install_dir: installed_tests_datadir) ++ endif ++ + env = environment() + env.set('GST_PLUGIN_PATH_1_0', meson.build_root()) + env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '') +diff --git a/tests/files/testfile b/tests/files/testfile +new file mode 100644 +index 000000000..89954e0e2 +--- /dev/null ++++ b/tests/files/testfile +@@ -0,0 +1,80 @@ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ ++................................................................................ diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0_1.18.5.imx.bb similarity index 58% rename from meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb rename to meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0_1.18.5.imx.bb index bddca3055..d70da3664 100644 --- a/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gstreamer1.0_1.18.5.imx.bb @@ -1,3 +1,10 @@ +# 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: 633739bc912cf84c78f5ae0f7fbcb41663a05c7f + 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." @@ -6,25 +13,22 @@ BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" SECTION = "multimedia" LICENSE = "LGPLv2+" -DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native" +DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native" -inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc +inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" -# Use i.MX fork of GST for customizations -GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https" -SRCBRANCH = "MM_04.06.00_2012_L5.10.y" +S = "${WORKDIR}/gstreamer-${PV}" -SRC_URI = " \ - ${GST1.0_SRC};branch=${SRCBRANCH} \ -" -SRCREV = "2f20fd10eaf8629b3e8c134424c38412c4d3bd86" - -S = "${WORKDIR}/git" - -DEFAULT_PREFERENCE = "-1" +SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ + file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ + file://0002-Remove-unused-valgrind-detection.patch \ + file://0003-meson-Add-option-for-installed-tests.patch \ + file://0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \ + " +SRC_URI[sha256sum] = "9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5" PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ check \ @@ -33,14 +37,14 @@ PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ 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[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind," +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] = "-Dsetcap=enabled,-Dsetcap=disabled,libcap libcap-native" +PACKAGECONFIG[setcap] = "-Dptp-helper-permissions=capabilities,,libcap libcap-native" # TODO: put this in a gettext.bbclass patch def gettext_oemeson(d): @@ -52,17 +56,12 @@ def gettext_oemeson(d): return '-Dnls=enabled' EXTRA_OEMESON += " \ + -Ddoc=disabled \ -Dexamples=disabled \ -Ddbghelp=disabled \ - -Dgtk_doc=disabled \ - -Dtests=disabled \ ${@gettext_oemeson(d)} \ " -GTKDOC_MESON_OPTION = "gtk_doc" -GTKDOC_MESON_ENABLE_FLAG = "enabled" -GTKDOC_MESON_DISABLE_FLAG = "disabled" - GIR_MESON_ENABLE_FLAG = "enabled" GIR_MESON_DISABLE_FLAG = "disabled" @@ -72,8 +71,27 @@ PACKAGES += "${PN}-bash-completion" 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 ${datadir}/glib-2.0/gdb" +FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" CVE_PRODUCT = "gstreamer" +require recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc + +########### End of OE-core copy ########### + +########### i.MX overrides ################ + +DEFAULT_PREFERENCE = "-1" + +# Use i.MX fork of GST for customizations +SRC_URI_remove = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz" +GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https" +SRCBRANCH = "MM_04.06.03_2110_L5.10.y" +SRC_URI_prepend = "${GST1.0_SRC};branch=${SRCBRANCH} " +SRCREV = "a55998c70940bd183d25d29e1b82fd3bc9f43df3" + +S = "${WORKDIR}/git" + COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" + +########### End of i.MX overrides ######### diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.0.bb b/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.3.bb similarity index 89% rename from meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.0.bb rename to meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.3.bb index 9d23dcf64..61b3cd809 100644 --- a/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.0.bb +++ b/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.3.bb @@ -1,5 +1,5 @@ # Copyright (C) 2014,2016 Freescale Semiconductor -# Copyright 2017-2019 NXP +# Copyright 2017-2021 NXP # Copyright (C) 2012-2015 O.S. Systems Software LTDA. # Released under the MIT license (see COPYING.MIT for the terms) @@ -10,6 +10,7 @@ SECTION = "multimedia" DEPENDS = "imx-codec imx-parser libdrm gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" DEPENDS_append_mx6 = " imx-lib" DEPENDS_append_mx7 = " imx-lib" +DEPENDS_append_mx8ulp = " imx-lib" DEPENDS_append_imxvpu = " imx-vpuwrap" # For backwards compatibility @@ -21,11 +22,11 @@ LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24" IMXGST_SRC ?= "git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https" -SRCBRANCH = "MM_04.06.00_2012_L5.10.y" +SRCBRANCH = "MM_04.06.03_2110_L5.10.y" SRC_URI = "${IMXGST_SRC};branch=${SRCBRANCH} \ " -SRCREV = "701041b684a5e544d1e05dc1a197d1f7b2755ffe" +SRCREV = "9f7bae2a59c06480e4bbf4b8f84718811b9eb812" S = "${WORKDIR}/git" @@ -50,6 +51,10 @@ PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl ${PN}-grecorder ${PN # Add codec list that the beep plugin run-time depended BEEP_RDEPENDS = "imx-codec-aac imx-codec-mp3 imx-codec-oggvorbis" RDEPENDS_${PN} += "imx-parser ${BEEP_RDEPENDS} gstreamer1.0-plugins-good-id3demux " +RDEPENDS_${PN}_append_mx8qm = " imx-dsp" +RDEPENDS_${PN}_append_mx8qxp = " imx-dsp" +RDEPENDS_${PN}_append_mx8mp = " imx-dsp" +RDEPENDS_${PN}_append_mx8ulp = " imx-dsp" PACKAGECONFIG ?= "" @@ -75,6 +80,3 @@ FILES_${PN}-librecorder-engine = "${libdir}/librecorder_engine-1.0${SOLIBS}" FILES_${PN}-libplayengine = "${libdir}/libplayengine-1.0${SOLIBS}" COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" - -# Add restriction to ABM -COMPATIBLE_HOST = '(aarch64|arm).*-linux'