[gst-devel] Re: [gst-cvs] wingo gstreamer: gstreamer/gst/elements/
in7y118 at public.uni-hamburg.de
in7y118 at public.uni-hamburg.de
Thu Oct 2 05:53:05 CEST 2003
_An_element_should_never_rely_on_stuff_not_belonging_to_it_.
I'm going to repeat that:
_An_element_should_never_rely_on_stuff_not_belonging_to_it_.
That means: You do not query anything anyhow into the pipeline and rely on it.
Never ever.
Case in point:
v4lsrc ! encoder ! asfmux ! identity ! filesink
Iterate once.
replace filesink with httpsink
go on iterating
Prefectly legal and not spottable by asfmux. GStreamer is based on the very
concept that the pipeline can be altered any way imaginable.
Oh and before you try to invent ways to make the above example possible:
{v4lsrc ! encoder ! asfmux ! queue } ! identity ! tee ! { queue ! filesink } {
tee0. ! queue ! httpsink } { tee0. ! queue ! udpsink } { tee0. ! queue !
my_very_funky_not_yet_invented_sink_with_special_features }
Streaming or local mode?
Really, that is a case for a property. Properties are very GStreamer'ish for
the purpose they are used: Specifying different behaviour of an element that
can and/or should not be inside the pipeline and are interesting to the
application. Like the bitrate of an encoder, wether to use id3v1 or id3v2,
audio output device, stuff like that. They definitely do not suck.
Benjamin
PS: I can't stress this enough. It is really important for the concept of
GStreamer: The whole pipeline might be different half an iteration from now,
never rely on anything outside the element.
That's the beauty and the strength of GStreamer in fact.
And it's a heavy burden.
Stuff like queries and so on are application level possibilities to get rough
estimates about what is happening inside the pipeline. No element should ever
rely on that though.
Quoting Ronald Bultje <rbultje at ronald.bitfreak.net>:
> Hi Benjamin,
>
> On Wed, 2003-10-01 at 16:21, in7y118 at public.uni-hamburg.de wrote:
> > That sounds an awful lot like you want a property for that. Especially
> because
> > you might want to save streamable ASFs to disk or write seekable ASFs to
> http.
>
> You can't write seekable ASFs to HTTP directly. You need to store it to
> disk first, and then stream the result over HTTP.
>
> v4lsrc ! encoder ! asfmux ! filesink
> filesrc ! httpsink
>
> Either way, a property is nice, but it's not gstreamer'ish. Properties
> suck. Event masks are meant for exactly this!
>
> Ronald
>
> --
> Ronald Bultje <rbultje at ronald.bitfreak.net>
> Linux Video/Multimedia developer
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
More information about the gstreamer-devel
mailing list