summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cfg-mplayer.h1
-rw-r--r--libao2/ao_oss.c2
-rw-r--r--mplayer.c32
3 files changed, 31 insertions, 4 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index 8fc4ff2c22..5fe5f74248 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -36,6 +36,7 @@ struct config conf[]={
{"o", "Option -o has been renamed to -vo (video-out), use -vo !\n",
CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
{"vo", &video_driver, CONF_TYPE_STRING, 0, 0, 0},
+ {"ao", &audio_driver, CONF_TYPE_STRING, 0, 0, 0},
{"dsp", &dsp, CONF_TYPE_STRING, 0, 0, 0},
{"mixer", &mixer_device, CONF_TYPE_STRING, 0, 0, 0},
#ifdef HAVE_X11
diff --git a/libao2/ao_oss.c b/libao2/ao_oss.c
index 4c35bb4cfc..5797d737e9 100644
--- a/libao2/ao_oss.c
+++ b/libao2/ao_oss.c
@@ -17,7 +17,7 @@
static ao_info_t info =
{
"OSS/ioctl audio output",
- "null",
+ "oss",
"A'rpi",
""
};
diff --git a/mplayer.c b/mplayer.c
index e09b168cdc..e8d6198d7d 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -434,6 +434,7 @@ int frame_dropping=0; // option 0=no drop 1= drop vo 2= drop decode
char* title="MPlayer";
// screen info:
char* video_driver=NULL; //"mga"; // default
+char* audio_driver=NULL;
int fullscreen=0;
int vidmode=0;
int softzoom=0;
@@ -521,7 +522,17 @@ if ((conffile = get_path("")) == NULL) {
}
printf("\n");
exit(0);
- }
+ }
+ if(audio_driver && strcmp(audio_driver,"help")==0){
+ printf("Available audio output drivers:\n");
+ i=0;
+ while (audio_out_drivers[i]) {
+ const ao_info_t *info = audio_out_drivers[i++]->info;
+ printf("\t%s\t%s\n", info->short_name, info->name);
+ }
+ printf("\n");
+ exit(0);
+ }
#ifdef HAVE_GUI
}
#endif
@@ -544,12 +555,27 @@ if(!filename){
}
}
if(!video_out){
- printf("Invalid video output driver name: %s\n",video_driver);
+ printf("Invalid video output driver name: %s\nUse '-vo help' to get a list of available video drivers.\n",video_driver);
+ return 0;
+ }
+
+// check audio_out driver name:
+ if(!audio_driver)
+ audio_out=audio_out_drivers[0];
+ else
+ for (i=0; audio_out_drivers[i] != NULL; i++){
+ const ao_info_t *info = audio_out_drivers[i]->info;
+ if(strcmp(info->short_name,audio_driver) == 0){
+ audio_out = audio_out_drivers[i];break;
+ }
+ }
+ if (!audio_out){
+ printf("Invalid audio output driver name: %s\nUse '-ao help' to get a list of available audio drivers.\n",audio_driver);
return 0;
}
// check audio_out
-audio_out=audio_out_drivers[0];
+//audio_out=audio_out_drivers[0];
// check codec.conf
if(!parse_codec_cfg(get_path("codecs.conf"))){