From: Gary Bisson <gary.bisson@boundarydevices.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 10/10] gst1-imx: bump to version 0.12.0
Date: Sat, 30 Jan 2016 12:45:57 +0100 [thread overview]
Message-ID: <1454154357-31625-11-git-send-email-gary.bisson@boundarydevices.com> (raw)
In-Reply-To: <1454154357-31625-1-git-send-email-gary.bisson@boundarydevices.com>
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@boundarydevices.com>
---
package/gstreamer1/gst1-imx/Config.in | 58 ++++++++++++++++++++++++++++-----
package/gstreamer1/gst1-imx/gst1-imx.mk | 15 +++++++--
2 files changed, 62 insertions(+), 11 deletions(-)
diff --git a/package/gstreamer1/gst1-imx/Config.in b/package/gstreamer1/gst1-imx/Config.in
index f7284f4..5f0da84 100644
--- a/package/gstreamer1/gst1-imx/Config.in
+++ b/package/gstreamer1/gst1-imx/Config.in
@@ -1,19 +1,13 @@
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
+menuconfig 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
+ select BR2_PACKAGE_GST1_IMX_IPU_PLUGIN
+ select BR2_PACKAGE_GST1_IMX_PXP_PLUGIN
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
@@ -25,3 +19,49 @@ config BR2_PACKAGE_GST1_IMX
The software as a whole is currently in beta stage.
https://github.com/Freescale/gstreamer-imx
+
+if BR2_PACKAGE_GST1_IMX
+
+config BR2_PACKAGE_GST1_IMX_IPU_PLUGIN
+ bool "IPU plugin"
+ help
+ IPU plugin library
+
+config BR2_PACKAGE_GST1_IMX_PXP_PLUGIN
+ bool "PXP plugin"
+ help
+ PXP plugin library
+
+config BR2_PACKAGE_GST1_IMX_V4L2_PLUGIN
+ bool "V4L2 plugin"
+ select BR2_PACKAGE_GST1_PLUGINS_BAD
+ help
+ V4L2 plugin library
+
+config BR2_PACKAGE_GST1_IMX_VPU_PLUGIN
+ bool "VPU plugin"
+ select BR2_PACKAGE_LIBIMXVPUAPI
+ help
+ VPU plugin library
+
+# Required by imx-gpu-viv
+comment "GPU sinks need an (e)glibc toolchain"
+ depends on !BR2_TOOLCHAIN_USES_GLIBC
+
+config BR2_PACKAGE_GST1_IMX_EGL_PLUGIN
+ bool "EGL plugin"
+ depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-viv
+ depends on BR2_PACKAGE_IMX_GPU_VIV
+ help
+ EGL plugin library
+
+config BR2_PACKAGE_GST1_IMX_G2D_PLUGIN
+ bool "G2D plugin"
+ depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-viv
+ depends on BR2_PACKAGE_IMX_GPU_VIV
+ depends on BR2_PACKAGE_GST1_IMX_EGL_PLUGIN
+ select BR2_PACKAGE_IMX_GPU_VIV_G2D
+ help
+ G2D plugin library
+
+endif
diff --git a/package/gstreamer1/gst1-imx/gst1-imx.mk b/package/gstreamer1/gst1-imx/gst1-imx.mk
index 8ede8ad..f3eac0a 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+
@@ -13,13 +13,23 @@ 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
+ 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_IMX_V4L2_PLUGIN),y)
+GST1_IMX_DEPENDENCIES += gst1-plugins-bad
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX_VPU_PLUGIN),y)
+GST1_IMX_DEPENDENCIES += libimxvpuapi
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX_EGL_PLUGIN),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 +41,7 @@ else
GST1_IMX_CONF_OPTS += --egl-platform=fb
endif
endif
+endif
define GST1_IMX_CONFIGURE_CMDS
cd $(@D); \
--
2.6.4
next prev parent reply other threads:[~2016-01-30 11:45 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-30 11:45 [Buildroot] [PATCH 00/10] Update most Freescale packages Gary Bisson
2016-01-30 11:45 ` [Buildroot] [PATCH 01/10] firmware-imx: bump to version 5.2 Gary Bisson
2016-02-01 20:39 ` Thomas Petazzoni
2016-02-01 20:56 ` Gary Bisson
2016-01-30 11:45 ` [Buildroot] [PATCH 02/10] imx-kobs: bump to version 5.1 Gary Bisson
2016-02-01 20:39 ` Thomas Petazzoni
2016-01-30 11:45 ` [Buildroot] [PATCH 03/10] imx-lib: " Gary Bisson
2016-02-01 20:39 ` Thomas Petazzoni
2016-01-30 11:45 ` [Buildroot] [PATCH 04/10] freescale-imx: remove FREESCALE_IMX_VERSION Gary Bisson
2016-02-01 20:39 ` Thomas Petazzoni
2016-01-30 11:45 ` [Buildroot] [PATCH 05/10] libfslcodec: bump to version 4.0.7 Gary Bisson
2016-02-01 20:39 ` Thomas Petazzoni
2016-01-30 11:45 ` [Buildroot] [PATCH 06/10] libfslparser: " Gary Bisson
2016-02-01 20:39 ` Thomas Petazzoni
2016-01-30 11:45 ` [Buildroot] [PATCH 07/10] libfslvpuwrap: bump to version 1.0.61 Gary Bisson
2016-02-01 20:39 ` Thomas Petazzoni
2016-01-30 11:45 ` [Buildroot] [PATCH 08/10] libimxvpuapi: add new package Gary Bisson
2016-02-01 20:42 ` Thomas Petazzoni
2016-02-01 21:07 ` Gary Bisson
2016-02-01 21:17 ` Thomas Petazzoni
2016-01-30 11:45 ` [Buildroot] [PATCH 09/10] gst1-plugins-bad: add install to staging directory Gary Bisson
2016-02-01 20:42 ` Thomas Petazzoni
2016-01-30 11:45 ` Gary Bisson [this message]
2016-02-01 20:44 ` [Buildroot] [PATCH 10/10] gst1-imx: bump to version 0.12.0 Thomas Petazzoni
2016-02-01 21:20 ` Gary Bisson
2016-02-01 22:27 ` Thomas Petazzoni
2016-02-01 22:49 ` Gary Bisson
2016-02-02 8:56 ` Arnout Vandecappelle
2016-02-02 9:07 ` Gary Bisson
2016-02-02 8:51 ` Arnout Vandecappelle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1454154357-31625-11-git-send-email-gary.bisson@boundarydevices.com \
--to=gary.bisson@boundarydevices.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox