Hi,
Recently I've performed some customizations of phonon gstreamer-backend for supporting i.MX53 processor. Actually with this, it should be possible to playback either on QWS and X11 up to 1080p video streams, full screen or windowed..
Here attached you can find the patches required, starting from a bare LTIB installation, hoping these will be useful for some of you :).
How to install:
Starting from a new LTIB installation.
copy phonon-gstreamer-backend-for-fsl-iMX5x.patch in /opt/freescale/pkgs/
(this operation is required once).
in your ltib installation folder do
patch -p1 < ltib-phonon-gstreamer-backend-for-fsl-iMX5x.patch
The ltib patch is the summa of the works done by other guys in the forum plus
modification made for supporting the patch for phonon.
There are also some improvement left to do and maybe some unknown bugs (I've performed limited testing):
As far as I know:
The QWS version has the limitation that the video is not centered in the widget while moving the
Video Widget itself across the screen. I'm not a QT expert and I did not found a suitable way to let
know to the video widget that its absolute position is changed. Right now the video will get
centered in the widget when passing the mouse over the wdiget itself, when it is been moved from
its original position.
In the QWS the overlay of video/graphics is done via HW and the selected Color Key is Black,
such that if you put any black graphic object over the video, it will become transparent. There is
no appropriate API for controlling that via the Application and the value is hard coded in
widgetrenderer.cpp. It implies that you have to modify it in there, without forgetting to let it match
video widget background (otherwise you won't see anything on screen !!!). If you really need that...
This patch drastically modify the standard renderer (X11 and Widget), such that it might be worth
having separate renderers...
The patch it is been tested on i.MX53 but it should work also for i.MX51, some further hack might
be required for using other i.MX.
Ciao
--daniele
Original Attachment has been moved to: 366-ltibphonongstreamerbackendforfsliMX5x.patch
Original Attachment has been moved to: 367-phonongstreamerbackendforfsliMX5x.patch
Hi Daniele,
In the QT4.8 + phonon + GStreamer integration, there was a 'video device leak' issue which only allowed a few playbacks. Please take at look at the above URL and update your patches, if applies:
Leo
I'm using imx53 QSB with Ltib. I'm trying to use phonon with QT video application
***
I'm getting following error while trying to run a media player app in Qt. Please help me if there a way to solve this
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::Audi oOutput ( no objectName ).
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to MediaVideoWi dget ( no objectName ).
I'm having same issue. Any progress on solving this issue?
Jeff said:
Hello,
I have some problem when build Qt-x11 with Qt 4.7.4 and the patch:
-L/home/lucid/ltib/rpm/BUILD/qt-everywhere-opensource-src-4.7.4/src/tools/bootstrap -lbootstrap -lgstreamer-0.10
/usr/bin/ld: cannot find -lgstreamer-0.10
collect2: ld returned 1 exit status
make[1]: *** [../../../bin/moc] Error 1
make[1]: Leaving directory `/home/lucid/ltib/rpm/BUILD/qt-everywhere-opensource-src-4.7.4/src/tools/moc'
make: *** [sub-moc-make_default-ordered] Error 2
error: Bad exit status from /home/lucid/ltib/tmp/rpm-tmp.62409 (%build)why prompt: /usr/bin/ld: cannot find -lgstreamer-0.10 ?
Could you help me? Thanks very much.
----------------------------------------------
OK! I fixed it. -lgstream-0.10 is unnecessary for Qt-x11 configuration.
Hello,
I have some problem when build Qt-x11 with Qt 4.7.4 and the patch:
-L/home/lucid/ltib/rpm/BUILD/qt-everywhere-opensource-src-4.7.4/src/tools/bootstrap -lbootstrap -lgstreamer-0.10
/usr/bin/ld: cannot find -lgstreamer-0.10
collect2: ld returned 1 exit status
make[1]: *** [../../../bin/moc] Error 1
make[1]: Leaving directory `/home/lucid/ltib/rpm/BUILD/qt-everywhere-opensource-src-4.7.4/src/tools/moc'
make: *** [sub-moc-make_default-ordered] Error 2
error: Bad exit status from /home/lucid/ltib/tmp/rpm-tmp.62409 (%build)
why prompt: /usr/bin/ld: cannot find -lgstreamer-0.10 ?
Could you help me? Thanks very much.
Can any one share the .spec file for 4.7.4 source code.
Hello,
I trying use this patch, but i don´t get apply it. I use qt libraries from qtnokia
Where I should put it source libraries? After reading your posts, i understand that it should be placed in /xxxx/ltib/rpm/BUILD. It is correct?
And after placed phonongstreamerbackendforfsliMX5xv2.patch in /opt/freescale/pkgs I do:
patch -p1 < ltib-phonon-gstreamer-backend-for-fsl-iMX5x.patch
in XXXXXX/ltib, but I don´t get apply patch.
What I am doing wrong??
Thak you very much
Excellent patch, I fixed my problem with qmediaplayer not playing videos by installing 4.7.4 and this patch, many thanks.
I noticed though something odd with the qmediaplayer "Open File" select dialog. On first use of opening a video file the dialog shows fine. After opening and playing a video file, subsequent uses of "Open File" give a kind of semi-transparent dialog, see picture attached. The video being played in my example is of a circular "test card", which can be seen showing though the dialog. There are pure opaque black vertical bars at regular intervals through the dialog too. Any ideas on this? Thanks.
Hi Felix
I have updated phonon-gstreamer-backend-for-fsl-iMX5x.patch with the fix for this compilation problem.
Copy the one attached to /opt/freescale/pkgs/phonon-gstreamer-backend-for-fsl-iMX5x.patch
and manually remove rpm/BUILD/qt-everywhere-opensource-src-4.7.4/ before launching again ltib otherwise it
won't be applied to the current build.
Ciao
--daniele
I have trouble to compile QT with this patch. here is the output:
../../../3rdparty/phonon/gstreamer/devicemanager.cpp: In member function 'Phonon::Gstreamer::AbstractRenderer* Phonon::Gstreamer::DeviceManager::createVideoRenderer(Phonon::Gstreamer::VideoWidget*)':
../../../3rdparty/phonon/gstreamer/devicemanager.cpp:269: error: cannot allocate an object of abstract type 'Phonon::Gstreamer::X11Renderer'
../../../3rdparty/phonon/gstreamer/x11renderer.h:41: note: because the following virtual functions are pure within 'Phonon::Gstreamer::X11Renderer':
../../../3rdparty/phonon/gstreamer/abstractrenderer.h:52: note: virtual void Phonon::Gstreamer::AbstractRenderer::handleMove(QMoveEvent*)
../../../3rdparty/phonon/gstreamer/devicemanager.cpp:273: error: cannot allocate an object of abstract type 'Phonon::Gstreamer::X11Renderer'
../../../3rdparty/phonon/gstreamer/x11renderer.h:41: note: since type 'Phonon::Gstreamer::X11Renderer' has pure virtual functions
Great patch ! I have added support for video rotation in the videowidget. I will upload a patch when the code is cleaned and ready.