From df845df213c483132d2d86117949369ac9af334b Mon Sep 17 00:00:00 2001 From: Carlos Rafael Giani Date: Sun, 25 Apr 2021 13:57:04 +0200 Subject: [PATCH] gstreamer1.0-plugins-imx: Update to version 2.0.0 This is a rewrite, based on the new libimxdmabuffer library, the new libimxvpuapi library version 2, and GStreamer 1.14 (1.16 required for full functionality). In addition to the i.MX6 and i.MX7, the i.MX8 is now supported as well. The code was reorganized into gst-libs/ and ext/ subdirectories to match the GStreamer directory structure. Also, meson is now the build system in use to ease integration with GStreamer build setups such as Cerbero. See the ChangeLog for a full list of changes and additions. Signed-off-by: Carlos Rafael Giani --- .../gstreamer1.0-plugins-imx_0.13.1.bb | 71 ------------------- .../gstreamer1.0-plugins-imx_2.0.0.bb | 62 ++++++++++++++++ 2 files changed, 62 insertions(+), 71 deletions(-) delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb deleted file mode 100644 index 35996337..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright (C) 2018 O.S. Systems Software LTDA. -DESCRIPTION = "GStreamer 1.0 plugins for i.MX platforms" -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605" -SECTION = "multimedia" -# gstreamer1.0-plugins-bad is in DEPENDS because the build script scans for the -# GstPhotography headers and libraries -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" -# add the audioparsers and the videoparsersbad plugins as RDEPENDS ; audioparsers -# for the uniaudio decoder, videoparsersbad for the VPU video decoder -# the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good recipe is -# build (it is not a compile-time dependency however, hence RDEPENDS and not DEPENDS) -RDEPENDS_gstreamer1.0-plugins-imx = "gstreamer1.0-plugins-good" -RDEPENDS_gstreamer1.0-plugins-imx-imxaudio = "gstreamer1.0-plugins-good-audioparsers" -RDEPENDS_gstreamer1.0-plugins-imx-imxvpu = "gstreamer1.0-plugins-bad-videoparsersbad" - -PV .= "+git${SRCPV}" - -SRCBRANCH ?= "master" -SRCREV = "805987bff74af13fcb14ff111955206f1c92554d" -SRC_URI = "git://github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}" - -S = "${WORKDIR}/git" - -inherit pkgconfig waf use-imx-headers - -# configure the eglvivsink element to use the appropriate EGL platform code -# Wayland if 'wayland' is present in DISTRO_FEATURES, if not, -# X11 if x11 is present in DISTRO_FEATURES, -# Framebuffer otherwise -EGLVIVSINK_PLATFORM = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ - bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ - 'fb', d),d)}" - -EGL_PLATFORM_CONF = "--egl-platform=${EGLVIVSINK_PLATFORM}" - -EXTRA_OECONF = "--kernel-headers=${STAGING_INCDIR_IMX} ${PACKAGECONFIG_CONFARGS}" - -EGLVIVSINK_DEPENDS = " \ - virtual/egl virtual/libgles2 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ - bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', \ - '', d), d)} \ -" - -PACKAGECONFIG ?= "uniaudiodec mp3encoder v4l2src v4l2sink" -PACKAGECONFIG_append_imxgpu3d = " eglvivsink" -PACKAGECONFIG_append_imxgpu2d = " g2d g2dpango" -PACKAGECONFIG_append_imxipu = " ipu" -PACKAGECONFIG_append_imxvpu = " vpu" -PACKAGECONFIG_append_imxpxp = " pxp" - -PACKAGECONFIG[g2d] = ",--disable-g2d,imx-gpu-g2d" -PACKAGECONFIG[g2dpango] = ",--disable-g2dpango,imx-gpu-g2d pango" -PACKAGECONFIG[pxp] = ",--disable-pxp," -PACKAGECONFIG[ipu] = ",--disable-ipu," -PACKAGECONFIG[vpu] = ",--disable-vpu,libimxvpuapi" -PACKAGECONFIG[eglvivsink] = "${EGL_PLATFORM_CONF},--disable-eglvivsink,${EGLVIVSINK_DEPENDS}" -PACKAGECONFIG[v4l2src] = ",--disable-imxv4l2videosrc," -PACKAGECONFIG[v4l2sink] = ",--disable-imxv4l2videosink," -PACKAGECONFIG[uniaudiodec] = ",--disable-uniaudiodec,imx-codec" -PACKAGECONFIG[mp3encoder] = ",--disable-mp3encoder,imx-codec" - -# LIBV is used by gst-plugins-package.inc to specify the GStreamer version (0.10 vs 1.0) -LIBV = "1.0" -require recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc - -# the following line is required to produce one package for each plugin -PACKAGES_DYNAMIC = "^${PN}-.*" - -COMPATIBLE_MACHINE = "(mx6dl|mx6q|mx6sl|mx6sx|mx6ul|mx6ull|mx7d)" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb new file mode 100644 index 00000000..7c6025dd --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb @@ -0,0 +1,62 @@ +# Copyright (C) 2018 O.S. Systems Software LTDA. +DESCRIPTION = "GStreamer 1.0 plugins for i.MX platforms" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605" +SECTION = "multimedia" +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base libimxdmabuffer" +# add the audioparsers and the videoparsersbad plugins as RDEPENDS ; audioparsers +# for the uniaudio decoder, videoparsersbad for the VPU video decoder +# the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good recipe is +# built (it is not a compile-time dependency however, hence RDEPENDS and not DEPENDS) +RDEPENDS_gstreamer1.0-plugins-imx = "gstreamer1.0-plugins-good gstreamer1.0-plugins-bad" +RDEPENDS_gstreamer1.0-plugins-imx-imxaudio = "gstreamer1.0-plugins-good-audioparsers" +RDEPENDS_gstreamer1.0-plugins-imx-imxvpu = "gstreamer1.0-plugins-bad-videoparsersbad" + +PV .= "+git${SRCPV}" + +SRCBRANCH ?= "master" +SRCREV = "11e3a555a280f97d55d5243e8259a255b3ed14d0" +SRC_URI = "git://github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}" + +S = "${WORKDIR}/git" + +inherit pkgconfig meson use-imx-headers + +# libg2d on i.MX8 SoCs with a DPU is emulated via the DPU. +# That particular libg2d .so depends on libdrm, however. +# Also, due to behavioral differences, an additional flag +# is needed to improve performance. +LIBG2D_DPU_OPTION = "-Dg2d-based-on-dpu=false" +LIBG2D_DEPENDENCIES = "virtual/libg2d" +LIBG2D_DPU_OPTION_imxdpu = "-Dg2d-based-on-dpu=true" +LIBG2D_DEPENDENCIES_imxdpu = "virtual/libg2d libdrm" + +EXTRA_OEMESON += "-Dimx-headers-path=${STAGING_INCDIR_IMX}" + +PACKAGECONFIG ?= "uniaudiodec" +PACKAGECONFIG_append_imxgpu2d = " g2d" +PACKAGECONFIG_append_imxvpu = " vpu" +PACKAGECONFIG_append_imxipu = " ipu" +PACKAGECONFIG_append_imxpxp = " pxp" +# The custom imxv4l2 elements are only available on the i.MX6. +# The 2D blitter sinks require an MXC framebuffer, which +# is not available anymore on the i.MX8 (since these SoCs +# now use KMS instead of the old Linux framebuffer). +PACKAGECONFIG_append_mx6 = " imx2dvideosink v4l2" +PACKAGECONFIG_append_mx7 = " imx2dvideosink" + +PACKAGECONFIG[g2d] = "-Dg2d=enabled ${LIBG2D_DPU_OPTION},-Dg2d=disabled,${LIBG2D_DEPENDENCIES}" +PACKAGECONFIG[pxp] = "-Dpxp=enabled,-Dpxp=disabled," +PACKAGECONFIG[ipu] = "-Dipu=enabled,-Dipu=disabled," +PACKAGECONFIG[vpu] = "-Dvpu=enabled,-Dvpu=disabled,libimxvpuapi2" +PACKAGECONFIG[imx2dvideosink] = "-Dimx2d-videosink=true,-Dimx2d-videosink=false," +PACKAGECONFIG[v4l2] = "-Dv4l2=true,-Dv4l2=false," +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 + +# the following line is required to produce one package for each plugin +PACKAGES_DYNAMIC = "^${PN}-.*" + +COMPATIBLE_MACHINE = "(mx6dl|mx6q|mx6sl|mx6sx|mx6ul|mx6ull|mx7d|mx8)" -- 2.40.1