Hello list! I'm pleased to announce the first version of the DCCP GStreamer Plugin. Please, let me know if you have any problem on running the plugin, suggestions and improvements that you provided for the plugin. What is GStreamer? =============== GStreamer [1] is a library that allows the construction of graphs of media-handling components, ranging from simple Ogg/Vorbis playback to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface. GStreamer is released under the LGPL. What is DCCP? ============ The Datagram Congestion Control Protocol (DCCP) [2] is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams. DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability. It is a message-oriented transport layer protocol that implements reliable connection setup, teardown, ECN, congestion control, and feature negotiation. DCCP was published as RFC 4340, a proposed standard, by the IETF in March, 2006. Linux had an implementation of DCCP first released in Linux kernel version 2.6.14 and this continues to improve with each release. The latest official version of the DCCP code can be found at [3] and at [4]. What is DCCP Plugin for GStreamer? =========================== It is a plugin that allows transfer data over the network via DCCP for GStreamer. According to all the tests that we proceeded, the plugin is able to stream audio files, such as mp3, audio captured from the microphone and raw data files. Output of gst-inspect for the dccp plugin ============================= # gst-inspect dccp Plugin Details: Name: dccp Description: transfer data over the network via DCCP. Filename: /usr/lib/gstreamer-0.10/libgstdccp.so Version: 0.10.14 License: LGPL Source module: gst-plugins-base Binary package: GStreamer Base Plug-ins source release Origin URL: Unknown package origin dccpserversrc: DCCP server source dccpclientsink: DCCP client source dccpserversink: DCCP server source dccpclientsrc: DCCP client source 4 features: +-- 4 elements TODO List ======== - Make DCCP plugin works with Speex and RTP to transport audio captured from microphone using ALSA GStreamer Plugin - Improve the implementation of the send mechanism adding the Paraslash solution based on queue - Make internal elements share the socket fd between two elements - Implement multidccp, a multithread way to stream media for a set of hosts - Create a proper autogen.sh, Makefiles, etc. for the plugin. The current version was based on the gst-plugin-base setup files. How to contribute? ============== Please, contact me at leandroal [at] gmail [dot] com Where is DCCP Plugin? ================= The DCCP plugin for GStreamer is under version control of the E-Phone. The E-Phone (Embedded-Phone) project aims to develop a VoIP client for Maemo platform based on DCCP transport protocol. In this project we are also implementing the CCID-4 [5] IETF drafts on the linux kernel. Development: http://garage.maemo.org/projects/ephone Mailing list: http://garage.maemo.org/pipermail/ephone-discuss/ Download: https://garage.maemo.org/frs/?group_id=297 or directly from https://garage.maemo.org/frs/download.php/2877/gst-dccp.tar.bz2 How to use it with gst-launch command line? ================================= A basic example to stream a multimedia file using ccid-3: * Server: gst-launch -v filesrc location=music.mp3 ! mad ! dccpserversink port=9011 ccid=2 * Client: gst-launch -v dccpclientsrc host=<IP_ADDRESS> port=9011 ccid=3 caps="audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2" ! alsasink Please, refer to the examples_app/README file for more examples. Is there any application examples? ========================= Yes, refer to the examples_app directory of the source file. Requirements ========== - Linux Kernel with DCCP enabled - GStreamer - Additional GStreamer Plugins to make the example app works Finally, thank you for all the people envolved in this first version, Felipe Coutinho and Thiago Santos. Thanks also to Arnaldo Carvalho de Melo, Gerrit Renker and Ian McDonald to provide to me many ideas and discussions regarding to DCCP. Best regards, Leandro. References: [1] http://gstreamer.freedesktop.org/ [2] http://www.read.cs.ucla.edu/dccp/ [3] git://git.kernel.org/pub/scm/linux/kernel/git/acme/net-2.6.25.git [4] git://eden-feed.erg.abdn.ac.uk/dccp_exp [5] http://tools.ietf.org/html/draft-ietf-dccp-ccid4-01 -- Leandro Melo de Sales. Pervasive and Embedded Computing Laboratory BRisa and E-Phone Projects Manager Network Admin @ http://embedded.ufcg.edu.br/indexen.html +55 83 3310-1404 (extension 208)