gst-rtsp-server and ALSA/OSS help

Chad LS chado2010 at
Sat May 14 12:37:59 PDT 2011

Hello all,

I've spent a long time figuring out Gstreamer and searching the Internet for
answers. This mailing list has been very helpful, but doesn't have the
answer I'm looking for...

Some background: I'm using gst-rtsp-server to create a way to listen to a
network of computers remotely. They're using Mandriva 2008.0. They cannot be
upgraded to any newer version, and must all be kept identical. I'm not 100%
sure on the hardware of the machines, but they are decent machines. Anyway,
on the test machine I have, which is similar to the network machines, I have
successfully compiled the following packages:

My sound card is a SoundBlaster Live! EMU10k1, which appears to be fully
supported by this version of ALSA and OSS. I have successfully compiled,
run, and connected to the server, which is essentially a modified version of
the test-ogg.c server using my own pipeline with Vorbis. Gstreamer grabs the
audio in from the sound card and then makes it so that it can be heard via
the network (or Internet). Here is the pipeline:
alsasrc ! audio/x-raw-int, endianness=1234, signed=true, width=16,
rate=44100, channels=2 ! audioconvert ! vorbisenc quality=0.6 ! queue !
rtpvorbispay name=pay0 pt=127

The problem lies in the fact that I can only have one person connect at a
time before the server throws the following error:
** (mand-test:4510): WARNING **: failed to link stream 0
** (mand-test:4510): WARNING **: 0x8124090: got error Could not open audio
device for recording. Device is being used by another application.
(gstalsasrc.c(630): gst_alsasrc_open ():
Device 'default' is busy)
** (mand-test:4510): WARNING **: failed to preroll pipeline

I get the same error if I switch to (T)OSS (as Mandriva will let me change
back). I noticed that there is no "failed to link stream 0" this way,
** (mand-test:5343): WARNING **: 0x81224a0: got error Could not open audio
devie for recording. (gstosssrc.c(383): gst_oss_src_open ():
Unable to open device /dev/dsp for recording: Device or resource busy)
** (mand-test:5343): WARNING **: failed to preroll pipeline

I have set in the program gst_rtsp_media_factory_set_shared (factory, TRUE);
It hasn't bought me much. The odd part of this is that I can have 2 or 3
clients connect from *within* my network without a problem. If I have people
connect from *outside* my network, it only allows one person to connect at a
time. I don't believe it is a firewall issue, as I have tried two different
routers and I have opened up the necessary ports. Another odd note is that
if I have all the local clients disconnect and then have an "outside" client
connect, I get this error:
** (mand-test:4510): WARNING **: failed to link stream 0
** (mand-test:4510): WARNING **: 0x8124090: got error Could not get/set
settings from/on resource. (gstmultiudpsink.c(652):
gst_multiudpsink_init_send ():
Could not set broadcast socket option (9): Bad file descriptor)
** (mand-test:4510): WARNING **: failed to preroll pipeline

I have had the same code run perfectly on a Kubuntu 10.10 machine with
PulseAudio and with the latest version of Gstreamer.

Currently, ARTS is enabled, but it makes no difference if it is disabled or
enabled (I know that it can be a source of problems). ALSA is version
1.0.14. It also makes no difference if I assign a device after alsasrc, as
it still returns the same error.

I can provide any other information anyone may need. I hope that someone can
help, despite the fact that this is dated. I've tried just about anything
and nothing changes the outcome.

I appreciate the help and feedback on this!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list