When I enable DVB I get a compile error on mythcdrom-linux.cpp, this is because the DVB settings.pro includes files from /usr/src/linux/includes
Including files directly from the kernel in Linux user space programs is no longer supported by the kernel developers.

I've attached a patch that copies the three dvb files from the kernel we use into myth. These are dvb/dmx.h, dvb/frontend.h, and dvb/version.h, these are renamed dvbdmx_myth.h, dvbfrontend_myth.h, dvbversion_myth.h and should be put in the libs/libmythtv directory with videodev_myth.h and videodev2_myth.h which serve a simlar purpose. The patch itself changes the files that include the kernel files to use the myth copies, and removes the INCLUDE line from settings.pro that causes the compile problem.

The copies of the dvb kernel includes is from 2.6.9, which may be too recent, but I'll leave it to the dvb people to amend this patch if it needs amending. We need fairly recent kernel for our DVB support, but I'm not sure exactly which kernel is the target.

-- Daniel

Below is the compile error I get without the patch, when enabling DVB:

cd libmyth && make -f Makefile
make[2]: Entering directory `/cvs/myth/mythtv-pure/libs/libmyth'
g++ -c -pipe -Wall -W -O3 -march=pentiumpro -fomit-frame-pointer -D_REENTRANT -fPIC  
-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -DMMX 
-DCONFIG_VIDEO4LINUX -DUSING_IVTV -DUSING_OSS -DUSING_DVB -DUSING_DVB_EIT 
-DUSE_JOYSTICK_MENU -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. 
-I/usr/local/include -I/usr/src/linux-2.6.9/include -I../libmythsamplerate 
-I../libmythsoundtouch -I../.. -I/usr/qt/3/include -o mythcdrom-linux.o 
mythcdrom-linux.cpp
In file included from /usr/src/linux-2.6.9/include/asm/byteorder.h:57,
                 from /usr/src/linux-2.6.9/include/linux/cdrom.h:14,
                 from mythcdrom-linux.cpp:3:
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:43: error: syntax
   error before `(' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:47: error: parse
   error before `*' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h: In function `
   __u64 __le64_to_cpup(...)':
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:49: error: `p'
   undeclared (first use this function)
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:49: error: (Each
   undeclared identifier is reported only once for each function it appears
   in.)
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h: At global scope:
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:51: error: syntax
   error before `(' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:55: error: parse
   error before `*' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:59: error: syntax
   error before `(' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:63: error: parse
   error before `*' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:67: error: syntax
   error before `(' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:71: error: parse
   error before `*' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:75: error: syntax
   error before `(' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:79: error: parse
   error before `*' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:83: error: syntax
   error before `(' token
/usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:87: error: parse
   error before `*' token
make[2]: *** [mythcdrom-linux.o] Error 1
make[2]: Leaving directory `/cvs/myth/mythtv-pure/libs/libmyth'
make[1]: *** [sub-libmyth] Error 2
make[1]: Leaving directory `/cvs/myth/mythtv-pure/libs'
make: *** [sub-libs] Error 2

Attachment: dvb-local-includes.tbz
Description: Binary data

_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to