introducing 24bit formats and make the values compliant to OSS

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13549 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
alex 2004-10-04 19:05:16 +00:00
parent e40f077b83
commit 83c1543028
2 changed files with 24 additions and 6 deletions

View File

@ -34,6 +34,10 @@ char *audio_out_format_name(int format)
return("Signed 32-bit (Little-Endian)");
case AFMT_S32_BE:
return("Signed 32-bit (Big-Endian)");
case AFMT_S24_LE:
return("Signed 24-bit (Little-Endian)");
case AFMT_S24_BE:
return("Signed 24-bit (Big-Endian)");
case AFMT_FLOAT:
return("Floating Point");
}
@ -54,6 +58,10 @@ int audio_out_format_bits(int format){
case AFMT_S32_BE:
case AFMT_FLOAT:
return 32;
case AFMT_S24_LE:
case AFMT_S24_BE:
return 24;
case AFMT_MU_LAW:
case AFMT_A_LAW:

View File

@ -32,29 +32,39 @@
# 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
/* 24 bit formats from the linux kernel */
#ifndef AFMT_S24_LE
#define AFMT_S24_LE 0x00000800
#define AFMT_S24_BE 0x00001000
#define AFMT_U24_LE 0x00002000
#define AFMT_U24_BE 0x00004000
#endif
/* 32 bit formats from the linux kernel */
#ifndef AFMT_S32_LE
#define AFMT_S32_LE 0x00008000
#define AFMT_S32_BE 0x00010000
#define AFMT_U32_LE 0x00020000
#define AFMT_U32_BE 0x00040000
#endif
/* native endian formats */
#ifndef AFMT_S16_NE
# if WORDS_BIGENDIAN
# define AFMT_S16_NE AFMT_S16_BE
# define AFMT_S24_NE AFMT_S24_BE
# define AFMT_S32_NE AFMT_S32_BE
# else
# define AFMT_S16_NE AFMT_S16_LE
# define AFMT_S24_NE AFMT_S24_LE
# define AFMT_S32_NE AFMT_S32_LE
# endif
#endif
#ifndef AFMT_FLOAT
# define AFMT_FLOAT 0x00004000
# define AFMT_FLOAT 0x00100000
#endif
/* for formats that don't have a corresponding AFMT_* type,
* use the flags from libaf/af_format.h or'ed with this */
#define AFMT_AF_FLAGS 0x70000000