[gst-devel] udp transfer/play wav file problem

sam wang samwzm at yahoo.com
Wed May 24 02:49:12 CEST 2006


Hi, there,

I am a newbie about Gstreamer. in the long run, I want to transfer sound file in the real time
cross network. at the beginning, I want to have a test that transfers a wav file from server to
client and then paly it on the client. I tried TCP first but out of lucky. in fact, I really want
to use UDP or RTP instead TCP. since RTP is under development now, I guess I should use UDP. 

now I really try to get two simple working commands to test UDP. first I follows the sample from
the UDP API. I running the following commands in the same machine from two terminals(client
terminal is used to receive data from server, server terminal is used to send data to client. my
gstreamer is 0.10):
 
client terminal: gst-launch -v udpsrc ! fakesink dump=1
server terminal: gst-launch -v audiotestsrc ! udpsink

there is no problem, but I want to play the sound on the client machine instead of dumping it. so
I modify the client command to alsasink as following:

client terminal: gst-launch-0.10 -v udpsrc ! alsasink
server terminal: gst-launch-0.10 -v audiotestsrc ! udpsink

****************************************************************************************

then the server terminal shows as following(same as fakesink dump=1) and hung there:

Setting pipeline to PAUSED ...
/pipeline0/audiotestsrc0.src: caps = audio/x-raw-int, endianness=(int)4321, signed=(boolean)true,
width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)1Pipeline is PREROLLING ...
/pipeline0/udpsink0.sink: caps = audio/x-raw-int, endianness=(int)4321, signed=(boolean)true,
width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock


while the client terminal shows as following and NO SOUND at all and then quit:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /pipeline0/alsasink0: No standard error message for domain
gst-stream-error-quark and code 11.
Additional debug info:
gstbaseaudiosink.c(427): gst_base_audio_sink_preroll (): /pipeline0/alsasink0:
sink not negotiated.
Execution ended after 12884000 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
FREEING pipeline ...

*************************************************************************************

I don't know what's wrong here and what I should do to play it on client. the alsasink is no
problem because I can use it to play a simple wav file. in fact, I am quite sure the client
recieve correctly, because there is no problem if I first try to save to a file on the client and
then play the file. the commands show as following:

client terminal:  gst-launch-0.10 -v udpsrc ! filesink location=test.wav
server terminal:  gst-launch-0.10 -v filesrc location=/usr/share/sounds/phone.wav ! udpsink

client terminal:  gst-launch-0.10 filesrc location=test.wav ! wavparse ! alsasink

by the way, is there any good source/sample about how to use UDP/RTP? I really need that.

any hint will great appriciate! 
Sammy

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




More information about the gstreamer-devel mailing list