[gst-devel] some queue advice
Thomas Vander Stichele
thomas at apestaart.org
Wed Oct 1 06:11:07 CEST 2003
Hey Benjamin,
thanks for the reply.
> I think the pipeline doesn't need to be paused when you use the opt scheduler.
> AFAIK gst-player doesn't pause when adding/removing the visualization part. Ask
> Julien to be sure plz.
Ugh. What can I say ? In my mind all schedulers should act in exactly
the same way (theoretically; of course the current set of bugs in all of
them breaks this :)). Ie, an app shouldn't depend on the property of
one scheduler that it somehow manages to change pipelines without having
to be paused. If gst-player relies on this, I think that's broken.
> As for how I'd construct the pipeline:
> +thread/bin--------+
> | input1 -- |
> | \ | +thread--------------+
> | input2 -- adder -+-+- queue --- osssink |
> | / | +--------------------+
> | input3 -- |
> +------------------+
> And then pause the left part when adding to/removing from it.
In this example, the queue needs to be very small in order to make the
app respond quickly enough.
I suppose both the input thread/bin and output thread need to go in a
pipeline, right ? or can two threads function without either of them
being inside another pipeline ?
If a bin is inside a pipeline, can the bin be paused without having to
pause the whole pipeline ?
(I'm asking these questions on two levels; whether or not they "should"
and whether or not they "currently do", since these don't always match
and I'd like for us to move to a point where we all can trust these two
to line up properly :))
Thanks
Thomas
> Benjamin
>
>
> Quoting Thomas Vander Stichele <thomas at apestaart.org>:
>
> > Hey guys,
> >
> > I need a bit of queueing advice.
> >
> > I'm writing a python-based radio application that needs to be able to
> > play more than one stream at once to the same sound card.
> >
> > I have abstracted some python classes for this, and I need to fix only
> > one more problem.
> >
> > Basically, I need to gaplessly add and remove input decoding bins.
> >
> > The pipelines used consist of:
> > - one or more decoding bins (gnomevfssrc ! vorbisfile ! volume !)
> > - an adder mixer
> > - an osssink
> >
> > In the first iteration, all of this went into a thread, and this worked
> > nicely, except for one problem. To remove or add input decoding bings
> > to adder, the pipeline needs to be paused, then the bin gets added and
> > connected to mixer, then the pipeline is set to play again. This causes
> > drops in the audio feed, of course.
> >
> > So I tried to fix this by putting in one more thread with a queue. I
> > got various results, ranging from dropping of audio to just plainly
> > locking my machine tight.
> >
> > So, my question is; if I want gapless addition/removal of input streams,
> > what should I be wrapping in a thread and how so I get continuous
> > playback ?
> >
> > >From that answer, I can try and look what goes wrong in that case and
> > see if I can fix it.
> >
> > Thomas
> >
> >
> > Dave/Dina : future TV today ! - http://davedina.apestaart.org/
> > <-*- thomas (dot) apestaart (dot) org -*->
> > Faded I'm sure
> > but love seems to stick in the veins you know
> > <-*- thomas (at) apestaart (dot) org -*->
> > URGent, best radio on the net - 24/7 ! - http://urgent.rug.ac.be/
> >
> >
> >
> >
> > -------------------------------------------------------
> > 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
> >
>
>
>
>
> -------------------------------------------------------
> 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
Dave/Dina : future TV today ! - http://davedina.apestaart.org/
<-*- thomas (dot) apestaart (dot) org -*->
resistance is low when I'm feeling bored
what I thought was fun isn't fun anymore
<-*- thomas (at) apestaart (dot) org -*->
URGent, best radio on the net - 24/7 ! - http://urgent.rug.ac.be/
More information about the gstreamer-devel
mailing list