changeset 13548:661718721c92

introducing 24bit formats and make the values compliant to OSS
author alex
date Mon, 04 Oct 2004 19:05:16 +0000
parents 144af0141ac4
children 4604fc855b3a
files libao2/afmt.c libao2/afmt.h
diffstat 2 files changed, 24 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libao2/afmt.c	Mon Oct 04 18:48:38 2004 +0000
+++ b/libao2/afmt.c	Mon Oct 04 19:05:16 2004 +0000
@@ -34,6 +34,10 @@
 	    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 @@
 	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:
--- a/libao2/afmt.h	Mon Oct 04 18:48:38 2004 +0000
+++ b/libao2/afmt.h	Mon Oct 04 19:05:16 2004 +0000
@@ -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
-