[gst-devel] addition of a buffer flag
in7y118 at public.uni-hamburg.de
Fri May 14 06:51:05 CEST 2004
Quoting Thomas Vander Stichele <thomas at apestaart.org>:
> OTOH, Ogg does not care
> about the data you are wrapping in it, so the streamer should be able to
> get all hints it needs through GStreamer, without being ogg-specific.
There is the one thing where you are irritated. Ogg itself doesn't care very
much, but the data contained in ogg does. Raw vorbis (or theora) very much
cares about setup data being resent. Just like all the other _containers_.
The difference between ogg and every other container is that header data for
ogg codec is part of the codec while for every other container it's part of the
container. So you obviously need knowledge about the codecs only if you use
ogg. Blame the container designers.
> The point I'm making is that whatever mechanism is chosen, it should be
> a core mechanism, since a) the project is called GStreamer so we want it
> to stream and b) this is a necessity for all formats except MPEG.
> The reason it wasn't seen as a necessity before is because no one ever
> did multiclient live streaming with something beside MPEG from GStreamer
> (that's a mouthful).
What you want is a magic solution that just takes ANY caps and magically
streams them with everything already somehow setup by some magic flags. You
won't get that I'm afraid. What you can already get quite easily though is a
way to use a general purpose streamer element that gets a custom mime type (say
application/x-fluendo-server) and loads of elements per format that transform
application/ogg or video/quicktime to application/x-fluendo-server. All of that
would work right now without changing anything in the current GStreamer core or
PS: I'm still not sure if it wouldn't be nicer to have elements similar to tee
that do the splitting. That way your server pipeline would look like this:
source - splitter - connection2
Whenever you get a new connection you setup a new connection element and
connect it to the splitter who would then know how to setup the current format
correctly for streaming. This would of course not work in gst-launch but would
be able to construct headers on demand which might be useful if you need to
send different headers to different clients.
More information about the gstreamer-devel