[gst-devel] Rhythmbox+Pause+GstStaticPadTemplate & GstAudioClock
Lennart Poettering
mztfgernzre at 0pointer.de
Fri Sep 10 18:06:06 CEST 2004
Hi!
I am currently working on a polypaudio sound server sink for
gstreamer. It already works quite fine with gst-launch, but has its
issues with rhythmbox: everything seems to work except one thing: when
clicking on "pause" in the GUI while a stream is being played the sink
gets destroyed. When resuming the sink is created again. However, this
time the capabilities are fixed to the worst values possible. For the
pads I specified the follwoign static caps:
GST_STATIC_CAPS(
"audio/x-raw-int, "
"endianness = (int) { LITTLE_ENDIAN , BIG_ENDIAN }, "
"signed = (boolean) TRUE, "
"width = (int) 16, "
"depth = (int) 16, "
"rate = (int) [ 1000, 192000 ], "
"channels = (int) [ 1, 16 ]"
)
On resume gstreamer selects 16bit at 1000 Hz with a single channel,
regardless of the qualitiy of the file played! When fixing the static
capabilities to 44100Hz and 2 channels, everything works fine. The
sink is chain based an uses its own link function.
See
http://0pointer.de/cgi-bin/viewcvs.cgi/trunk/src/polypsink.c?rev=3&root=gst-polyp&view=auto
for the sources
Since i suspected a memory allocation error or something like this
(allthough valgrind couldn't find anything) i commented out most of
the code and thus created something like a
nullsink:
http://0pointer.de/cgi-bin/viewcvs.cgi/trunk/src/nullsink.c?rev=3&root=gst-polyp&view=auto
The problem stays the same.
This is gstreamer 0.8.5 from Debian.
BTW: initially I used the Hz range 1 .. 96000. This triggered a horrible bug
in libaudioscaler.so: it tried to allocate -7 bytes via malloc. Funny.
Another question: why doesn't rhythmbox just pause the pipeline when
the user clicks on pause in the GUI? why is it destroyed completely?
I'd like to support a clock for the polypaudio sink. The OSS and
esound drivers use a class GstAudioClock for that. Unfortunately
there's no documentation for that class and it isn't provided in
debian's libstreamer0.8-dev package. Is there any reason for that?
Should I create a GstClock subclass of my own and don't make use of
GstAudioClock?
Thank you,
Lennart
--
name { Lennart Poettering } loc { Hamburg - Germany }
mail { mzft (at) 0pointer (dot) de } gpg { 1A015CC4 }
www { http://0pointer.de/lennart/ } icq# { 11060553 }
More information about the gstreamer-devel
mailing list