2015-03-30 12:12:23 +02:00
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# 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
|
2015-03-30 12:12:23 +02:00
|
|
|
GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION))
|
|
|
|
|
2017-03-30 15:43:37 +02:00
|
|
|
GST1_IMX_LICENSE = LGPL-2.0+
|
2015-03-30 12:12:23 +02:00
|
|
|
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
|
2015-03-30 12:12:23 +02:00
|
|
|
|
2016-04-18 12:05:19 +02:00
|
|
|
GST1_IMX_CONF_OPTS = --prefix="/usr"
|
|
|
|
|
|
|
|
ifeq ($(BR2_LINUX_KERNEL),y)
|
|
|
|
# IPU and PXP need access to imx-specific kernel headers
|
2015-03-30 12:12:23 +02:00
|
|
|
GST1_IMX_DEPENDENCIES += linux
|
2016-04-18 12:05:19 +02:00
|
|
|
GST1_IMX_CONF_OPTS += --kernel-headers="$(LINUX_DIR)/include"
|
|
|
|
endif
|
2015-03-30 12:12:23 +02:00
|
|
|
|
2016-06-10 20:13:05 +02:00
|
|
|
ifeq ($(BR2_PACKAGE_IMX_CODEC),y)
|
|
|
|
GST1_IMX_DEPENDENCIES += imx-codec
|
2016-03-16 15:56:52 +01:00
|
|
|
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
|
2016-09-26 10:15:59 +02:00
|
|
|
endif
|
|
|
|
|
2018-01-05 15:39:36 +01:00
|
|
|
ifeq ($(BR2_PACKAGE_IMX_GPU_G2D),y)
|
|
|
|
GST1_IMX_DEPENDENCIES += imx-gpu-g2d
|
|
|
|
endif
|
|
|
|
|
2016-09-26 10:15:59 +02:00
|
|
|
ifeq ($(BR2_PACKAGE_GST1_IMX_EGLVISINK),y)
|
|
|
|
# There's no --enable-eglvivsink option
|
2015-03-30 12:12:23 +02:00
|
|
|
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
|
2016-09-26 10:15:59 +02:00
|
|
|
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)
|
2017-11-21 16:27:06 +01:00
|
|
|
# There's no --enable-imxv4l2videosrc option
|
2016-09-26 10:15:59 +02:00
|
|
|
GST1_IMX_DEPENDENCIES += gst1-plugins-bad
|
|
|
|
else
|
2017-11-21 16:27:06 +01:00
|
|
|
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
|
2015-03-30 12:12:23 +02:00
|
|
|
|
2016-10-30 17:02:17 +01:00
|
|
|
$(eval $(waf-package))
|