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

74 lines
1.7 KiB
Makefile
Raw Normal View History

################################################################################
#
# gst1-imx
#
################################################################################
gst1-imx: bump to version 0.12.1 Changelog: * compositor: Rename ImxCompositor(Pad) to ImxVideoCompositor(Pad) This prevents conflicts if both the NXP plugins and the gstreamer-imx are installed in the same rootfs * Add switches to wscript configuration to enable/disable plugins Until now, all plugins were built (unless their dependencies were missing). On some i.MX machines, some features are missing. For example, the i.MX7 has no VPU. To ensure deterministic builds, it is useful to selectively disable plugins in the build. * ipu+pxp: : Fix deadlocks and incorrect logging in case of init error This was causing a freeze if for example one tries to use PxP elements on an i.MX6 Dual/Quad * imxv4l2videosrc fixes and enhancements: * fixes to interlacing support (incl. workarounds for analog TV input) * remove format restriction in get_caps function this removes the limitation on I420 formats * simplified determination of fps (necessary due to driver limitations) * eglvivsink: wayland: Do not commit before buffers are swapped This fixes eglSwapBuffer swaps with damaged frames * Documentation additions Adds GPU memory leak notess to the FAQ * vpu: encoder: Expose motion estimation range as property * vpu: decoder: Drop output frame if its buffer cannot be allocated This patch is based on the Yocto equivalent: https://github.com/Freescale/meta-fsl-arm/commit/cec4c47 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 Signed-off-by: Andrew Webster <awebster@arcx.com> Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com> Tested-by: Gary Bisson <gary.bisson@boundarydevices.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-06-10 20:12:02 +02:00
GST1_IMX_VERSION = 0.12.1
GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION))
GST1_IMX_LICENSE = LGPLv2+
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 \
host-python \
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
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_GST1_PLUGINS_BAD),y)
GST1_IMX_DEPENDENCIES += gst1-plugins-bad
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_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
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
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
define GST1_IMX_CONFIGURE_CMDS
cd $(@D); \
$(TARGET_CONFIGURE_OPTS) \
$(HOST_DIR)/usr/bin/python2 ./waf configure $(GST1_IMX_CONF_OPTS)
endef
define GST1_IMX_BUILD_CMDS
cd $(@D); \
$(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS)
endef
define GST1_IMX_INSTALL_TARGET_CMDS
cd $(@D); \
$(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) \
install
endef
$(eval $(generic-package))