Commit Graph

22 Commits

Author SHA1 Message Date
Gary Bisson
f7a7d9487c 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-07 15:28:40 +01:00
Thomas Petazzoni
1610200e78 package/*/Config.in: fix property order warning of check-package
This commit fixes the ordering of the Config.in option properties, as
reported by check-package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-12-18 09:24:38 +01:00
Thomas Petazzoni
2277fdeca8 package/*/Config.in: fix help text check-package warnings
This commit fixes the warnings reported by check-package on the help
text of all package Config.in files, related to the formatting of the
help text: should start with a tab, then 2 spaces, then at most 62
characters.

The vast majority of warnings fixed were caused by too long lines. A
few warnings were related to spaces being used instead of a tab to
indent the help text.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-12-18 09:22:54 +01:00
Gary Bisson
120e9ce4e5 gst1-imx: add missing dependency for imxv4l2videosink plugin
The plugin source code uses V4L2_COLORSPACE_DEFAULT macro which was
defined in kernel 4.2, so make sure the toolchain headers match this
requirement.

Fixes:
http://autobuild.buildroot.net/results/48dd782161fa5e8860b5ea00a5d60207cb623108/
http://autobuild.buildroot.net/results/f970c782b5bfbcf66ff3ba200b060d3653ff2630/

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-12-01 23:44:14 +01:00
Gary Bisson
599b3af68a gst1-imx: fix v4l2 plugins disable options
Latest bump to v0.13.0 didn't take care of the following upstream
commit:

  7bfbf71 v4l2: Rename to v4l2video and add switches to enable/disable sink/source

To address that, this commit:

 - Uses the new name of the v4l2 source configure script option

 - Introduce a new Config.in option to control the build of the v4l2
   sink support

Fixes:

  http://autobuild.buildroot.net/results/5c404a2a28a4052056e5c9a7edda40641fe55f9e

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-11-22 21:30:15 +01:00
Alexandre Esse
a035bdca6b 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-11 23:41:20 +01:00
Rahul Bedarkar
9254f02266 package: use SPDX short identifier for LGPLv2/LGPLv2+
We want to use SPDX identifier for license string as much as possible.
SPDX short identifier for LGPLv2/LGPLv2+ is LGPL-2.0/LGPL-2.0+.

This change is done using following command.
find . -name "*.mk" | xargs sed -ri '/LICENSE( )?[\+:]?=/s/LGPLv2(\+)?/LGPL-2.0\1/g'

Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-01 15:19:13 +02:00
Gary Bisson
ee5bbc8cf0 gst1-imx: add menuconfig to select each plugin individually
Also making it clearer as for what each plugin dependencies are.

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
[Thomas: invert conditions to avoid empty ifeq ... else statements.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-02-06 19:35:52 +01:00
Yann E. MORIN
3bf46c647b package/gst1-imx: make it a waf-package
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gary Bisson <gary.bisson@boundarydevices.com>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Tested-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-02 22:37:53 +01:00
Peter Korsgaard
18bd407ba4 gst1-imx: unbreak after 0.12.3 bump
The 0.12.3 bump forgot to update the download hash and remove the now
upstreamed patch, breaking the build.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-01 22:43:17 +01:00
Vicente Olivert Riera
4f29cc436b gstreamer1/gst1-imx: bump version to 0.12.3
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-11-30 13:53:32 +01:00
Gary Bisson
0b5553fef7 gst1-imx: fix V4L2 plugin build with kernel headers < 3.18
This patch fix the following build issue:
http://autobuild.buildroot.net/results/b46/b460a770c8f4e992d29dde8fe37fc23a949937f2

It has been submitted to the package maintainers:
https://github.com/Freescale/gstreamer-imx/pull/106

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-08-09 15:43:58 +02:00
Gary Bisson
735379d43a gst1-imx: bump to version 0.12.2
Changelog:
* imxv4l2videosrc:
  * Stricter checks for video device capabilities
  * Add support for more video formats like 8/16-bit grayscale

* pxp: Fix incorrect return code which broke blitter with GStreamer 1.8

* blitter:
  * Improvements in error logging
  * Fixes for RGBx framebuffer format detection
  * Fix for subtle tearing problem by implementing triple buffering

* audio:
  * Replace objdump-based scan during build configuration
    Codec filenames are instead moved to the C code; the libdir
    path of the libfslaudiocodec.pc file is used to know where on
    the target the files are placed
  * Explicitely add the libfslaudiocodec.pc libdir to the MP3 encoder
    Fixes build errors in buildroot
  * Minor logging fixes

* misc:
  * Proper check for region copies in phys_mem_meta
  * Add missing G_END_DECLS lines in headers

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.MX7 (PXP):
 # gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! imxpxpvideosink

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-08-03 22:08:30 +02:00
Peter Korsgaard
69f616099b gst1-imx: needs shared libraries
Fixes:
http://autobuild.buildroot.org/results/2d1/2d1b5077a7551cebe4b961d6ce1cf844ad83fb8c/

Otherwise waf configure fails with:
Checking for library dl                                      : not found
The configuration failed

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-06-16 22:15:03 +02:00
Andrew Webster
47e6203f63 imx-codec: rename from libfslcodec and bump version to 4.0.9
Changelog:
--[aac_dec] refine the code for pure c build
  aac decoder c build need float point support, which use some
  float point function.

This patch is based on the Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/commit/4b91194

Implicitly tested through gstreamer as the 0.10 plugin relies on it:
 # gst-launch-0.10 playbin uri=file:///root/tears_of_steel_1080p.webm

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-15 22:48:40 +02:00
Andrew Webster
c20e0685ef 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-15 22:48:40 +02:00
Baruch Siach
494b0a5b6b gst1-imx: make kernel dependency optional
The i.MX specific kernel headers are not a hard dependency. Quoting README.md:

  Without [--kernel-headers], the [ipu.h] header is not found, and elements
  using the IPU will not be built.

Cc: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-06-12 22:38:19 +02:00
Gary Bisson
62d1d8ce4b gst1-imx: add missing libfslcodec dependency
Needed by imxmp3audioenc and imxuniaudiodec plugins.

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-03-19 14:58:46 +01:00
Gary Bisson
f233f3c5ff 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-21 15:51:57 +01:00
Gary Bisson
9dd25a3f8a gst1-imx: bump version to 0.11.1
Changelog:
(0.11.1)
- vpu: decoder: Keep track of unfinished gstvideo frames
- blitter fixes and enhancements
- ipu: All pages are now cleared when page flipping is used
- compositor: Added support for cropping input streams
- imxv4l2src fixes and enhancements
(0.11.0)
- new common codebase for rectangular regions and video canvases
- new blitter-based video sink with full support for vsync to
  eliminate tearing
- complete rewrite of blitter base code
- new compositor elements
- vpu: decoder: Memory leaks fixed
- vpu: encoder: Bitrate can now be set on the fly
- eglvivsink: In Wayland, window x/y coordinates are now supported
- several v4l2src fixes
(0.10.2)
- v4l2src: renamed imxv4l2src to imxv4l2videosrc to avoid name
  collisions with the FSL plugins
- v4l2src: Call the buffer pool baseclass stop() function (fixes
  segfaults)
- uniaudio: Create correct config header even if no codecs were found
- audio: new MP3 encoder element using the libfslcodec MP3 encoder
- g2d/ipu/pxp blitter sink: Respect aspect ratio also in 90/270 degree
  rotations
- pxp: Remove broken/unsupported formats
- eglvivsink: Fix double mutex unlock
- phys mem meta naming cleanup

Tested with the following commands:
 # 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: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-09-19 15:40:13 +02:00
Gary Bisson
4c0613e7de gpu-viv-bin-mx6q: rename package to imx-gpu-viv
In order to be in line with new Freescale naming convention:

https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9

"Graphics recipe is renamed from gpu-viv-bin-mx6q to imx-gpu-viv"

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-11 13:00:45 +02:00
Gary Bisson
6aceb89b55 gst1-imx: add package
Open-source GStreamer 1.0 plugins for i.MX6 platforms.
More info at https://github.com/Freescale/gstreamer-imx

[Peter: add upstream URL to help text]
Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>
Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
Tested-by: Rostislav Lisovy <lisovy@jablotron.cz>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-04-06 00:25:08 +02:00