kumquat-buildroot/package/gstreamer1/gst1-imx/gst1-imx.mk

104 lines
2.5 KiB
Makefile
Raw Normal View History

################################################################################
#
# gst1-imx
#
################################################################################
gst1-imx: bump version to 0.13.0 Changelog: ==== version 0.13.0 (2017-11-01) ==== * New imxv4l2videosink element Currently only supports input physically contiguous memory blocks as input (so, for example, no videotestsrc) * New Pango-based overlay elements using G2D for rendering * gstimxcommon library is now public Necessary when implementing external sinks to retrieve the mapped physical memory address from gstreamer buffers (NOTE: ABI may change in the next few releases until this is stabilized) * New optional ability to use GstPhysMemory from gst-plugins-bad * imxv4l2videosrc: * Fix compile prior to Gstreamer 1.3.1 * v4l2_buffer_pool: Add special case for tw6869 driver The tw6869 driver requires a different physical address to allow DMA'able buffers for decreasing latency between chip and display * v4l2src: add fractional "fps" property (obsoletes the "fps-n" property) * Add GstImxV4l2Meta init function This avoids the g_assert() that was caused by the missing init function * Add num-additional-buffers property This can be useful if capturing video isn't smooth; it sets the number of internal additional buffers, so if downstream consumes too many buffers, imxv4l2videosrc might end up doing a blocking wait until buffers are returned * imxv4l2src plugin is now called imxv4l2video, because it also contains imxv4l2videosink Also, the v4l2 elements can be enabled/disabled in the build configuration individually now * compositor: * Only copy compositor input buffers to DMA memory once If a single input frame is used for multiple output frames, we would otherwise copy multiple times which can easily go to the limit of the memory bandwidth * vpu: * Handle releasing of buffers without assigned framebuffer This can happen if the buffer is released before it was actually used, e.g. when renegotiating at the very beginning; prevents a crash that would otherwise occur * Add parameter check to avoid encoder crash on flush * g2d: * Add build configuration switches to explicitely specify G2D include and library paths * Disable cacheable memory allocation Several issues were reported with cacheable DMA memory, so it is turned off, at least for now * blitter: * Add property to clear screen to black in blitter sinks * Add output-rotation property to videotransform base class * audio: * Fix reference counting for caps * Mark static codec caps as may be leaked This gets rid of the false positive in the leak tracer Signed-off-by: Alexandre Esse <alexandre.esse.dev@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-11-10 20:43:20 +01:00
GST1_IMX_VERSION = 0.13.0
GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION))
GST1_IMX_LICENSE = LGPL-2.0+
GST1_IMX_LICENSE_FILES = LICENSE
GST1_IMX_INSTALL_STAGING = YES
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@boundarydevices.com> Tested-by: Peter Seiderer <ps.report at gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-02-17 13:27:51 +01:00
GST1_IMX_DEPENDENCIES += \
host-pkgconf \
gstreamer1 \
gst1-plugins-base
GST1_IMX_CONF_OPTS = --prefix="/usr"
ifeq ($(BR2_LINUX_KERNEL),y)
# IPU and PXP need access to imx-specific kernel headers
GST1_IMX_DEPENDENCIES += linux
GST1_IMX_CONF_OPTS += --kernel-headers="$(LINUX_DIR)/include"
endif
ifeq ($(BR2_PACKAGE_IMX_CODEC),y)
GST1_IMX_DEPENDENCIES += imx-codec
endif
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@boundarydevices.com> Tested-by: Peter Seiderer <ps.report at gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-02-17 13:27:51 +01:00
ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y)
GST1_IMX_DEPENDENCIES += imx-gpu-viv
endif
imx-gpu-viv: bump to version 6.2.2.p0 New features: - Added mutex protection for referencing gctSIGNAL in gckOS_MapSignal to fix a MT race issue. - Streamlined GPU address calculation base on MC20 (0/1) and MMU (0/1) combinations. - Fixed multiple Android HWC 2.0 rendering issues. Refined HWC 2.0 driver implementation. - Improved HWC2.0 composition performance by composing damaged regions only. - Enabled offline/online compiler IR assembly dump function for users. - Implemented the direct rendering support (no-resolve) for Wayland platform. - Added EGL_EXT_buffer_age extension for Wayland and fbdev platforms. - Updated wayland-viv protocol to support tile status sync from client to server. - Improved OpenCL 1.2 builtin function support with native GPU instructions. - Enabled OpenCL 1.2 API trace dump function controlled by VIV_TRACE environment variable. - Support for OpenGL4.0 - Cleaned up driver code issues reported by Klocwork and Coverity. Full changelog: http://git.freescale.com/git/cgit.cgi/imx/fsl-arm-yocto-bsp.git/tree/GraphicsChangeLogv6?h=imx-morty Note that the apitrace tool and the G2D libraries are not part of the package any longer, so the corresponding options are removed. The G2D libraries are now provided by a separate package. This package has been tested with both X11 and Framebuffer backends: # cd /usr/share/examples/viv_samples/vdk/ # ./tutorial7 # gmem_info ... display memory use per PID ... Also update packages that depended on g2d libraries to match new package name. Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2018-01-05 15:39:36 +01:00
ifeq ($(BR2_PACKAGE_IMX_GPU_G2D),y)
GST1_IMX_DEPENDENCIES += imx-gpu-g2d
endif
ifeq ($(BR2_PACKAGE_GST1_IMX_EGLVISINK),y)
# There's no --enable-eglvivsink option
ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
GST1_IMX_DEPENDENCIES += xlib_libX11
GST1_IMX_CONF_OPTS += --egl-platform=x11
else
ifeq ($(BR2_PACKAGE_WAYLAND),y)
GST1_IMX_DEPENDENCIES += wayland
GST1_IMX_CONF_OPTS += --egl-platform=wayland
else
GST1_IMX_CONF_OPTS += --egl-platform=fb
endif
endif
else
GST1_IMX_CONF_OPTS += --disable-eglvivsink
endif
# There's no --enable-g2d option
ifeq ($(BR2_PACKAGE_GST1_IMX_G2D),)
GST1_IMX_CONF_OPTS += --disable-g2d
endif
# There's no --enable-ipu option
ifeq ($(BR2_PACKAGE_GST1_IMX_IPU),)
GST1_IMX_CONF_OPTS += --disable-ipu
endif
# There's no --enable-mp3encoder option
ifeq ($(BR2_PACKAGE_GST1_IMX_MP3ENCODER),)
GST1_IMX_CONF_OPTS += --disable-mp3encoder
endif
# There's no --enable-pxp option
ifeq ($(BR2_PACKAGE_GST1_IMX_PXP),)
GST1_IMX_CONF_OPTS += --disable-pxp
endif
# There's no --enable-uniaudiodec option
ifeq ($(BR2_PACKAGE_GST1_IMX_UNIAUDIODEC),)
GST1_IMX_CONF_OPTS += --disable-uniaudiodec
endif
ifeq ($(BR2_PACKAGE_GST1_IMX_VPU),y)
# There's no --enable-vpu option
GST1_IMX_DEPENDENCIES += libimxvpuapi
else
GST1_IMX_CONF_OPTS += --disable-vpu
endif
ifeq ($(BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC),y)
# There's no --enable-imxv4l2videosrc option
GST1_IMX_DEPENDENCIES += gst1-plugins-bad
else
GST1_IMX_CONF_OPTS += --disable-imxv4l2videosrc
endif
ifeq ($(BR2_PACKAGE_GST1_IMX_V4L2VIDEOSINK),y)
# There's no --enable-imxv4l2videosink option
GST1_IMX_DEPENDENCIES += gst1-plugins-bad
else
GST1_IMX_CONF_OPTS += --disable-imxv4l2videosink
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@boundarydevices.com> Tested-by: Peter Seiderer <ps.report at gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-02-17 13:27:51 +01:00
endif
$(eval $(waf-package))