Qt-4.7.4 Phonon Gstreamer Backend for i.MX53 (and i.MX51...)

cancel
Showing results for 
Search instead for 
Did you mean: 

Qt-4.7.4 Phonon Gstreamer Backend for i.MX53 (and i.MX51...)

2,632 Views
NXP Employee
NXP Employee

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

Tags (2)
0 Kudos
11 Replies

77 Views
Specialist I

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:

http://git.yoctoproject.org/cgit/cgit.cgi/meta-fsl-arm/commit/?id=c2cbd977ee7ffa53f715222a13feec599b...

Leo

0 Kudos

77 Views
Contributor I

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 ).

0 Kudos

77 Views
Contributor IV

I'm having same issue. Any progress on solving this issue?

0 Kudos

77 Views
Contributor I



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.

0 Kudos

77 Views
Contributor I

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.

0 Kudos

77 Views
Contributor I

Can any one share the .spec file for 4.7.4 source code.

0 Kudos

77 Views
Contributor I

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

0 Kudos

77 Views
Contributor II

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.

0 Kudos

77 Views
NXP Employee
NXP Employee

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

0 Kudos

77 Views
Contributor I

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

0 Kudos

77 Views
Contributor I

Great patch ! I have added support for video rotation in the videowidget. I will upload a patch when the code is cleaned and ready.

0 Kudos