<div>Preamble</div><div>=======</div><div>1 - I have an ogg file with a single stream of a 4 channel vorbis encoded content captured with a format of:</div><div>    - rate=22050,</div><div>    - channels=4,</div><div>    - width=16,</div>
<div>    - depth=16,</div><div>    - signed=true and</div><div>    - endianness=1234.</div><div><br></div><div>2 - Using following versions:</div><div>  On Ubuntu (server):</div><div>    GStreamer Core Library (as reported by gst-launch --gst-version) - 0.10.28</div>
<div>    filesrc - 0.10.28</div><div>    oggdemux - 0.10.28</div><div>    vorbisdec - 0.10.28</div><div>    queue - 0.10.28</div><div>    deinterleave - 0.10.21</div><div>    adder - 0.10.28</div><div>    audioconvert - 0.10.28</div>
<div>    audioresample - 0.10.28</div><div>    celtenc - 0.10.18</div><div>    udpsink - 0.10.21</div><div>    rtpceltpay - 0.10.21</div><div><br></div><div>  On Mac (client):</div><meta charset="utf-8"><div>    GStreamer Core Library (as reported by gst-launch --gst-version) - 0.10.29</div>
<div>    udpsrc - 0.10.23</div><div>    celtdec - 0.10.19</div><div>    audioconvert - 0.10.29</div><div>    osxaudiosink - 0.10.23</div><div>    rtpceltdepay - 0.10.23</div><div><br></div><div><br></div><div>Observation</div>
<div>=========</div>When I do the following pipelines (as long as client is started first), pipelines are created and correct audio is heard on the client (thank goodness for having a simple network :) ):<div><br></div><div>
Server (Ubuntu):</div><div><div>gst-launch -v filesrc location=&#39;4chan.ogg&#39; ! oggdemux ! vorbisdec ! queue ! deinterleave name=d0 \</div><div>           adder name=a ! audioconvert ! audioresample ! audio/x-raw-int,width=16,depth=16,rate=32000,channels=2 ! celtenc ! udpsink host=&lt;clientip&gt; port=5555 \</div>
<div>           d0. ! queue ! volume name=c1v ! audiopanorama panorama=0.0 ! a. \</div><div>           d0. ! queue ! volume name=c2v ! audiopanorama panorama=0.0 ! a. \</div><div>           d0. ! queue ! volume name=c3v ! audiopanorama panorama=0.0 ! a. \</div>
<div>           d0. ! queue ! volume name=c4v ! audiopanorama panorama=0.0 ! a.</div></div><div><br></div><div>Client (Mac):</div><div>gst-launch -v udpsrc port=5555 caps=&quot;audio/x-celt,rate=32000&quot; ! celtdec ! audioconvert ! osxaudiosink</div>
<div><br></div><div><br></div><div>When I add the rtpcelt(de)pay in the chain it fails to create the server pipeline with an error (actual error line follows pipeline description further down).</div><div>As follows:</div>
<div><br></div><div>Server (Unsuccessful):</div><div><div><div>gst-launch -v filesrc location=&#39;4chan.ogg&#39; ! oggdemux ! vorbisdec ! queue ! deinterleave name=d0 \</div><div>           adder name=a ! audioconvert ! audioresample ! audio/x-raw-int,width=16,depth=16,rate=32000,channels=2 ! celtenc ! rtpceltpay ! udpsink host=&lt;clientip&gt; port=5555 \</div>
<div>           d0. ! queue ! volume name=v0 ! audiopanorama panorama=0.0 name=p0 ! a. \</div><div>           d0. ! queue ! volume name=v1 ! audiopanorama panorama=0.0 name=p1 ! a. \</div><div>           d0. ! queue ! volume name=v2 ! audiopanorama panorama=0.0 name=p2 ! a. \</div>
<div>           d0. ! queue ! volume name=v3 ! audiopanorama panorama=0.0 name=p3 ! a.</div></div></div><div><br></div><div><div>Error diplayed (eventhough -v is used):</div><div>WARNING: erroneous pipeline: could not link p0 to a</div>
<div><br></div><div><br></div><div>Client (Mac):</div><div>gst-launch -v udpsrc port=5555 caps=&quot;application/x-rtp,clock-rate=32000&quot; ! rtpceltdepay ! celtdec ! audioconvert ! osxaudiosink</div></div><div><br></div>
<div><br></div><div>The client pipeline is created successfully and does produce correct audio when a successful server pipeline is able to be generated.</div><div><br></div><div>I was able to create a successful server pipeline by removing the audiopanorama elements, as follows (notice that the stream is now mono):</div>
<div><div><div><div><br></div><div>Server(Successful):</div><div>gst-launch -v filesrc location=&#39;4chan.ogg&#39; ! oggdemux ! vorbisdec ! queue ! deinterleave name=d0 \</div><div>           adder name=a ! audioconvert ! audioresample ! audio/x-raw-int,width=16,depth=16,rate=32000,channels=1 ! celtenc ! rtpceltpay ! udpsink host=&lt;clientip&gt; port=5555 \</div>
<div>           d0. ! queue ! volume name=v0 ! a. \</div><div>           d0. ! queue ! volume name=v1 ! a. \</div><div>           d0. ! queue ! volume name=v2 ! a. \</div><div>           d0. ! queue ! volume name=v3 ! a.</div>
</div></div></div><div><br></div><div><br></div><div>Clien(Mac - as before):</div><div><div><div>gst-launch -v udpsrc port=5555 caps=&quot;application/x-rtp,clock-rate=32000&quot; ! rtpceltdepay ! celtdec ! audioconvert ! osxaudiosink</div>
</div></div><div><br></div><div><br></div><div>I have tried all sorts of combination of caps filters and audioconverters in the server pipeline but to no avail.</div><div>I also tried to create the server pipeline on the Mac which appears to have later versions than the Ubuntu 10.04 distribution but again same error.</div>
<div><div><br></div><div><br></div><div>I also tried the following:</div><div><br></div><div><div>gst-launch -v filesrc location=&#39;4chan.ogg&#39; ! oggdemux ! vorbisdec ! queue ! deinterleave name=d0 ! queue ! volume name=v0 ! audiopanorama name=p0 ! \</div>
<div>           adder name=a ! audioconvert ! audioresample ! audio/x-raw-int,width=16,depth=16,rate=32000,channels=2 ! celtenc ! rtpceltpay ! udpsink host=192.168.1.14 port=5555 \</div><div><div>           d0. ! queue ! volume name=v1 ! audiopanorama name=p1 ! a. \</div>
<div>           d0. ! queue ! volume name=v2 ! audiopanorama name=p2 ! a. \</div><div>           d0. ! queue ! volume name=v3 ! audiopanorama name=p3 ! a.</div></div></div><div><br></div><div>But still fails with:</div><div>
  WARNING: erroneous pipeline: could not link p1 to a</div></div><div>notice p0 changed to p1 - might be a clue?</div><div><br></div><div><br></div><div>Conclusion?</div><div>=========</div><div>I was wondering if this is indeed a bug or is it the way I am constructing the pipeline or my usage of rtp(de)pay elements?</div>
<div><br></div><div><br></div><div>Thanks in Advance,</div><div><br></div><div>Alfred</div><div><br></div><div>PS</div><div>I have included a bzip2 file of the text file (and decolorized) produced by using:</div><div>GST_DEBUG=4 GST_DEBUG_NO_COLOR=1 gst-launch 2&gt;err.txt -v ....</div>
<div><br></div><div>if you search for &#39;ERROR&#39; it will take you to the area of the text file where gstreamer couldn&#39;t work it out.</div><div><br></div>