diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-02 20:34:48 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-02 20:34:48 +0000 |
commit | 1b3cb7845ad5b695cfbc468d705d86f793cb5838 (patch) | |
tree | df876170c7fa1b470bd19fa2b0e25000a1ca2b8a | |
parent | f09d652df81c2f9b8ec5a258de3144614cd38399 (diff) | |
download | mpv-1b3cb7845ad5b695cfbc468d705d86f793cb5838.tar.bz2 mpv-1b3cb7845ad5b695cfbc468d705d86f793cb5838.tar.xz |
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
-rw-r--r-- | libao2/ao_mpegpes.c | 17 | ||||
-rw-r--r-- | libvo/vo_mpegpes.c | 17 |
2 files changed, 32 insertions, 2 deletions
diff --git a/libao2/ao_mpegpes.c b/libao2/ao_mpegpes.c index 59cba696ec..fe3924f4ca 100644 --- a/libao2/ao_mpegpes.c +++ b/libao2/ao_mpegpes.c @@ -139,7 +139,7 @@ static int init_device(int card) static int preinit(const char *arg) { - int card = 1; + int card = -1; char *ao_file = NULL; opt_t subopts[] = { @@ -153,6 +153,21 @@ static int preinit(const char *arg) mp_msg(MSGT_VO, MSGL_ERR, "AO_MPEGPES, Unrecognized options\n"); 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)) { mp_msg(MSGT_VO, MSGL_ERR, "DVB card number must be between 1 and 4\n"); diff --git a/libvo/vo_mpegpes.c b/libvo/vo_mpegpes.c index 05e81631f7..d251ff75df 100644 --- a/libvo/vo_mpegpes.c +++ b/libvo/vo_mpegpes.c @@ -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){ #ifdef HAVE_DVB - int card = 0; + int card = -1; char vo_file[30], ao_file[30], *tmp; if(arg != NULL){ @@ -115,6 +115,21 @@ static int preinit(const char *arg){ if(!arg){ //|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 mp_msg(MSGT_VO,MSGL_INFO, "Opening /dev/ost/video+audio\n"); sprintf(vo_file, "/dev/ost/video"); |