[Mplayer-cvslog] CVS: main/libao2 afmt.h,NONE,1.1 ao_alsa5.c,1.4,1.5 ao_alsa9.c,1.1,1.2 ao_oss.c,1.4,1.5 ao_sun.c,1.1,1.2 audio_out.c,1.7,1.8
GEREOFFY
arpi_esp at users.sourceforge.net
Sat Jun 9 01:31:08 CEST 2001
Update of /cvsroot/mplayer/main/libao2
In directory usw-pr-cvs1:/tmp/cvs-serv30729
Modified Files:
ao_alsa5.c ao_alsa9.c ao_oss.c ao_sun.c audio_out.c
Added Files:
afmt.h
Log Message:
fixed AFMT_ stuff (inclue afmt.h)
--- NEW FILE ---
/* Defines that AFMT_ stuff */
#ifdef HAVE_SYS_SOUNDCARD_H
#include <sys/soundcard.h> /* For AFMT_* on linux */
#endif
/* standard, old OSS audio formats */
#ifndef AFMT_MU_LAW
# define AFMT_MU_LAW 0x00000001
# define AFMT_A_LAW 0x00000002
# define AFMT_IMA_ADPCM 0x00000004
# define AFMT_U8 0x00000008
# define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/
# define AFMT_S16_BE 0x00000020 /* Big endian signed 16 */
# define AFMT_S8 0x00000040
# define AFMT_U16_LE 0x00000080 /* Little endian U16 */
# define AFMT_U16_BE 0x00000100 /* Big endian U16 */
#endif
#ifndef AFMT_MPEG
# define AFMT_MPEG 0x00000200 /* MPEG (2) audio */
#endif
#ifndef AFMT_AC3
# define AFMT_AC3 0x00000400 /* Dolby Digital AC3 */
#endif
/* 32 bit formats (MSB aligned) formats */
#ifndef AFMT_S32_LE
# define AFMT_S32_LE 0x00001000
# define AFMT_S32_BE 0x00002000
#endif
Index: ao_alsa5.c
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/ao_alsa5.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** ao_alsa5.c 2001/06/08 13:35:24 1.4
--- ao_alsa5.c 2001/06/08 23:31:06 1.5
***************
*** 8,12 ****
#include <errno.h>
- #include <sys/soundcard.h> /* AFMT_* */
#include <sys/asoundlib.h>
--- 8,11 ----
***************
*** 15,18 ****
--- 14,18 ----
#include "audio_out.h"
#include "audio_out_internal.h"
+ #include "afmt.h"
extern int verbose;
Index: ao_alsa9.c
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/ao_alsa9.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ao_alsa9.c 2001/06/07 15:43:47 1.1
--- ao_alsa9.c 2001/06/08 23:31:06 1.2
***************
*** 6,10 ****
#include <errno.h>
- #include <sys/soundcard.h> /* AFMT_* */
#include <sys/asoundlib.h>
--- 6,9 ----
***************
*** 13,16 ****
--- 12,16 ----
#include "audio_out.h"
#include "audio_out_internal.h"
+ #include "afmt.h"
extern int verbose;
Index: ao_oss.c
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/ao_oss.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** ao_oss.c 2001/06/05 18:40:44 1.4
--- ao_oss.c 2001/06/08 23:31:06 1.5
***************
*** 14,17 ****
--- 14,18 ----
#include "audio_out.h"
#include "audio_out_internal.h"
+ //#include "afmt.h"
static ao_info_t info =
Index: ao_sun.c
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/ao_sun.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ao_sun.c 2001/06/06 19:10:47 1.1
--- ao_sun.c 2001/06/08 23:31:06 1.2
***************
*** 17,20 ****
--- 17,21 ----
#include "audio_out.h"
#include "audio_out_internal.h"
+ #include "afmt.h"
static ao_info_t info =
***************
*** 47,50 ****
--- 48,72 ----
static int audio_fd=-1;
+ // convert an OSS audio format specification into a sun audio encoding
+ static int oss2sunfmt(int oss_format)
+ {
+ switch (oss_format){
+ case AFMT_MU_LAW:
+ return AUDIO_ENCODING_ULAW;
+ case AFMT_A_LAW:
+ return AUDIO_ENCODING_ALAW;
+ case AFMT_S16_LE:
+ return AUDIO_ENCODING_LINEAR;
+ case AFMT_U8:
+ return AUDIO_ENCODING_LINEAR8;
+ #ifdef AUDIO_ENCODING_DVI // Missing on NetBSD...
+ case AFMT_IMA_ADPCM:
+ return AUDIO_ENCODING_DVI;
+ #endif
+ default:
+ return AUDIO_ENCODING_NONE;
+ }
+ }
+
// to set/get/query special features/parameters
static int control(int cmd,int arg){
***************
*** 77,82 ****
AUDIO_INITINFO(&info);
! info.play.encoding = ao_format = format;
! info.play.precision = (format==AUDIO_ENCODING_LINEAR? AUDIO_PRECISION_16:AUDIO_PRECISION_8);
info.play.channels = ao_channels = channels;
--ao_channels;
--- 99,104 ----
AUDIO_INITINFO(&info);
! info.play.encoding = oss2sunfmt(ao_format = format);
! info.play.precision = (format==AFMT_S16_LE? AUDIO_PRECISION_16:AUDIO_PRECISION_8);
info.play.channels = ao_channels = channels;
--ao_channels;
***************
*** 85,92 ****
info.play.eof = 0;
if(ioctl (audio_fd, AUDIO_SETINFO, &info)<0)
! printf("audio_setup: your card doesn't support %d Hz samplerate\n",rate);
! byte_per_sec = (channels
! * (format==AUDIO_ENCODING_LINEAR ? 16 : 8)
! * rate);
ao_outburst=byte_per_sec > 100000 ? 16384 : 8192;
queued_bursts = 0;
--- 107,112 ----
info.play.eof = 0;
if(ioctl (audio_fd, AUDIO_SETINFO, &info)<0)
! printf("audio_setup: your card doesn't support %d channel, %s, %d Hz samplerate\n",channels,audio_out_format_name(format),rate);
! byte_per_sec = (channels * info.play.precision * rate);
ao_outburst=byte_per_sec > 100000 ? 16384 : 8192;
queued_bursts = 0;
***************
*** 114,117 ****
--- 134,139 ----
}
#ifdef __svr4__
+ // remove the 0 bytes from the above ao_buffersize measurement from the
+ // audio driver's STREAMS queue
ioctl(audio_fd, I_FLUSH, FLUSHW);
#endif
***************
*** 133,136 ****
--- 155,159 ----
#ifdef __svr4__
+ // throw away buffered data in the audio driver's STREAMS queue
ioctl(audio_fd, I_FLUSH, FLUSHW);
#endif
***************
*** 145,150 ****
AUDIO_INITINFO(&info);
! info.play.encoding = ao_format;
! info.play.precision = (ao_format==AUDIO_ENCODING_LINEAR? AUDIO_PRECISION_16:AUDIO_PRECISION_8);
info.play.channels = ao_channels+1;
info.play.sample_rate = ao_samplerate;
--- 168,173 ----
AUDIO_INITINFO(&info);
! info.play.encoding = oss2sunfmt(ao_format);
! info.play.precision = (ao_format==AFMT_S16_LE? AUDIO_PRECISION_16:AUDIO_PRECISION_8);
info.play.channels = ao_channels+1;
info.play.sample_rate = ao_samplerate;
Index: audio_out.c
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/audio_out.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** audio_out.c 2001/06/07 13:06:03 1.7
--- audio_out.c 2001/06/08 23:31:06 1.8
***************
*** 3,26 ****
#include "../config.h"
-
#include "audio_out.h"
!
! #include <sys/soundcard.h> /* AFMT_* */
!
! #ifndef SOUNCARD_H
! # define AFMT_MU_LAW 0x00000001
! # define AFMT_A_LAW 0x00000002
! # define AFMT_IMA_ADPCM 0x00000004
! # define AFMT_U8 0x00000008
! # define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/
! # define AFMT_S16_BE 0x00000020 /* Big endian signed 16 */
! # define AFMT_S8 0x00000040
! # define AFMT_U16_LE 0x00000080 /* Little endian U16 */
! # define AFMT_U16_BE 0x00000100 /* Big endian U16 */
! # define AFMT_MPEG 0x00000200 /* MPEG (2) audio */
! /* 32 bit formats (MSB aligned) formats */
! # define AFMT_S32_LE 0x00001000
! # define AFMT_S32_BE 0x00002000
! #endif
// there are some globals:
--- 3,8 ----
#include "../config.h"
#include "audio_out.h"
! #include "afmt.h"
// there are some globals:
***************
*** 100,107 ****
case AFMT_MPEG:
return("MPEG (2) audio");
case AFMT_S32_LE:
! return("Signed 32-bit (Little-Endian");
case AFMT_S32_BE:
! return("Signed 32-bit (Big-Endian");
}
return("Unknown");
--- 82,95 ----
case AFMT_MPEG:
return("MPEG (2) audio");
+ // the following two formats are not available with old linux kernel
+ // headers (e.g. in 2.2.16)
+ #ifdef AFMT_S32_LE
case AFMT_S32_LE:
! return("Signed 32-bit (Little-Endian)");
! #endif
! #ifdef AFMT_S32_BE
case AFMT_S32_BE:
! return("Signed 32-bit (Big-Endian)");
! #endif
}
return("Unknown");
_______________________________________________
Mplayer-cvslog mailing list
Mplayer-cvslog at lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog
More information about the MPlayer-cvslog
mailing list