[Announce] Release of the DCCP Plugin 0.2 for GStreamer

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

 



Hello list!

I'm pleased to announce the second version (v0.2) 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. It was published as RFC 4340  by IETF in March,
2006. Linux had an implementation of DCCP since 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/gstreamer//lib/gstreamer-0.10/libgstdccp.so
  Version:              0.10.0.1
  License:              LGPL
  Source module:        gst-plugin
  Binary package:       DCCP
  Origin URL:           http://garage.maemo.org/projects/ephone

  dccpserversrc: DCCP server source
  dccpclientsink: DCCP client sink
  dccpserversink: DCCP server sink
  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
- Support for IPv6 (requested by Gerrit Renker)

CHANGELOG
==========

* Remove unnecessary GDP code.
* New installation package based on gstreamer requirements
* Update applications example and usage for use mp3parse to guarantee
that the mp3 will be sent as a stream (thanks feedback from Gerrit
Renker)
* Tests with mpg123 modified version to support DCCP (from Gerrit Renker)
* New usage example to stream mp3, please refer to README file in the
src/examples_app directory
* Coding style fixes
* Fix dccp sink and src descriptions to correct show in the
gst-inspect (thanks feedback from Gerrit Renker)
* Remove commented functions from gstdccp.h
* Remove other names in copyright notices
* Remove FIXME without additional info
* Add missing break at server src set propery function
* Remove finalize function from server sink
* Add missing break at clients src set property function
* Add missing break at client sink set property function
* Remove client sink finalize function (did nothing)

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/3466/gst-dccp-0.2.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 ! mp3parse ! dccpserversink
port=9011 ccid=2

* Client:
gst-launch -v dccpclientsrc host=localhost port=9011 ! decodebin ! alsasink

-- We also tested with mpg123, to use it: mpg123 dccp://localhost:9011

Please, refer to the src/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 version, Felipe
Coutinho, Thiago Santos and Gerrit Renker. 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)

http://www.leandrosales.com/

[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