[Announce] Release of the first version of DCCP Plugin for GStreamer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)


[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux