Re: New project announcement: gst-dsp, with beagleboard demo image

2009-10-13 Thread Gregoire Gentil
It definitely seems to be a very nice effort that will be very useful to
many projects. I will integrate on the Touch Book. Thanks,

Grégoire

On Tue, 2009-10-13 at 00:31 +0300, Felipe Contreras wrote:
 Hi,
 
 This is the first public release of gst-dsp; a native GStreamer plug-in to
 access Texas Instruments' DSP algorithms for OMAP3 platforms.
 
 The code came originally from a series of TI projects: tiopenmax[1], and
 libbridge[2]. gst-dsp replaces these two layers and talks directly to the DSP
 bridge driver.
 
 The main advantages are code simplification (5k vs 50k), and better 
 performance
 (at least 4 times less CPU usage). However, not all of the codecs have been
 implemented, only MPEG-4 and H.263 video encoders and decoders, the JPEG
 encoder, and H.264 is partially supported.
 
 Currently it's used in the Nokia N900.
 
 In order to make it easier for people to try it out, I created a demo image 
 for
 the beagleboard with all the required components: GStreamer, gst-dsp, DSP
 public binaries, and a kernel with DSS2 and DSP bridge driver.
 
 The linux kernel (DSS2 + dspbridge) is at the v2.6.32-felipec1 tag in:
 http://gitorious.org/~felipec/linux-omap/felipec
 
 The DSP algorithms are public, and come from tiopenmax:
 https://gforge.ti.com/gf/download/frsrelease/170/1399/tiopenmax-0.3.5.tar.gz
 
 Here's the demo rootfs with the kernel image and instructions:
 http://people.freedesktop.org/~felipec/beagle-2.6.32-rc3/
 
 And here's the video showing it on action for both playback and recording:
 http://www.youtube.com/watch?v=SN-Nw_yDQUs
 
 The main repository is hosted on github:
 http://github.com/felipec/gst-dsp
 
 And there's also one specific for maemo:
 http://maemo.gitorious.org/maemo-multimedia/gst-dsp
 
 This code wouldn't have been possible without all the contributions and
 specially thanks to TI for making their code open source.
 
 Here's the shortlog for 0.6.0:
 
 Andriy Shevchenko (1):
   base: fix a crash on send codec data
 
 Felipe Contreras (180):
   Initial commit
   Register dsp node
   Add README
   Fix and update copyrights
   Add ALLOCATE_HEAP and ALLOCATE_SN to dsp_bridge
   Add handy dsp_send_message
   dummy: use dsp_send_message
   Rename gstdsp.* to plugin.*
   Makefile: cleanup
   dummy: trivial clanups
   Add log utility
   Use log utility
   dmm_buffer: size_t improvements
   dmm_buffer: always unmap when freeing
   dmm_buffer: use getpagesize()
   dmm_buffer: alignment improvements
   dmm_buffer: add user_data field
   Add MPEG-4 video decoder
   README: update
   mp4vdec: trivial cleanup
   mp4vdec: send signal to output_loop
   mp4vdec: flush output buffers too
   mp4vdec: reset output port
   mp4vdec: extra check for null buffer
   mp4vdec: use atomic operations for status
   mp4vdec: use more atomic operations for status
   mp4vdec: send stop signal before
   mp4vdec: re-use comm buffers
   dmm_buffer: reorganize a bit
   dmm_buffer: add dmm_buffer_reserve
   dmm_buffer: allow to re-reserve memory
   dmm_buffer: allow re-mapping
   mp4vdec: trivial cleanup
   dmm_buffer: unmap before unreserving
   mp4vdec: re-use mappings for output buffers
   mp4vdec: convert flush condition to semaphore
   Remove cond.h
   Rename mp4vdec to vdec
   vdec: trivial cleanup
   vdec: trivial reorganization
   vdec: prepare for multiple algos
   vdec: move create_node to dsp_start
   vdec: start dsp node after getting the caps
   vdec: initial support for H.264
   vdec: add Juha to authors list
   README: update
   vdec: cleanup
   vdec: make dsp_thread static
   vdec: reorganize a bit
   New base class
   Add new video encoder
   base: handle more commands
   base: reorganize got_message a bit
   venc: improve jpeg args
   venc: send jpeg dynamic params
   base: cleanup setup_output_buffers
   base: remove unused buffer_count
   base: reorganize a bit
   base: add use_pad_alloc option
   base: free mapped buffers on dsp_stop()
   base: be more verbose on get_slot()
   README: update
   Makefile: check for missing symbols
   New utility gstdsp_register()
   base: detect dsp errors
   base: properly handle dsp errors
   base: post error in the bus
   base: extra check for status in outout_loop()
   base: free events array
   base: reinitialize state on NULL-READY
   base: use circular buffer for timestamps
   base: increase ts_array
   base: increase mapping cache
   dummy: reorganize map_buffer
   dummy: input buffers don't need alignment
   dummy: cleanup
   dummy: don't map buffers
   venc: increase framesize limit for jpeg
   base: add gstdsp_post_error()
   venc: allocate a buffer when framesize is unaligned
   base: decrease wait for events timeout
 

Re: New project announcement: gst-dsp, with beagleboard demo image

2009-10-13 Thread Felipe Contreras
On Tue, Oct 13, 2009 at 12:31 AM, Felipe Contreras
felipe.contre...@gmail.com wrote:
 Hi,

 This is the first public release of gst-dsp; a native GStreamer plug-in to
 access Texas Instruments' DSP algorithms for OMAP3 platforms.

 The code came originally from a series of TI projects: tiopenmax[1], and
 libbridge[2]. gst-dsp replaces these two layers and talks directly to the DSP
 bridge driver.

 The main advantages are code simplification (5k vs 50k), and better 
 performance
 (at least 4 times less CPU usage). However, not all of the codecs have been
 implemented, only MPEG-4 and H.263 video encoders and decoders, the JPEG
 encoder, and H.264 is partially supported.

 Currently it's used in the Nokia N900.

 In order to make it easier for people to try it out, I created a demo image 
 for
 the beagleboard with all the required components: GStreamer, gst-dsp, DSP
 public binaries, and a kernel with DSS2 and DSP bridge driver.

 The linux kernel (DSS2 + dspbridge) is at the v2.6.32-felipec1 tag in:
 http://gitorious.org/~felipec/linux-omap/felipec

 The DSP algorithms are public, and come from tiopenmax:
 https://gforge.ti.com/gf/download/frsrelease/170/1399/tiopenmax-0.3.5.tar.gz

 Here's the demo rootfs with the kernel image and instructions:
 http://people.freedesktop.org/~felipec/beagle-2.6.32-rc3/

 And here's the video showing it on action for both playback and recording:
 http://www.youtube.com/watch?v=SN-Nw_yDQUs

I removed the video because of a bug in YouTube and uploaded it again:
http://www.youtube.com/watch?v=CjxkNIHBGdI

Cheers.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


New project announcement: gst-dsp, with beagleboard demo image

2009-10-12 Thread Felipe Contreras
Hi,

This is the first public release of gst-dsp; a native GStreamer plug-in to
access Texas Instruments' DSP algorithms for OMAP3 platforms.

The code came originally from a series of TI projects: tiopenmax[1], and
libbridge[2]. gst-dsp replaces these two layers and talks directly to the DSP
bridge driver.

The main advantages are code simplification (5k vs 50k), and better performance
(at least 4 times less CPU usage). However, not all of the codecs have been
implemented, only MPEG-4 and H.263 video encoders and decoders, the JPEG
encoder, and H.264 is partially supported.

Currently it's used in the Nokia N900.

In order to make it easier for people to try it out, I created a demo image for
the beagleboard with all the required components: GStreamer, gst-dsp, DSP
public binaries, and a kernel with DSS2 and DSP bridge driver.

The linux kernel (DSS2 + dspbridge) is at the v2.6.32-felipec1 tag in:
http://gitorious.org/~felipec/linux-omap/felipec

The DSP algorithms are public, and come from tiopenmax:
https://gforge.ti.com/gf/download/frsrelease/170/1399/tiopenmax-0.3.5.tar.gz

Here's the demo rootfs with the kernel image and instructions:
http://people.freedesktop.org/~felipec/beagle-2.6.32-rc3/

And here's the video showing it on action for both playback and recording:
http://www.youtube.com/watch?v=SN-Nw_yDQUs

The main repository is hosted on github:
http://github.com/felipec/gst-dsp

And there's also one specific for maemo:
http://maemo.gitorious.org/maemo-multimedia/gst-dsp

This code wouldn't have been possible without all the contributions and
specially thanks to TI for making their code open source.

Here's the shortlog for 0.6.0:

Andriy Shevchenko (1):
  base: fix a crash on send codec data

Felipe Contreras (180):
  Initial commit
  Register dsp node
  Add README
  Fix and update copyrights
  Add ALLOCATE_HEAP and ALLOCATE_SN to dsp_bridge
  Add handy dsp_send_message
  dummy: use dsp_send_message
  Rename gstdsp.* to plugin.*
  Makefile: cleanup
  dummy: trivial clanups
  Add log utility
  Use log utility
  dmm_buffer: size_t improvements
  dmm_buffer: always unmap when freeing
  dmm_buffer: use getpagesize()
  dmm_buffer: alignment improvements
  dmm_buffer: add user_data field
  Add MPEG-4 video decoder
  README: update
  mp4vdec: trivial cleanup
  mp4vdec: send signal to output_loop
  mp4vdec: flush output buffers too
  mp4vdec: reset output port
  mp4vdec: extra check for null buffer
  mp4vdec: use atomic operations for status
  mp4vdec: use more atomic operations for status
  mp4vdec: send stop signal before
  mp4vdec: re-use comm buffers
  dmm_buffer: reorganize a bit
  dmm_buffer: add dmm_buffer_reserve
  dmm_buffer: allow to re-reserve memory
  dmm_buffer: allow re-mapping
  mp4vdec: trivial cleanup
  dmm_buffer: unmap before unreserving
  mp4vdec: re-use mappings for output buffers
  mp4vdec: convert flush condition to semaphore
  Remove cond.h
  Rename mp4vdec to vdec
  vdec: trivial cleanup
  vdec: trivial reorganization
  vdec: prepare for multiple algos
  vdec: move create_node to dsp_start
  vdec: start dsp node after getting the caps
  vdec: initial support for H.264
  vdec: add Juha to authors list
  README: update
  vdec: cleanup
  vdec: make dsp_thread static
  vdec: reorganize a bit
  New base class
  Add new video encoder
  base: handle more commands
  base: reorganize got_message a bit
  venc: improve jpeg args
  venc: send jpeg dynamic params
  base: cleanup setup_output_buffers
  base: remove unused buffer_count
  base: reorganize a bit
  base: add use_pad_alloc option
  base: free mapped buffers on dsp_stop()
  base: be more verbose on get_slot()
  README: update
  Makefile: check for missing symbols
  New utility gstdsp_register()
  base: detect dsp errors
  base: properly handle dsp errors
  base: post error in the bus
  base: extra check for status in outout_loop()
  base: free events array
  base: reinitialize state on NULL-READY
  base: use circular buffer for timestamps
  base: increase ts_array
  base: increase mapping cache
  dummy: reorganize map_buffer
  dummy: input buffers don't need alignment
  dummy: cleanup
  dummy: don't map buffers
  venc: increase framesize limit for jpeg
  base: add gstdsp_post_error()
  venc: allocate a buffer when framesize is unaligned
  base: decrease wait for events timeout
  base: more error messages
  base: re-initialize on READY-PAUSED
  base: don't panic on wrong status
  base: destroy node at the right time
  base: catch playback completed message
  base: possible memleak fixes
  vdec: send codec data for MPEG-4
  base: make map cache optional
  plugin: set more