From c3bdc608728223ac6d215da616196afea57168cd Mon Sep 17 00:00:00 2001 From: Carlos Rafael Giani Date: Fri, 24 Apr 2020 09:05:45 +0200 Subject: gstreamer1.0-plugins-imx: Update to version 0.13.1 * Last planned release in the 0.x series. Development now focuses on 2.x. The 2.x series will support i.MX6, i.MX7, and i.MX8. * OE recipe fix to use the correct G2D dependency (imxg2d, not imx-gpu-viv) * waf: Update to version 2.0.12 and switch to Python 3 * misc: * gst_buffer_pool_config_set_allocator() and get_allocator() are transfer-none. Changes to the code address that, fixing various refcount related problems. * Update GstPhysMemoryAllocator support for GStreamer 1.14+ * v4l2video: * v4l2src: Set interlace flags in GstBuffer * v4l2sink: Define V4L2_COLORSPACE_DEFAULT if it doesn't exist * v4l2: Add phys mem meta only if the driver/card is known to support this This makes USB video cameras work with imxv4l2videosrc, because they do not provide any physical address. * v4l2_buffer_pool: First reset the buffer storage in the pool, then queue the buffer. Otherwise it might happen that we dequeue the same buffer in a different thread already *before* we have it reset in the buffer storage, and then run into an assertion because it contains NULL. * vpu: * decoder: Fix for an endless loop at gst_imx_vpu_decoder_finish() when in no_wait mode * decoder: Clear the GST_VIDEO_BUFFER_FLAG_TFF flag in case of IMX_VPU_INTERLACING_MODE_BOTTOM_FIELD_FIRST * decoder: Honour num-additional-framebuffers setting * decoder: Fix leak when input video formats change due to a missing gst_imx_vpu_decoder_close() call * ipu: Reintroduce interlace methods * audio: * Save pointer to codec_data GstBuffer to fix memory leak * Only allocate reordered_channel_positions if needed. If we don't need to reorder the audio channels, we the unnecessary allocation otherwise. * g2dpango: * Add missing header and cleanup a few warnings * Unref video_frame memory after phys_memory check Signed-off-by: Carlos Rafael Giani --- .../gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb (limited to 'recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.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 new file mode 100644 index 000000000..35996337e --- /dev/null +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb @@ -0,0 +1,71 @@ +# 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)" -- cgit v1.2.3-54-g00ecf