mirror of
https://github.com/mpv-player/mpv
synced 2024-12-25 00:02:13 +00:00
DVB-HEAD (aka. NEWSTRUCT) detection & support
patch by Dimitrios Dimitrakos <mail@dimitrios.de> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8595 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
a40067b39a
commit
2e399f394d
46
configure
vendored
46
configure
vendored
@ -970,6 +970,7 @@ _vesa=auto
|
|||||||
_fbdev=auto
|
_fbdev=auto
|
||||||
_fbdev_nocopy=no
|
_fbdev_nocopy=no
|
||||||
_dvb=auto
|
_dvb=auto
|
||||||
|
_dvbhead=auto
|
||||||
_dxr2=auto
|
_dxr2=auto
|
||||||
_dxr3=auto
|
_dxr3=auto
|
||||||
_iconv=auto
|
_iconv=auto
|
||||||
@ -1098,6 +1099,8 @@ for ac_option do
|
|||||||
--disable-fbdev) _fbdev=no ;;
|
--disable-fbdev) _fbdev=no ;;
|
||||||
--enable-dvb) _dvb=yes ;;
|
--enable-dvb) _dvb=yes ;;
|
||||||
--disable-dvb) _dvb=no ;;
|
--disable-dvb) _dvb=no ;;
|
||||||
|
--enable-dvbhead) _dvbhead=yes ;;
|
||||||
|
--disable-dvbhead) _dvbhead=no ;;
|
||||||
--enable-dxr2) _dxr2=yes ;;
|
--enable-dxr2) _dxr2=yes ;;
|
||||||
--disable-dxr2) _dxr2=no ;;
|
--disable-dxr2) _dxr2=no ;;
|
||||||
--enable-dxr3) _dxr3=yes ;;
|
--enable-dxr3) _dxr3=yes ;;
|
||||||
@ -2745,7 +2748,50 @@ if test "$_dvb" = yes ; then
|
|||||||
_def_dvb='#define HAVE_DVB 1'
|
_def_dvb='#define HAVE_DVB 1'
|
||||||
_aomodules="mpegpes(dvb) $_aomodules"
|
_aomodules="mpegpes(dvb) $_aomodules"
|
||||||
_vomodules="mpegpes(dvb) $_vomodules"
|
_vomodules="mpegpes(dvb) $_vomodules"
|
||||||
|
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 <sys/poll.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <linux/dvb/dmx.h>
|
||||||
|
#include <linux/dvb/frontend.h>
|
||||||
|
#include <linux/dvb/video.h>
|
||||||
|
#include <linux/dvb/audio.h>
|
||||||
|
int main(void) {return 0;}
|
||||||
|
EOF
|
||||||
|
if cc_check ; then
|
||||||
|
_dvbhead=yes
|
||||||
|
echores "yes"
|
||||||
else
|
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'
|
_def_dvb='#undef HAVE_DVB'
|
||||||
_aomodules="mpegpes(file) $_aomodules"
|
_aomodules="mpegpes(file) $_aomodules"
|
||||||
_vomodules="mpegpes(file) $_vomodules"
|
_vomodules="mpegpes(file) $_vomodules"
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#ifdef DVB_HEAD
|
||||||
|
#define HAVE_DVB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_DVB
|
#ifdef HAVE_DVB
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#endif
|
#endif
|
||||||
@ -15,8 +19,13 @@
|
|||||||
#include "../mp_msg.h"
|
#include "../mp_msg.h"
|
||||||
|
|
||||||
#ifdef HAVE_DVB
|
#ifdef HAVE_DVB
|
||||||
|
#ifndef HAVE_DVB_HEAD
|
||||||
#include <ost/audio.h>
|
#include <ost/audio.h>
|
||||||
audioMixer_t dvb_mixer={255,255};
|
audioMixer_t dvb_mixer={255,255};
|
||||||
|
#else
|
||||||
|
#include </linux/dvb/audio.h>
|
||||||
|
audio_mixer_t dvb_mixer={255,255};
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
extern int vo_mpegpes_fd;
|
extern int vo_mpegpes_fd;
|
||||||
extern int vo_mpegpes_fd2;
|
extern int vo_mpegpes_fd2;
|
||||||
|
@ -26,9 +26,11 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "mp_msg.h"
|
#include "mp_msg.h"
|
||||||
|
#ifdef HAVE_DVB_HEAD
|
||||||
|
#define HAVE_DVB 1
|
||||||
|
#endif
|
||||||
#ifdef HAVE_DVB
|
#ifdef HAVE_DVB
|
||||||
|
#ifndef HAVE_DVB_HEAD
|
||||||
#include <sys/poll.h>
|
#include <sys/poll.h>
|
||||||
|
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
@ -41,6 +43,20 @@
|
|||||||
#include <ost/video.h>
|
#include <ost/video.h>
|
||||||
#include <ost/audio.h>
|
#include <ost/audio.h>
|
||||||
|
|
||||||
|
#else
|
||||||
|
#define true 1
|
||||||
|
#define false 0
|
||||||
|
#include <sys/poll.h>
|
||||||
|
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#include <linux/dvb/dmx.h>
|
||||||
|
#include <linux/dvb/frontend.h>
|
||||||
|
#include <linux/dvb/video.h>
|
||||||
|
#include <linux/dvb/audio.h>
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@ -86,6 +102,7 @@ static uint32_t preinit(const char *arg){
|
|||||||
#ifdef HAVE_DVB
|
#ifdef HAVE_DVB
|
||||||
if(!arg){
|
if(!arg){
|
||||||
//|O_NONBLOCK
|
//|O_NONBLOCK
|
||||||
|
#ifndef HAVE_DVB_HEAD
|
||||||
if((vo_mpegpes_fd = open("/dev/ost/video",O_RDWR)) < 0){
|
if((vo_mpegpes_fd = open("/dev/ost/video",O_RDWR)) < 0){
|
||||||
perror("DVB VIDEO DEVICE: ");
|
perror("DVB VIDEO DEVICE: ");
|
||||||
return -1;
|
return -1;
|
||||||
@ -94,6 +111,16 @@ static uint32_t preinit(const char *arg){
|
|||||||
perror("DVB AUDIO DEVICE: ");
|
perror("DVB AUDIO DEVICE: ");
|
||||||
return -1;
|
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)){
|
if ( (ioctl(vo_mpegpes_fd,VIDEO_SET_BLANK, false) < 0)){
|
||||||
perror("DVB VIDEO SET BLANK: ");
|
perror("DVB VIDEO SET BLANK: ");
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user