MythTV in Framebuffer

From MythTV

Jump to: navigation, search


I will try to collect here all information regarding DirectFB and qt embedded support in Mythtv. This is work in progress and needs some editing to be really useful.

For Gentoo Users is here an Installation summary for DirectFB and QT embedded.

Here is what i found until today:

1. Install DirectFB (for video playback)

2. Install QT embedded (for the menus via Framebuffer)

3. Install Mythtv

Step by Step

Based on http://www.freevohelp.com/mythTvDirectFB.html which seems to be offline:

Download DirectFB from http://www.directfb.org/index.php?path=Main%2FDownloads and install it.

Download qt-embedded from ftp://ftp.trolltech.com/qt/source/ Direct link

Compiling qt-embedded-free-3.3.5: Add the folloing environmental variables:

export QTDIR="/usr/local/qt-3.3.5" 
export QTBIN="$QTDIR/bin" 
export QTLIB="$QTDIR/lib" 
export QMAKESPEC="$QTDIR/mkspecs/qws/linux-x86-g++" 
export LD_LIBRARY_PATH="$QTLIB" 

Add "QTDIR/bin" to your PATH variable

Edit $QTDIR/mkspecs/qws/linux-x86-g++/qmake.conf to remove the no-rtti flag for the compiler

Change the line:

 QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS  -DQWS -fno-exceptions -fno-rtti

To:

 QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS  -DQWS -fno-exceptions

Add the following line to your /etc/ld.so.conf

/usr/local/qt-3.3.5/lib/

Change to your qt directory:

cd /usr/local/src/qt-embedded-free-3.3.5/

Start compiling qt

./configure -qt-gfx-matrox -depths 8,16,24,32 -prefix /usr/local/qt-3.3.5 -thread -qt-sql-mysql -platform    qws/linux-x86-g++ -I/usr/include/mysql
gmake && gmake install


Change to you mythtv directory:

cd /usr/local/src/mythtv-0.19

Start some mythTv hacking: In libs/libmythui/mythmainwindow.cp change:

d->painter = new MythOpenGLPainter();
//d->painter = new MythQtPainter();

to:

//d->painter = new MythOpenGLPainter();
d->painter = new MythQtPainter();

In programs/Makefile remove this line:

sub-mythuitest \

You will also need to move the fonts directory because it doesn't do it automatically:

cd /usr/local/src/qt-embedded-free-3.3.5/lib/
cp -r fonts/ /usr/local/qt-3.3.5/lib/
cd /usr/local/qt-3.3.5/lib/fonts/

Start compiling mythtv

./configure --enable-directfb --disable-x11 --disable-xv
qmake mythtv.pro && qmake && qmake install

Useful resources for troubleshooting

  • The patches in this thread helped me a lot to get mythTV compiled with Qt-embedded.
  • In some configurations, the use of distcc leads to linking problems of mythTV. Append --disable-distcc to your configure or unset DISTCC_HOSTS.

If you get an error like "videoout_directfb.cpp:XXX error: too many initializers for...", edit the file videoout_directfb.cpp and delete the following line:

{0xffff,0x00}, // DIKS_ALTGR  not sure what QT Key is
  • If you get an error like
main.o(.gnu.linkonce.r._ZTI6QGList+0x8): undefined reference to `typeinfo for QPtrCollection'
../../libs/libmyth/libmyth-0.xx.so: undefined reference to `typeinfo for QPushButton'
../../libs/libmyth/libmyth-0.xx.so: undefined reference to `typeinfo for QLibrary'
../../libs/libmythtv/libmythtv-0.xx.so: undefined reference to `typeinfo for QGArray'
../../libs/libmyth/libmyth-0.xx.so: undefined reference to `typeinfo for QComboBox'
...

see this mailing list entry for a possible solution

  • when using DirectFB 1.0, try checking out and compiling the mythtv-vid branch instead of the main trunk (March 2007)
svn co http://cvs.mythtv.org/svn/branches/mythtv-vid/
Personal tools