[gst-devel] Possible gstreamer errors: volume, dispose, loop detected - oh my!
Ryan Kelln
ryankelln at gmail.com
Thu Sep 11 19:20:15 CEST 2008
Hi Gstreamer devs,
I'm using gstreamer through gstreamer-java inside of processing. I'm
getting some odd errors and warnings and eventually a crash (perhaps a
null pointer). I'm hoping you might have a bit of insight or guidance
for how to avoid these problems or what I could do to fix them. Thanks.
Environment:
Ubuntu 8.04
gstreamer-team ppa (https://edge.launchpad.net/~gstreamer-team/+archive)
Sun Java 1.06_07
Processing 148
gstreamer-java 0.8
The errors happen in a variety of orders, here is an example of each:
** (GSVideo:9501): CRITICAL **: volume_transform_ip: assertion
`this->process != NULL' failed
(GSVideo:9501): GStreamer-CRITICAL **:
Trying to dispose element test, but it is not in the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
(GSVideo:9501): GStreamer-WARNING **: loop detected in the graph of bin
GStreamer Audio Data Extractor: mysoundfile.wav!!
Then eventually Java will crash with a SIGSEGV fault in a native thread
which I'm assuming is gstreamer. Looks like it is accessing a null pointer.
Description of what I'm doing:
Custom software that is playing back multiple audio files at once. It
loads approx. 11 sound files (all wavs or aif - errors and crash remain
the same) and starts and stops the files quite often. It also checks the
current volume and changes the volume each update (i.e. constantly
adjusting the volume). In addition I'm using the audiopanorama plug-in
to do constant panning.
Occasionally I will get the "loop detected" warning (see below) on one
or two of the sound files, but which sound file it is seems to change
and it doesn't happen every run. The program continues to function after
receiving this warning although the sound file doesn't play.
I get the "volume_transform_ip" error quite often (every 5 minutes?) but
the program doesn't immediately crash.
I get the "dispose element test" error only on a multi-core processor
(AMD Phenom) but not on an equivalent machine with just a single core.
Again, this doesn't cause an immediate crash. As far as I know I'm not
make any elements named "test", and I'm not disposing of anything until
the program ends but I am starting and stopping the audio streams.
I've grepped the source for these and found the loop detected error in
gstbin.c (gst_bin_sort_iterator_next() )and the "dispose element not
NULL" in gstelement.c (gst_element_dispose() ) but I can't locate the
"volume_transform_ip" error.
I've got to deliver this project really soon so workarounds might be the
best option. I'm not sure if the errors are in gstreamer or just my use
of it? If you're sure that gstreamer is at fault I'd love some tips on
how to provide more info (I'm not sure how I'd debug gstreamer through
all these other layers) and write up a bug report.
Thanks very much,
Ryan
More information about the gstreamer-devel
mailing list