Setting QGst::StatePlaying doesn't trigger a QGst::MessageStateChanged event

Karl Phillip maxphil at gmail.com
Tue Dec 20 06:01:32 PST 2011


I wrote a Video Player for Linux that uses QtGstreamer. It works
beatifully! Now that I've successfully compiled and tested
gstreamer/qtgstreamer for Windows I decided it was time to compile my Video
Player for Windows as well, and so it was done, flawlessly.

However, when my application is executed audio/video is not being played.

I know that onNewDecodedPad() is being triggered for "audio/x-raw-int" and
"video/x-raw-rgb", and I'm also certain that all the pipeline setup is good
since it works on Linux.

Here is what is happening: my VideoPlayer class inherits from
QGst::Utils::ApplicationSink , and I noticed that newBuffer() is not being
called when the pipeline is set to QGst::StatePlaying. That's odd, right?

So I addSignalWatch() to the pipeline bus and further testes revelead that
after everything is properly configured and loaded, i.e. after
onNewDecodedPad() is executed for both audio/video streams saying that
everything is good to go, setting the pipeline to:
    pipeline->setState(QGst::StatePlaying);

doesn't trigger a QGst::MessageStateChanged event, nor a QGst::MessageError
event. I don't know what's going on since I can see the very same code
working on Linux.

What could be causing this? I have added debugs for virtually every
QtGstreamer call that is being done, so if anything had failed during the
setup I would know.

Thanks guys,
--
Karl Phillip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111220/b58b6c13/attachment.htm>


More information about the gstreamer-devel mailing list