# HG changeset patch # User arpi # Date 1041077098 0 # Node ID 00326905484b8f4b97841ef02e8a23f4d12856e5 # Parent 2c7870bf81db7d6f055a60b1c3e22cb5fc90e864 DVB-HEAD (aka. NEWSTRUCT) detection & support patch by Dimitrios Dimitrakos diff -r 2c7870bf81db -r 00326905484b configure --- a/configure Sat Dec 28 11:39:31 2002 +0000 +++ b/configure Sat Dec 28 12:04:58 2002 +0000 @@ -970,6 +970,7 @@ _fbdev=auto _fbdev_nocopy=no _dvb=auto +_dvbhead=auto _dxr2=auto _dxr3=auto _iconv=auto @@ -1098,6 +1099,8 @@ --disable-fbdev) _fbdev=no ;; --enable-dvb) _dvb=yes ;; --disable-dvb) _dvb=no ;; + --enable-dvbhead) _dvbhead=yes ;; + --disable-dvbhead) _dvbhead=no ;; --enable-dxr2) _dxr2=yes ;; --disable-dxr2) _dxr2=no ;; --enable-dxr3) _dxr3=yes ;; @@ -2745,10 +2748,53 @@ _def_dvb='#define HAVE_DVB 1' _aomodules="mpegpes(dvb) $_aomodules" _vomodules="mpegpes(dvb) $_vomodules" -else +fi +if test "$_dvbhead" != no ; then + echocheck "DVB HEAD" + if test "$_dvbhead" != no ; then + _dvbhead=no + test -c /dev/dvb/adapter0/video0 && _dvbhead=yes + +cat >$TMPC << EOF +#include +#include +#include +#include +#include + +#include +#include +#include +#include +int main(void) {return 0;} +EOF + if cc_check ; then + _dvbhead=yes + echores "yes" + else + for I in "-I/usr/src/DVB/include" "$_inc_extra/include/linux" ; do + if cc_check "$I" ; then + _dvbhead=yes + _inc_dvb="$I" + echores "yes (using $_inc_dvb)" + break + fi + done + test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-extraincdir=DIR)" + fi + else + echores "no" + fi + if test "$_dvbhead" = yes ; then + _def_dvb='#define HAVE_DVB_HEAD 1' + _aomodules="mpegpes(dvb) $_aomodules" + _vomodules="mpegpes(dvb) $_vomodules" + fi +fi +if test "$_dvbhead" = no && test "$_dvb" = no ; then _def_dvb='#undef HAVE_DVB' _aomodules="mpegpes(file) $_aomodules" - _vomodules="mpegpes(file) $_vomodules" + _vomodules="mpegpes(file) $_vomodules" fi diff -r 2c7870bf81db -r 00326905484b libao2/ao_mpegpes.c --- a/libao2/ao_mpegpes.c Sat Dec 28 11:39:31 2002 +0000 +++ b/libao2/ao_mpegpes.c Sat Dec 28 12:04:58 2002 +0000 @@ -1,6 +1,10 @@ #include #include #include +#ifdef DVB_HEAD +#define HAVE_DVB 1 +#endif + #ifdef HAVE_DVB #include #endif @@ -15,8 +19,13 @@ #include "../mp_msg.h" #ifdef HAVE_DVB +#ifndef HAVE_DVB_HEAD #include audioMixer_t dvb_mixer={255,255}; +#else +#include +audio_mixer_t dvb_mixer={255,255}; +#endif #endif extern int vo_mpegpes_fd; extern int vo_mpegpes_fd2; diff -r 2c7870bf81db -r 00326905484b libvo/vo_mpegpes.c --- a/libvo/vo_mpegpes.c Sat Dec 28 11:39:31 2002 +0000 +++ b/libvo/vo_mpegpes.c Sat Dec 28 12:04:58 2002 +0000 @@ -26,9 +26,11 @@ #include #include "mp_msg.h" - +#ifdef HAVE_DVB_HEAD +#define HAVE_DVB 1 +#endif #ifdef HAVE_DVB - +#ifndef HAVE_DVB_HEAD #include #include @@ -41,6 +43,20 @@ #include #include +#else +#define true 1 +#define false 0 +#include + +#include +#include +#include + +#include +#include +#include +#include +#endif #endif #include "config.h" @@ -86,6 +102,7 @@ #ifdef HAVE_DVB if(!arg){ //|O_NONBLOCK +#ifndef HAVE_DVB_HEAD if((vo_mpegpes_fd = open("/dev/ost/video",O_RDWR)) < 0){ perror("DVB VIDEO DEVICE: "); return -1; @@ -94,6 +111,16 @@ perror("DVB AUDIO DEVICE: "); return -1; } +#else + if((vo_mpegpes_fd = open("/dev/dvb/adapter0/video0",O_RDWR)) < 0){ + perror("DVB VIDEO DEVICE: "); + return -1; + } + if((vo_mpegpes_fd2 = open("/dev/dvb/adapter0/audio0",O_RDWR|O_NONBLOCK)) < 0){ + perror("DVB AUDIO DEVICE: "); + return -1; + } +#endif if ( (ioctl(vo_mpegpes_fd,VIDEO_SET_BLANK, false) < 0)){ perror("DVB VIDEO SET BLANK: "); return -1;