PDA

View Full Version : Phonon never gets PlayingState (qt4.7.1 / linux / gstreamer)



eichlan
14th February 2011, 00:30
I have confirmed this in both my own programs and the phonon music player example program that comes with Qt. Everything seems perfect. The QtMultimedia framework tests can play audio just fine, it enumerates my devices via alsa perfectly, it even decodes the input files well enough to display the metadata.

However, when I try to play() the media object, nothing happens. I don't get an error, it never gets it's state changed to PlayingState, and no audio is produced. I have double checked qtconfig's gstreamer settings, it says gstreamer is working fine. Gstreamer is working well enough to report the metadata.

I have tested gstreamer on the commandline with gst-launch, the test command to produce a tone:

gst-launch audiotestsrc ! audioconvert ! audioresample ! alsasink

works perfectly, and so does playing a file with playbin. If anyone has any thoughts, I'd really appreciate it.

Other info: gstreamer is version 0.10.21, qt-4.7.1 was compiled with phonon and gstreamer support intact, and they compile and "test" fine except for never reaching PlayingState.

Snix
28th November 2012, 11:59
Set a variables GST_DEBUG, GST_DEBUG_DUMP_DOT_DIR and place GST_DEBUG_BIN_TO_DOT_FILE (man gst-launch) after phonon supposed play a file then check a created pipeline (e.g. dot src.dot -Tsvg -o out.svg then eog out.svg). Phonon could not design pipeline appropriate form some reason in that way you will see it.

Check also variable LD_LIBRARY_PATH it should leads to your local gstreamer library.

Here you have more informations:

http://techbase.kde.org/Development/Tutorials/Debugging/Phonon

DaveMironic
7th December 2012, 03:29
We discovered when testing qt 4.8 with phonon gstreamer stack that qmediaplayer examples would only play limited selection of media types compared to enumerated capabilities. One of our developers found when single-stepping through gstreamer plugin loader that dlopen() flag was conditionally set to RTLD_LAZY. When forcing that flag on, a lot more audio and video playback codecs started working finally.

We saw that qt 4.8.4 was recently released, and been trying that for any bugfixes and performance improvements. There have been some small improvements in general noticed started with qt 4.8.3, but still concerned about video streaming ability on our embedded linux device (arm cortex a9, fpu, no neon no video accel). Any performance tuning tips?