CVS: main/libao2 ao_alsa5.c,1.9,1.10 ao_alsa9.c,1.13,1.14 ao_nas.c,1.3,1.4 ao_oss.c,1.20,1.21
Update of /cvsroot/mplayer/main/libao2 In directory mail:/var/tmp.root/cvs-serv6353 Modified Files: ao_alsa5.c ao_alsa9.c ao_nas.c ao_oss.c Log Message: AFMT_AC3 autodetect/fallback to S16 Index: ao_alsa5.c =================================================================== RCS file: /cvsroot/mplayer/main/libao2/ao_alsa5.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ao_alsa5.c 24 Dec 2001 10:35:42 -0000 1.9 +++ ao_alsa5.c 22 Apr 2002 22:33:06 -0000 1.10 @@ -87,9 +87,15 @@ case AFMT_U16_BE: alsa_format.format = SND_PCM_SFMT_U16_BE; break; +#ifndef WORDS_BIGENDIAN + case AFMT_AC3: +#endif case AFMT_S16_LE: alsa_format.format = SND_PCM_SFMT_S16_LE; break; +#ifdef WORDS_BIGENDIAN + case AFMT_AC3: +#endif case AFMT_S16_BE: alsa_format.format = SND_PCM_SFMT_S16_BE; break; Index: ao_alsa9.c =================================================================== RCS file: /cvsroot/mplayer/main/libao2/ao_alsa9.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- ao_alsa9.c 26 Nov 2001 02:16:01 -0000 1.13 +++ ao_alsa9.c 22 Apr 2002 22:33:06 -0000 1.14 @@ -125,9 +125,15 @@ case AFMT_U16_BE: alsa_format = SND_PCM_FORMAT_U16_BE; break; +#ifndef WORDS_BIGENDIAN + case AFMT_AC3: +#endif case AFMT_S16_LE: alsa_format = SND_PCM_FORMAT_S16_LE; break; +#ifdef WORDS_BIGENDIAN + case AFMT_AC3: +#endif case AFMT_S16_BE: alsa_format = SND_PCM_FORMAT_S16_BE; break; Index: ao_nas.c =================================================================== RCS file: /cvsroot/mplayer/main/libao2/ao_nas.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ao_nas.c 20 Feb 2002 22:45:48 -0000 1.3 +++ ao_nas.c 22 Apr 2002 22:33:06 -0000 1.4 @@ -291,7 +291,13 @@ case AFMT_S8: return AuFormatLinearSigned8; case AFMT_U16_LE: return AuFormatLinearUnsigned16LSB; case AFMT_U16_BE: return AuFormatLinearUnsigned16MSB; +#ifndef WORDS_BIGENDIAN + case AFMT_AC3: +#endif case AFMT_S16_LE: return AuFormatLinearSigned16LSB; +#ifdef WORDS_BIGENDIAN + case AFMT_AC3: +#endif case AFMT_S16_BE: return AuFormatLinearSigned16MSB; case AFMT_MU_LAW: return AuFormatULAW8; default: return 0; Index: ao_oss.c =================================================================== RCS file: /cvsroot/mplayer/main/libao2/ao_oss.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- ao_oss.c 19 Mar 2002 19:16:01 -0000 1.20 +++ ao_oss.c 22 Apr 2002 22:33:06 -0000 1.21 @@ -123,12 +123,18 @@ ao_data.samplerate=rate; ioctl (audio_fd, SNDCTL_DSP_SPEED, &ao_data.samplerate); } - + +ac3_retry: ao_data.format=format; - ioctl (audio_fd, SNDCTL_DSP_SETFMT, &ao_data.format); - if(format == AFMT_AC3 && ao_data.format != AFMT_AC3) { - printf("Can't set audio device %s to AC3 output\n", dsp); - return 0; + if( ioctl(audio_fd, SNDCTL_DSP_SETFMT, &ao_data.format)<0 || + ao_data.format != format) if(format == AFMT_AC3){ + printf("Can't set audio device %s to AC3 output, trying S16...\n", dsp); +#ifdef WORDS_BIGENDIAN + format=AFMT_S16_BE; +#else + format=AFMT_S16_LE; +#endif + goto ac3_retry; } printf("audio_setup: sample format: %s (requested: %s)\n", audio_out_format_name(ao_data.format), audio_out_format_name(format));
participants (1)
-
Arpi of Ize