[gst-devel] audio conferencing with Gstreamer

Vinod Nanjaiah Vinod_Nanjaiah at mindtree.com
Tue Dec 16 09:03:46 CET 2008

Hello All!

This is a fairly lengthy question. Please bear with me.

I am using gstreamer to implement voice conference between two systems.

One system is Fedora Core 9 PC (gstreamer 0.10.20 binaries)
and the other is
an ARM core based Multimedia development board (TI Davinci DVEVM board,
with MontaVista 2.6.10 kernel).
I am using gstreamer to stream and playback on both sides.

The problem that I am facing is as below:
If I start the the voice conference both ways, the voice play back at board
does not work.

If I capture, encode, and stream from PC to the board and play back at board, It Works.
If I capture, encode, and stream from board to the PC, and play back at PC, It Works.

If I start both (by starting play back at the board, once this works fine,
start the capture, encode and stream on the board. Correspondingly on the PC
side also.)
In this scenario, I am not able to hear anything on the PC side.

If I reverse the scenario (first capture and streaam at board and later
play back at board) I am not able to here voice on the board.

Any idea about what could be going wrong in this kind of use case?

The pipelines that I am using at the board and on the PC are as follows:

At Board:

Playback pipeline
gst-launch-0.10 -m -v gstrtpbin name=rtpbin \
     udpsrc  port=9011 \
     caps="application/x-rtp,media=(string)audio,encoding-name=(string)PCMA,clock-rate=(int)8000" ! \
     rtpbin.recv_rtp_sink_5  rtpbin. ! \
     rtppcmadepay ! alawdec ! osssink sync=false \
     udpsrc port=9012 ! rtpbin.recv_rtcp_sink_5 \
     rtpbin.send_rtcp_src_5 ! udpsink host="$STREAM_HOST" port=9013  sync=false async=false -t

Stream pipeline
export PLAY_HOST=  # FC9  PC
gst-launch-0.10 -m  -v  --gst-debug-level=0 \
GST_STATES=0:GST_SIGNAL=0:GST_BUS=0,osssrc:0,gstrtpbin:0 \
    gstrtpbin name=rtpbin  \
    osssrc device="/dev/dsp" !  \
    capsfilter caps="audio/x-raw-int,channels=2,endianness=1234,width=16,signed=true,rate=8000" ! \
    deinterleave name=de  de.src0 ! \
    alawenc ! \
    rtppcmapay ! \
    capsfilter caps="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA" ! \
    rtpbin.send_rtp_sink_0  rtpbin.send_rtp_src_0 ! \
    udpsink host="$PLAY_HOST" port=9000  auto-multicast=false  \
    rtpbin.send_rtcp_src_0 ! udpsink host="$PLAY_HOST" port=9001 auto-multicast=false sync=false async=false -t \
    udpsrc port=9002 ! rtpbin.recv_rtcp_sink_0

At PC:

Playback pipeline
export STREAM_HOST=""  #ARM Board
gst-launch-0.10 -m -v gstrtpbin name=rtpbin latency=1000 \
     udpsrc  port=9000 \
     caps="application/x-rtp,media=(string)audio,encoding-name=(string)PCMA,clock-rate=(int)8000" ! \
     rtpbin.recv_rtp_sink_0  rtpbin. ! \
     rtppcmadepay ! alawdec ! osssink  sync=false \
     udpsrc port=9001 ! rtpbin.recv_rtcp_sink_0   \
     rtpbin.send_rtcp_src_0 ! udpsink host="$STREAM_HOST" port=9002  sync=false async=false -t

Stream pipeline
export PLAY_HOST=""  #  ARM board

gst-launch -m  -v  --gst-debug-level=0 --gst-debug-no-color \
     --gst-debug=GST_CAT=0:GST_ELEMENT_*=0,gstrtpbin:0,osssrc:0,audiosrc:0,baseaudiosrc:0,alawenc:0 \
     gstrtpbin name=rtpbin latency=0 \
     osssrc device="/dev/dsp" do-timestamp=true ! \
     capsfilter caps="audio/x-raw-int,width=16,depth=16,endianess=1234,rate=8000,channels=1" ! \
     alawenc ! \
     rtppcmapay ! \
     rtpbin.send_rtp_sink_3  rtpbin.send_rtp_src_3 ! \
     udpsink host="$PLAY_HOST" port=9011  auto-multicast=false  \
     rtpbin.send_rtcp_src_3 ! udpsink host="$PLAY_HOST" port=9012 auto-multicast=false sync=false async=false -t \
     udpsrc port=9013 ! rtpbin.recv_rtcp_sink_3


This message (including attachment if any) is confidential and may be privileged. If you have received this message by mistake please notify the sender by return e-mail and delete this message from your system. Any unauthorized use or dissemination of this message in whole or in part is strictly prohibited. E-mail may contain viruses. Before opening attachments please check them for viruses and defects. While MindTree Limited (MindTree) has put in place checks to minimize the risks, MindTree will not be responsible for any viruses or defects or any forwarded attachments emanating either from within MindTree or outside.

Please note that e-mails are susceptible to change and MindTree shall not be liable for any improper, untimely or incomplete transmission.

MindTree reserves the right to monitor and review the content of all messages sent to or from MindTree e-mail address. Messages sent to or from this e-mail address may be stored on the MindTree e-mail system or else where.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20081216/067182ac/attachment.htm>

More information about the gstreamer-devel mailing list