[Celinux-dev] AudioVideoGraphicsSepc_V2

Ruud Derwig ruud.derwig at philips.com
Tue Aug 15 00:51:22 PDT 2006


Hi Shaun,

Shaun Savage wrote on 14-08-2006 23:31:45:

> The open source implementation of UHAPI is almost a year old with no
> updates.  Gstreamer is being actively worked upon.   If I was a open
> source developer (Which I am) why would I pick a unmaintained, 
> unused library when I could use a actively developed library, with 
> active mailing list? 

Fair question, let me try and explain some things.

Goal of the AVG Specification is to reduce fragmentation and provide 
direction on interfaces (APIs), not implementation. Given the enormous 
diversity in CE hardware platforms, sharing (optimized) implementations is 
difficult. Probably at most 'infrastructure' components like the GStreamer 
framework are worthwhile to have a "common" open source implementation 
for. But also for GStreamer several alternatives exist, some better suited 
e.g. for an implementation in software on a powerfull CPU, some better 
suited for (controlling) an implementation in hardware.

When defining V2 of the specification, we did consider GStreamer. It is a 
great implementation framework for media processing, but it does not 
define standard interfaces for specific AVG functions. There are some 
'standard' GStreamer components (plug-ins), but certainly the breadth of 
functionality needed for developing e.g. a hybrid analog/digital TV is not 
covered.

The AVG V2 specification and GStreamer serve different purposes, and are 
complementory. GStreamer is referenced in the specification in section 
4.2, part of work in progress (for your convenience copied below).

The UHAPI4Linux project has chosen to build on other open source projects 
for implementing the interfaces. It uses e.g. V4L and Linux DVB. It could 
have chosen to build on top of GStreamer, but it didn't.
As you have seen, the UHAPI4Linux project has not been very active. I 
could think of many reasons for that, one being that UHAPI4Linux is not 
the only way of implementing the AVG specification. A number of companies 
have/are developing own implementations optimized for their specific 
hardware platforms. The UHAPI4Linux project has served as a basis for 
getting started with own implementations.
Though not active, the UHAPI4Linux project is being maintained (did you 
try sending e-mail to the mailing list?).
And at the moment, Denis O. Kropp is working on implementing the 
combination of UHAPI VMixer and DirectFB as described in the AVG spec, so 
you can expect some updates coming month.

Now, coming back to your question, it's not an 'UHAPI4Linux vs. GStreamer' 
choice you have. GStreamer helps you in implementing media processig. 
UHAPI4Linux helps you in 'glueing' a standard API on top of your 
implementation.


Regards,

Ruud - AVGWG chair
-----
4.2     Media Processing Frameworks 
There are several interesting developments in the domain of media 
processing frameworks. The Khronos group is finishing the OpenMax 
specification, and the open source Gstreamer solution is being used in a 
number of CE devices or being investigated. A next version of the AVG 
specification will include a specification for media processing framework. 
For now, we only mention a number of considerations.
Media Processing Frameworks can be used to implement audio and video 
system functionality by creating graphs of audio/video processing 
components, codecs, sources and sinks. A media processing framework 
facilitates connecting components and takes care of communicating and 
buffering of data between components. The main function of media 
processing frameworks is this streaming functionality, also called 
‘sidebar connections’. Codecs, source, sink and filter components have 
also functional control interfaces, e.g. to set the volume level or 
brightness. Since the CELF AVG specification recommends specific 
interfaces for this functional control in the previous sections, a media 
processing framework should match with these interfaces. A framework 
should not define control interfaces itself, or it should define 
lower-level interfaces on top of which the CELF interfaces can be 
realized.
--- 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://tree.celinuxforum.org/pipermail/celinux-dev/attachments/20060815/8a7eb06c/attachment.html


More information about the Celinux-dev mailing list