1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-24 15:52:25 +00:00

when :card isn't specified by the user search the first available card

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25586 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
nicodvb 2008-01-02 20:34:48 +00:00
parent f09d652df8
commit 1b3cb7845a
2 changed files with 32 additions and 2 deletions

View File

@ -139,7 +139,7 @@ static int init_device(int card)
static int preinit(const char *arg) static int preinit(const char *arg)
{ {
int card = 1; int card = -1;
char *ao_file = NULL; char *ao_file = NULL;
opt_t subopts[] = { opt_t subopts[] = {
@ -153,6 +153,21 @@ static int preinit(const char *arg)
mp_msg(MSGT_VO, MSGL_ERR, "AO_MPEGPES, Unrecognized options\n"); mp_msg(MSGT_VO, MSGL_ERR, "AO_MPEGPES, Unrecognized options\n");
return -1; return -1;
} }
if(card==-1)
{
//search the first usable card
int n;
char file[30];
for(n=0; n<4; n++)
{
sprintf(file, "/dev/dvb/adapter%d/audio0", n);
if(access(file, F_OK | W_OK)==0)
{
card = n+1;
break;
}
}
}
if((card < 1) || (card > 4)) if((card < 1) || (card > 4))
{ {
mp_msg(MSGT_VO, MSGL_ERR, "DVB card number must be between 1 and 4\n"); mp_msg(MSGT_VO, MSGL_ERR, "DVB card number must be between 1 and 4\n");

View File

@ -98,7 +98,7 @@ config(uint32_t s_width, uint32_t s_height, uint32_t width, uint32_t height, uin
static int preinit(const char *arg){ static int preinit(const char *arg){
#ifdef HAVE_DVB #ifdef HAVE_DVB
int card = 0; int card = -1;
char vo_file[30], ao_file[30], *tmp; char vo_file[30], ao_file[30], *tmp;
if(arg != NULL){ if(arg != NULL){
@ -115,6 +115,21 @@ static int preinit(const char *arg){
if(!arg){ if(!arg){
//|O_NONBLOCK //|O_NONBLOCK
//search the first usable card
if(card==-1) {
int n;
for(n=0; n<4; n++) {
sprintf(vo_file, "/dev/dvb/adapter%d/video0", n);
if(access(vo_file, F_OK | W_OK)==0) {
card = n;
break;
}
}
}
if(card==-1) {
mp_msg(MSGT_VO,MSGL_INFO, "Couldn't find a usable dvb video device, exiting\n");
return -1;
}
#ifndef HAVE_DVB_HEAD #ifndef HAVE_DVB_HEAD
mp_msg(MSGT_VO,MSGL_INFO, "Opening /dev/ost/video+audio\n"); mp_msg(MSGT_VO,MSGL_INFO, "Opening /dev/ost/video+audio\n");
sprintf(vo_file, "/dev/ost/video"); sprintf(vo_file, "/dev/ost/video");