[gst-devel] Meta-plugins: a proposal

Thomas Nyberg thomas at codefactory.se
Sun Mar 18 17:03:26 CET 2001


On Sun, Mar 18, 2001 at 02:44:16PM +0000, Richard Boulton wrote:
> On Sun, Mar 18, 2001 at 02:52:17PM +0100, Thomas Nyberg wrote:
> > However, is there a "standard" proposed for naming of the different classes?
> > Or is it (still) open for discussion?
> 
> I'm sure it will always be open for discussion...
> But for now, there is no standard proposed.  I need to put something in the
> PWG about this: if people want to propose a system, by email, today, that
> would be great.  I'll then put _something_ into the PWG, and if people
> don't like it, we can change it.
> 
Then I propose the following:
The class of a plugin should consist of two parts(atleast) with them being
"firstpart/secondpart"

The firstpart should consist of the "media", and the second of the type.
Thus forming:
"Audio/Sink"
"Audio/Source"
"Audio/Filter" and so on...

The primary types of media that I can see are "Audio", "Video" and "AV"
being both Audio and Video(should be possible to come up with a better name).
the different forms of types, should atleast consist of "Sink", "Source",
"Filter", "Parser" and "Stream".

"Stream" is the only one needed explanation, this is plugins that don't work
on the data itself, but rather on the streams. This would include gsttee, and
other that really doesn't manipulate the data itself. This would ease the
app-developers job a bit, making it possible to put the filters in one menu
and separating them from gsttee which most likely will be used internally
anyway. 

It might be useful to add a third part, but what that would consist of is
unknown.


I also believe that we should create:
/* gstclasstypes.h */
#ifndef __GST_CLASS_TYPES_H__
#define __GST_CLASS_TYPES_H__

#define GST_CLASS_VIDEO "Video"
#define GST_CLASS_AUDIO "Audio"
#define GST_CLASS_AV "AV" /* both Audio and Video */

#define GST_CLASS_SINK "Sink"
#define GST_CLASS_SOURCE "Source"
#define GST_CLASS_FILTER "Filter"
#define GST_CLASS_STREAM "Stream"
#define GST_CLASS_PARSER "Parser"

#define GST_CLASS(first,second) (first "/" second)

/* and so on... */

/*
usage:
details->klass = GST_CLASS(GST_CLASS_AUDIO, GST_CLASS_SINK);

would set the class to "Audio/Sink"
*/
#endif

This would make our lives easier if we choose to change the names, or add a
third part and so on... Also, it would make it easier to spot
spelling-errors for app-developers. _and_ it would serve as a central
repository for the availible types. No more confusion.


/Thomas

-- 
Thomas Nyberg                    thomas.nyberg at codefactory.se
CodeFactory AB                   http://www.codefactory.se/
Office: +46 (0)90 71 86 10       Cell: +46 (0)70 335 61 64





More information about the gstreamer-devel mailing list