[gst-devel] UNable to create pipeline

Alfred Tascon atascon at gmail.com
Tue Aug 24 06:17:49 CEST 2010


Preamble
=======
1 - I have an ogg file with a single stream of a 4 channel vorbis encoded
content captured with a format of:
    - rate=22050,
    - channels=4,
    - width=16,
    - depth=16,
    - signed=true and
    - endianness=1234.

2 - Using following versions:
  On Ubuntu (server):
    GStreamer Core Library (as reported by gst-launch --gst-version) -
0.10.28
    filesrc - 0.10.28
    oggdemux - 0.10.28
    vorbisdec - 0.10.28
    queue - 0.10.28
    deinterleave - 0.10.21
    adder - 0.10.28
    audioconvert - 0.10.28
    audioresample - 0.10.28
    celtenc - 0.10.18
    udpsink - 0.10.21
    rtpceltpay - 0.10.21

  On Mac (client):
    GStreamer Core Library (as reported by gst-launch --gst-version) -
0.10.29
    udpsrc - 0.10.23
    celtdec - 0.10.19
    audioconvert - 0.10.29
    osxaudiosink - 0.10.23
    rtpceltdepay - 0.10.23


Observation
=========
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 :) ):

Server (Ubuntu):
gst-launch -v filesrc location='4chan.ogg' ! oggdemux ! vorbisdec ! queue !
deinterleave name=d0 \
           adder name=a ! audioconvert ! audioresample !
audio/x-raw-int,width=16,depth=16,rate=32000,channels=2 ! celtenc ! udpsink
host=<clientip> port=5555 \
           d0. ! queue ! volume name=c1v ! audiopanorama panorama=0.0 ! a. \
           d0. ! queue ! volume name=c2v ! audiopanorama panorama=0.0 ! a. \
           d0. ! queue ! volume name=c3v ! audiopanorama panorama=0.0 ! a. \
           d0. ! queue ! volume name=c4v ! audiopanorama panorama=0.0 ! a.

Client (Mac):
gst-launch -v udpsrc port=5555 caps="audio/x-celt,rate=32000" ! celtdec !
audioconvert ! osxaudiosink


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).
As follows:

Server (Unsuccessful):
gst-launch -v filesrc location='4chan.ogg' ! oggdemux ! vorbisdec ! queue !
deinterleave name=d0 \
           adder name=a ! audioconvert ! audioresample !
audio/x-raw-int,width=16,depth=16,rate=32000,channels=2 ! celtenc !
rtpceltpay ! udpsink host=<clientip> port=5555 \
           d0. ! queue ! volume name=v0 ! audiopanorama panorama=0.0 name=p0
! a. \
           d0. ! queue ! volume name=v1 ! audiopanorama panorama=0.0 name=p1
! a. \
           d0. ! queue ! volume name=v2 ! audiopanorama panorama=0.0 name=p2
! a. \
           d0. ! queue ! volume name=v3 ! audiopanorama panorama=0.0 name=p3
! a.

Error diplayed (eventhough -v is used):
WARNING: erroneous pipeline: could not link p0 to a


Client (Mac):
gst-launch -v udpsrc port=5555 caps="application/x-rtp,clock-rate=32000" !
rtpceltdepay ! celtdec ! audioconvert ! osxaudiosink


The client pipeline is created successfully and does produce correct audio
when a successful server pipeline is able to be generated.

I was able to create a successful server pipeline by removing the
audiopanorama elements, as follows (notice that the stream is now mono):

Server(Successful):
gst-launch -v filesrc location='4chan.ogg' ! oggdemux ! vorbisdec ! queue !
deinterleave name=d0 \
           adder name=a ! audioconvert ! audioresample !
audio/x-raw-int,width=16,depth=16,rate=32000,channels=1 ! celtenc !
rtpceltpay ! udpsink host=<clientip> port=5555 \
           d0. ! queue ! volume name=v0 ! a. \
           d0. ! queue ! volume name=v1 ! a. \
           d0. ! queue ! volume name=v2 ! a. \
           d0. ! queue ! volume name=v3 ! a.


Clien(Mac - as before):
gst-launch -v udpsrc port=5555 caps="application/x-rtp,clock-rate=32000" !
rtpceltdepay ! celtdec ! audioconvert ! osxaudiosink


I have tried all sorts of combination of caps filters and audioconverters in
the server pipeline but to no avail.
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.


I also tried the following:

gst-launch -v filesrc location='4chan.ogg' ! oggdemux ! vorbisdec ! queue !
deinterleave name=d0 ! queue ! volume name=v0 ! audiopanorama name=p0 ! \
           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 \
           d0. ! queue ! volume name=v1 ! audiopanorama name=p1 ! a. \
           d0. ! queue ! volume name=v2 ! audiopanorama name=p2 ! a. \
           d0. ! queue ! volume name=v3 ! audiopanorama name=p3 ! a.

But still fails with:
  WARNING: erroneous pipeline: could not link p1 to a
notice p0 changed to p1 - might be a clue?


Conclusion?
=========
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?


Thanks in Advance,

Alfred

PS
I have included a bzip2 file of the text file (and decolorized) produced by
using:
GST_DEBUG=4 GST_DEBUG_NO_COLOR=1 gst-launch 2>err.txt -v ....

if you search for 'ERROR' it will take you to the area of the text file
where gstreamer couldn't work it out.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20100824/f3420124/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: err.txt.bz2
Type: application/x-bzip2
Size: 88837 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20100824/f3420124/attachment.bin>


More information about the gstreamer-devel mailing list