PDA

View Full Version : How to find the GStreamer decoder plugin instance from Qt Phonon backend?



Greppana
13th September 2010, 11:59
Hi,

I have a custom GStreamer video decoder plugin to which I would like to pass couple of parameters through Phonon GStreamer backend interface. For that I should find the decoder plugin interface instance from the backend video pipeline.

My setup is:
– Qt 4.7 release candidate
– Ubuntu Linux
– Custom GStreamer video decoder plugin (autoplugin)

I know that that the decoder instance is somewhere in the objects that are handled by the mediaobject class:

.../src/3rdparty/phonon/gstreamer/mediaobject.cpp

The problem is just in which one of the objects. Is it in the decodebin (should be there???), pipeline, videograph, ????

My custom video decoder plugin is working OK, and I can play videos using it. So the plugin itself is loaded correctly to the system, and is operational, but the decoder instance is just lurking somewhere, and I cannot find it…

wysota
13th September 2010, 13:14
I don't think this is accessible through Phonon's public API. If you tie your application specifically to GStreamer, maybe you should use GStreamer API directly instead of going through Phonon.

Greppana
13th September 2010, 16:04
I don't think this is accessible through Phonon's public API. If you tie your application specifically to GStreamer, maybe you should use GStreamer API directly instead of going through Phonon.

Hmm,
That is of course one option, but I'd rather use the Phonon framework at this point. I just assumed that the decoder instance would be available in Phonon since Phonon basically wraps the GStreamer video playing pipeline and builds it from the standard GStreamer elements. Therefore it should also have the decoder stored somewhere or at least have some GStreamer object that could be used to access the decoder plugin and it's interface. But that is just my guess, and unfortunately I don't know very much about Phonon and GStreamer.

wysota
13th September 2010, 16:48
I just assumed that the decoder instance would be available in Phonon since Phonon basically wraps the GStreamer video playing pipeline and builds it from the standard GStreamer elements.
GStreamer is only one of the backends.


Therefore it should also have the decoder stored somewhere or at least have some GStreamer object that could be used to access the decoder plugin and it's interface.
That's surely the case but the whole point of Phonon is to hide those objects from the programmer and expose pure Qt API instead of platform-dependent quirks.