[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