[Buildroot] [PATCH v4 2/2] gst1-imx: bump to version 0.12.0
Peter Seiderer
ps.report at gmx.net
Wed Feb 17 12:38:42 UTC 2016
Hello Gary,
> Gesendet: Mittwoch, 17. Februar 2016 um 13:27 Uhr
> Von: "Gary Bisson" <gary.bisson at boundarydevices.com>
> An: buildroot at busybox.net
> Cc: thomas.petazzoni at free-electrons.com, ps.report at gmx.net, baruch at tkos.co.il, "Gary Bisson" <gary.bisson at boundarydevices.com>
> Betreff: [PATCH v4 2/2] gst1-imx: bump to version 0.12.0
>
> Changelog:
> * vpu:
> - Completely rewritten plugin code; elements now based on libimxvpuapi
> instead of libfslvpuwrap
> - imxvpuenc_h264 inserts SPS/PPS data in front of I/IDR frames
> - imxvpuenc_mjpeg's quality factor actually has an effect, and is
> equivalent to the libjpeg's quality factor (it is used in exactly
> the same way to scale the quantization matrix' coefficients)
> - the encoder's output buffers no longer have to use DMA memory; they
> use regular system memory instead
> - new support in imxvpudec (referred to as "chroma interleaving") for
> NV12, NV16, NV24 as output formats as an alternative to the I420,
> Y42B, Y444 formats
> - removed all of the system frame number tracking code, since it is
> unnecessary; Instead, the libimxvpuapi's context fields are used to
> associate input/output frames with GstVideoCodecFrame system frame
> numbers
> - fix memory leaks related to missing buffer pool unref'ing
>
> * imxv4l2videosrc:
> - support for crop metadata
> - element uses the width, height, etc. of the format that the device
> actually uses during operation (instead of default values)
> - autofocus control support via GstPhotography
> - fix incorrect GLib warnings
> - fix segmentation fault when shutting down the element
>
> * eglvivsink:
> - remove extra g_free() calls, which lead to runtime errors
> - remove GLESv2 VIVANTE link dependencies
> - add Android platform
> - manually retrieve VIV direct texture functions
> with this and the link dependency elimination, this means that for
> platforms except the framebuffer one, no Vivante specific headers
> and libraries are needed anymore
> - fix blocking issue in the Wayland platform mainloop
>
> * improved and expanded documentation
>
> * pxp: NV16 *is* supported after all (it was actually a bug in GStreamer
> pre-1.5.91)
> NOTE: this does not break compatibility with GStreamer versions older
> than 1.5.91
>
> * compositor: Update backported aggregator code to GStreamer 1.6
>
> * blitter:
> - error handling improvements
> - add missing buffer pool unref'ing, which lead to memory leaks
> - add missing compositor dependency to blitter base
>
> * uniaudio:
> - only build the uniaudio plugin if at least one codec was found
> during configuration
> - disable plugin if the gstaudio library is not available
> - add AAC profile field to the sink caps with GStreamer >= 1.4.4 to
> ensure the uniaudio decoder is only used for AAC-LC data
>
> * ipu: increase fill frame width from 8 to 64 pixels to make IPU fill
> operations work with pre-3.14 Freescale kernels
>
> * g2d: use padding pixels when setting surface parameters, fixing G2D
> failures with frame sizes that aren't aligned
>
> * wscript:
> - improve Android support
> - fix installation paths for the common, blitter, compositor libraries
>
> This is based on the Yocto equivalent:
> https://github.com/Freescale/meta-fsl-arm/commit/cf7a088
>
> However this package now offers a more flexible approach because it can
> be built without the GPU or VPU elements for devices based on SoCs that
> lack those features like the new i.MX7.
>
> Tested with the following commands on i.MX6Q (IPU):
> # gst-launch-1.0 playbin uri=file:///root/tears_of_steel_1080p.webm
> # gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \
> matroskademux ! imxvpudec ! imxipuvideosink
> # gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \
> matroskademux ! imxvpudec ! imxeglvivsink
>
> Tested with the following commands on i.MX6SX (PXP):
> # gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! imxpxpvideosink
>
> Signed-off-by: Gary Bisson <gary.bisson at boundarydevices.com>
> ---
>
> Changes v1->v2:
> - add hash file
>
> Changes v2->v3:
> - remove plugin options
> - replaced by text in Config.in
> - update package description (no longer beta stage)
> https://github.com/Freescale/gstreamer-imx/commit/dc05fb8
> - update gst1-imx.mk dependencies mechanism
> - add missing libfslcodec case
> - another series is needed for it to actually work:
> http://lists.busybox.net/pipermail/buildroot/2016-January/150490.html
>
> Changes v3->v4:
> - none
>
> Peter, I didn't add your Tested-by for this patch since you had troubles with
> the imxeglvivsink. Please let us know if the Vivante kernel module fixed the
> issue.
>
The imxeglvivsink problem is fixed by 'BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV=y', pipelines
with imxeglvivsink are now working, you can add my:
Tested-by: Peter Seiderer <ps.report at gmx.net>
Regards,
Peter
> Thanks,
> Gary
>
> ---
> package/gstreamer1/gst1-imx/Config.in | 18 +++++++-----------
> package/gstreamer1/gst1-imx/gst1-imx.hash | 2 ++
> package/gstreamer1/gst1-imx/gst1-imx.mk | 20 +++++++++++++++++---
> 3 files changed, 26 insertions(+), 14 deletions(-)
> create mode 100644 package/gstreamer1/gst1-imx/gst1-imx.hash
>
> diff --git a/package/gstreamer1/gst1-imx/Config.in b/package/gstreamer1/gst1-imx/Config.in
> index f7284f4..0084483 100644
> --- a/package/gstreamer1/gst1-imx/Config.in
> +++ b/package/gstreamer1/gst1-imx/Config.in
> @@ -1,27 +1,23 @@
> comment "gst1-imx needs an imx-specific Linux kernel to be built"
> depends on BR2_arm && !BR2_LINUX_KERNEL
>
> -# Required by imx-gpu-viv
> -comment "gst1-imx needs an (e)glibc toolchain"
> - depends on BR2_arm
> - depends on !BR2_TOOLCHAIN_USES_GLIBC
> -
> config BR2_PACKAGE_GST1_IMX
> bool "gst1-imx"
> depends on BR2_LINUX_KERNEL
> depends on BR2_arm # Only relevant for i.MX
> - depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-viv
> - depends on BR2_PACKAGE_IMX_GPU_VIV
> - depends on BR2_PACKAGE_LIBFSLVPUWRAP
> select BR2_PACKAGE_GST1_PLUGINS_BASE
> help
> This is a set of GStreamer 1.0 plugins for plugins for Freescale's
> - i.MX6 platforms, with emphasis on video en/decoding using the VPU
> - engine.
> + i.MX platforms, which make use of the i.MX multimedia capabilities.
>
> This software supports only the i.MX6 SoC family and requires a
> kernel that includes the i.MX6 specific headers to be built.
>
> - The software as a whole is currently in beta stage.
> + The IPU and PXP plugins are always built.
> + The V4L2 plugin is built when BR2_PACKAGE_GST1_PLUGINS_BAD is enabled.
> + The VPU plugin is built when BR2_PACKAGE_LIBIMXVPUAPI is enabled.
> + The EGL plugin is built when BR2_PACKAGE_IMX_GPU_VIV is enabled.
> + The G2D plugin is built when BR2_PACKAGE_IMX_GPU_VIV_G2D is enabled.
> + The MP3 plugin is built when BR2_PACKAGE_LIBFSLCODEC is enabled.
>
> https://github.com/Freescale/gstreamer-imx
> diff --git a/package/gstreamer1/gst1-imx/gst1-imx.hash b/package/gstreamer1/gst1-imx/gst1-imx.hash
> new file mode 100644
> index 0000000..03e1729
> --- /dev/null
> +++ b/package/gstreamer1/gst1-imx/gst1-imx.hash
> @@ -0,0 +1,2 @@
> +# locally computed hash
> +sha256 df34f080e24ac8f1619780aa5ad4e6ab1333f822cd2bf5fcb380b28c97248810 gst1-imx-0.12.0.tar.gz
> diff --git a/package/gstreamer1/gst1-imx/gst1-imx.mk b/package/gstreamer1/gst1-imx/gst1-imx.mk
> index 8ede8ad..ca6bc49 100644
> --- a/package/gstreamer1/gst1-imx/gst1-imx.mk
> +++ b/package/gstreamer1/gst1-imx/gst1-imx.mk
> @@ -4,7 +4,7 @@
> #
> ################################################################################
>
> -GST1_IMX_VERSION = 0.11.1
> +GST1_IMX_VERSION = 0.12.0
> GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION))
>
> GST1_IMX_LICENSE = LGPLv2+
> @@ -12,14 +12,27 @@ GST1_IMX_LICENSE_FILES = LICENSE
>
> GST1_IMX_INSTALL_STAGING = YES
>
> -GST1_IMX_DEPENDENCIES += host-pkgconf host-python \
> - imx-gpu-viv gstreamer1 gst1-plugins-base libfslvpuwrap
> +GST1_IMX_DEPENDENCIES += \
> + host-pkgconf \
> + host-python \
> + gstreamer1 \
> + gst1-plugins-base
>
> # needs access to imx-specific kernel headers
> GST1_IMX_DEPENDENCIES += linux
> GST1_IMX_CONF_OPTS += --prefix="/usr" \
> --kernel-headers="$(LINUX_DIR)/include"
>
> +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD),y)
> +GST1_IMX_DEPENDENCIES += gst1-plugins-bad
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI),y)
> +GST1_IMX_DEPENDENCIES += libimxvpuapi
> +endif
> +
> +ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y)
> +GST1_IMX_DEPENDENCIES += imx-gpu-viv
> ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
> GST1_IMX_DEPENDENCIES += xlib_libX11
> GST1_IMX_CONF_OPTS += --egl-platform=x11
> @@ -31,6 +44,7 @@ else
> GST1_IMX_CONF_OPTS += --egl-platform=fb
> endif
> endif
> +endif
>
> define GST1_IMX_CONFIGURE_CMDS
> cd $(@D); \
> --
> 2.7.0
>
>
More information about the buildroot
mailing list