<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
Hi,<br /><br />I'm trying to build a GStreamer-based RTP receiver in a sandboxed architecture:<br />- A "listener" process listens at UDP port and redirect the stream to receiver<br />- "Receiver" process runs in a sandbox without network access, gets data from "listener" over a pipe.<br /><br />The reason for such architecture is increased security - so that vulnerable parsing code is run with minimum privileges.<br /><br />At prototyping phase I'm trying to create a PoC using "gst-launch-1.0", but I cannot find a way to create a working pipeline to play RTP stream from a pipe instead of udpsrc.<br /><br />For example, usual udpsrc receiving pipeline that works:<br />gst-launch-1.0 udpsrc  port=3000 caps="application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU" ! rtppcmudepay ! mulawdec ! pulsesink<br /><br />Corresponding sending part is <br />gst-launch-1.0 filesrc location="test.wav" ! wavparse ! audioconvert ! audioresample ! mulawenc ! rtppcmupay ! udpsink host=127.0.0.1 port=3000<br /><br />Changing udpsrc to filesrc doesn't work:<br />gst-launch-1.0 filesrc location="/tmp/pipe" !  "application/x-rtp, 
media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU" !
 rtppcmudepay ! mulawdec ! pulsesink<br /><br />Sending part: <br />gst-launch-1.0 filesrc location="test.wav" ! wavparse ! audioconvert ! audioresample ! mulawenc ! rtppcmupay ! filesink location=/tmp/pipe<br /><br />The stream is actually played, but just garbled sound. Error output:<br />WARNING: from element /GstPipeline:pipeline0/GstRtpPcmuDepay:rtppcmudepay0: Could not decode stream.<br />Additional debug info:<br />gstrtpbasedepayload.c(503): gst_rtp_base_depayload_handle_buffer (): /GstPipeline:pipeline0/GstRtpPcmuDepay:rtppcmudepay0:<br />Received invalid RTP payload, dropping<br /><br />If I capture incoming stream to file, then I'm unable to play it either (same behavior). If I remove RTP elements from the pipeline, raw PCMU is played fine.<br /><br />So my questions are:<br />1. Is it possible to play RTP stream without udpsrc using gst-launch-1.0?<br />2. Is it possible to implement this in code, in own application?<br /><br />Thanks,<br />Wire Snark<br /><br />  </body>
</html>