[gst-devel] some queue advice

Thomas Vander Stichele thomas at apestaart.org
Mon Sep 29 17:44:17 CEST 2003


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/






More information about the gstreamer-devel mailing list