aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar ivo <ivo@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-02-26 23:03:53 +0000
committerGravatar ivo <ivo@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-02-26 23:03:53 +0000
commit01191a83924516d7fe1212f707c73d3b401d4b5a (patch)
tree98e1f7ec80e8a76f841ef23f4573b717edf43ab6
parent15bb88b70667eab1730609e02b26079059b62b40 (diff)
Have OSS audio out fall back to s16ne instead of u8 if it can't open the
soundcard for 3+ channels and do it for all audio streams (not only AC3). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14835 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--help/help_mp-en.h2
-rw-r--r--libao2/ao_oss.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/help/help_mp-en.h b/help/help_mp-en.h
index f5b5b14246..cf2d13b403 100644
--- a/help/help_mp-en.h
+++ b/help/help_mp-en.h
@@ -940,7 +940,7 @@ static char help_text[]=
#define MSGTR_AO_OSS_ChanNotFound "[AO OSS] audio_setup: Audio card mixer does not have channel '%s' using default.\n"
#define MSGTR_AO_OSS_CantOpenDev "[AO OSS] audio_setup: Can't open audio device %s: %s\n"
#define MSGTR_AO_OSS_CantMakeFd "[AO OSS] audio_setup: Can't make filedescriptor blocking: %s\n"
-#define MSGTR_AO_OSS_CantSetAC3 "[AO OSS] Can't set audio device %s to AC3 output, trying S16...\n"
+#define MSGTR_AO_OSS_CantSet "[AO OSS] Can't set audio device %s to %s output, trying %s...\n"
#define MSGTR_AO_OSS_CantSetChans "[AO OSS] audio_setup: Failed to set audio device to %d channels.\n"
#define MSGTR_AO_OSS_CantUseGetospace "[AO OSS] audio_setup: driver doesn't support SNDCTL_DSP_GETOSPACE :-(\n"
#define MSGTR_AO_OSS_CantUseSelect "[AO OSS]\n *** Your audio driver DOES NOT support select() ***\n Recompile MPlayer with #undef HAVE_AUDIO_SELECT in config.h !\n\n"
diff --git a/libao2/ao_oss.c b/libao2/ao_oss.c
index ce5d81c78b..121aa009ea 100644
--- a/libao2/ao_oss.c
+++ b/libao2/ao_oss.c
@@ -289,8 +289,9 @@ ac3_retry:
format=AF_FORMAT_S16_NE;
}
if( ioctl(audio_fd, SNDCTL_DSP_SETFMT, &oss_format)<0 ||
- oss_format != format2oss(format)) if(format == AF_FORMAT_AC3){
- mp_msg(MSGT_AO,MSGL_WARN, MSGTR_AO_OSS_CantSetAC3, dsp);
+ oss_format != format2oss(format)) {
+ mp_msg(MSGT_AO,MSGL_WARN, MSGTR_AO_OSS_CantSet, dsp,
+ af_fmt2str_short(format), af_fmt2str_short(AF_FORMAT_S16_NE) );
format=AF_FORMAT_S16_NE;
goto ac3_retry;
}