Re: New project announcement: gst-dsp, with beagleboard demo image
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
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
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