[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