[ANN] gst-dsp 0.8.0 released


gst-dsp is a GStreamer plug-in to utilize Texas Intruments' DSP
algorithms for OMAP3 platforms using the tidspbridge driver.

This is a major release, many features have been implemented:

* Refactoring of DMA API
* Fixes for newer DSP API versions
* Add JPEG decoder implementation
* Fix WMV support
* Reorganize the way EOS is handled
* Improve H.264 keyframe handling
* Improve deinitialization on fatal errors (like MMU faults)
* Fixes for ARMv7 speculative pre-fetching
* Several improvements for encoding bitrate calculation
* Add support for I420 color format
* Correctly propagate aspect-ratio

And the usual bunch of cleanups and reorganization.

Also it's worth noting that this code has been tested on Nokia N900,
beagleboard, and future Nokia hw; with different DSP binaries;
L23.i3.8, L23.i3.3, and 0.3.5; and different DSP bridge driver
versions. For very old binaries, build with DSP_API=0, it's not
necessary to set SN_API yet, as the structures are binary compatible
with all the versions.

Moreover, this time I decided to package, this, and some related
packages in tarballs in order to help some distributions:

This time we have slightly more contributors, including even some
patches from TI. Thanks everyone!

Unfortunately this is still not ready for 1.0, the parsers need to be
cleaned up, fixed, and merged. And once tidspbridge 0.4 is tagged,
move to the new DMA API ioctls.

Finally, most likely the core of gst-dsp will move to a separate
library (not related to GStreamer): libtidsp, in order to be useful in
other projects. A sample of that has been submitted to FFmpeg for

Enjoy :wink:

Arvind Gupta (3):
      vdec: MPEG4 sn to use double buffer
      hack: venc: strip SPS and PPS headers on keyframes
      vdec: return last frame EOS from MPEG4, H.263 and WMV decoders

Felipe Contreras (111):
      venc: fix default mode
      base: reorganize status check in output_loop()
      base: reorganize error checks in output_loop()
      log: fix log level 3 when DEBUG is on
      base: continue deinit on errors
      base: make sure stop message was sent
      base: detect algorithm errors
      base: don't print messages as errors
      base: reorganize error handling a bit
      base: exit dsp_thread more cleanly
      Allow more granularity in dspbridge API
      build: add DSP_API option
      Plug a few memleaks when node_create() fails
      bridge: trivial cleanups
      bridge: fix a small exceptional leak
      vdec: always clear params
      build: add option for socket-node API version
      Trivial cleanups
      dmm-buffer: we are using a proc handle, not node
      base: avoid yoda conditions
      base: improve send_buffer()
      venc: remove unnecessary buffer_clean()s
      dummy: invalidate before sending
      vdec: remove h264dec_in_stream_params
      Trivial cleanups
      base: check for errors in dsp_wait_for_events()
      base: avoid buffer duplication on corner-case
      Refactor some code into dmm_buffer_calloc()
      Refactor code into gstdsp_port_setup_params()
      Add new gstdsp_send_alg_ctrl()
      base: free alg_ctrl on exceptions
      Rework cache maintainance functions
      base: always invalidate out buffers afterwards
      Add DMA direction information
      Start using new DMA API
      dmm-buffer: remove _unmap()
      dmm-buffer: we know the page size
      dmm-buffer: let's not be too smart about unreserve
      dmm-buffer: put map and reserve together
      Manually call dmm_buffer_map()
      Add manual calls to dmm_buffer_unmap()
      dmm-buffer: remove clean/invalidate/flush
      build: general improvements
      venc: fix for MPEG-4 SN_API=1
      venc: add keyframe-interval property
      Move ARRAY_SIZE to util.h
      vdec: log actual SN used
      Trivial improvements
      venc: improve bitrate calculation
      vdec: propagate aspect-ratio
      Support multiple SN_API's
      venc: register conversions library for jpegenc
      venc: fix jpegenc params
      Remove unnecessary assigns
      build: add dist target
      bridge: fix bad ioctls
      bridge: update copyright
      log: generic improvements
      vdec: fix trivial warning
      build: check for deprecated gst stuff
      Fix depreated stuff from gst
      vdec: trivial cleanup
      Create ports in base class
      log: trivial whitespace cleanups
      Update copyright notices
      Update licence notices
      Add LICENSE file
      build: only link to needed libraries
      get-version: trivial improvements
      build: a bit more warnings
      parse: fix compilation warning
      base: don't loose buffers on EOS
      base: fix a non-atomic check for self->status
      base: use atomic 'deferred_eos' instead of 'eos'
      base: reorganize EOS handling
      base: remove redundant checks for use_eos_align
      base: clear deferred_eos when appropriate
      base: refactor code into pause_task()
      Remove 'use_eos_align'
      base: a few more compiler hints
      venc: extract codec-data for MPEG-4
      venc: simplify avr mode workaround
      venc: trivial cleanups
      hack: h264enc: manually force keyframes
      venc: add property for intra-refresh
      venc: fix check_supported_levels()
      venc: pick max bitrate at same level of mbps
      venc: limit max_bitrate to the true maximum
      venc: add check for invalid level
      venc: cap bitrate to max_bitrate
      venc: remove redundant max_bitrate check for H.264
      vdec: calculate real coded framesize
      vdec: add crop framesize
      vdec: update buffer len based on crop size
      base: update gst buffersize based on dmm_buffer len
      Rename dsp_{start,stop}
      dmm_buffer: whitespace cleanups
      bridge: whitespace cleanups
      bridge: trivial cleanups
      bridge: reorganize return code handling
      bridge: cleanup return codes
      bridge: remove typedefs
      Remove usage of typedefs
      bridge: truly remove typedefs
      dummy: use correct socket-node
      dummy: fix mapping sequence
      dummy: improve mapping
      Trivial cleanups
      dummy: add proper DSP event handling
      dummy: improve error handling
      Update README

Juha Alanen (7):
      vdec: update WMV create phase parameters
      base: use hexadecimal format when printing the error code
      vdec: register conversions library
      vdec: add send_cb for MPEG4 decoder
      vdec: add recv_cb for MPEG4 decoder
      vdec: enable {send,recv}_cb for H.263 decoder
      venc: fix supported levels for H.264

Karunesha Uh (2):
      vdec: add support for I420
      base: add virtual method flush_frames

Laxman Raju (1):
      venc: set right profile for JPEG enc

Marco Ballesio (1):
      hack: venc: avoid intra frame interval

Mark Nauwelaerts (16):
      base: appropriately flush queued events
      base: keyframe marking must be thread-safe
      base: additional checks for NULL buffers
      base: ensure codec data is sent to node and not silently dropped
      base: enhance eos aligned EOS sending
      venc: add support for I420 YUV format
      base: disable queues when pausing src task
      base: free comm buffers in dsp_stop
      base: do not consume buffer timestamp for a 0-length output buffer
      venc: adjust h264 encoder frametype check
      base: more state variable cleanup when stopping
      base: add reset() vmethod
      venc: implement reset() vmethod for state variable cleanup
      vdec: fix codec-data transformation
      venc: update jpegenc params to release L23.i3.4
      venc: no automagic changes to property values

Martin Storsjo (1):
      bridge: fix for DSP_API=0

Miguel Verdu (2):
      venc: add supported levels
      venc: H.264 CBR mode uses CIR

Olivier Crête (1):
      venc: add max-bitrate property

Raju Laxman (1):
      venc: update jpeg encoder API

Tommi Myöhänen (1):
      base: check EOS before reallocating out buffer

Víctor Manuel Jáquez Leal (23):
      bridge: add dsp_node_connect()
      bridge: add dsp_stream_open()
      bridge: add dsp_stream_close()
      bridge: add dsp_stream_allocate_buffers()
      bridge: add dsp_stream_idle()
      bridge: add dsp_stream_get_info()
      bridge: add dsp_stream_reclaim()
      bridge: add dsp_stream_free_buffers()
      bridge: add dsp_stream_issue()
      dsp-bridge: check for attr before deferring
      base: add du_port_alloc_buffers()
      base: delay the comm port allocation
      Delay allocation of port buffers
      jpegdec: initial implementation
      bridge: dsp_uuid_t normally is const
      vdec: add and use configure_caps()
      vdec: i420 support for jpgdec
      vdec: check for structures in caps
      vdec: allowed_caps makes more sense
      vdec: trivial cleanup
      bridge: add dsp_stop()
      bridge: add dsp_load()
      bridge: add dsp_start()