annotate libaf/af_format.h @ 8167:e8832e66babd

New features: -- Support for runtime cpu detection -- Stand alone compile of libaf -- Unlimited number of channels (compiletime switch) -- Sample format defined by bit-fields -- New formats: float, A-Law and mu-law -- Format conversion set in human readable format i.e. format=4:us_be to set 32 bit unsigned big endian output -- Format reporting in human readable format -- Volume control has only one parameter for setting the volume i.e. volume=-10.0:1:0:1 to set atenuation = -10dB
author anders
date Tue, 12 Nov 2002 12:33:56 +0000
parents
children 06d7ef3c7b01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8167
e8832e66babd New features:
anders
parents:
diff changeset
1 /* The sample format system used lin libaf is based on bitmasks. The
e8832e66babd New features:
anders
parents:
diff changeset
2 format definition only refers to the storage format not the
e8832e66babd New features:
anders
parents:
diff changeset
3 resolution. */
e8832e66babd New features:
anders
parents:
diff changeset
4
e8832e66babd New features:
anders
parents:
diff changeset
5 // Endianess
e8832e66babd New features:
anders
parents:
diff changeset
6 #define AF_FORMAT_BE (0<<0) // Big Endian
e8832e66babd New features:
anders
parents:
diff changeset
7 #define AF_FORMAT_LE (1<<0) // Little Endian
e8832e66babd New features:
anders
parents:
diff changeset
8 #define AF_FORMAT_END_MASK (1<<0)
e8832e66babd New features:
anders
parents:
diff changeset
9
e8832e66babd New features:
anders
parents:
diff changeset
10 #if WORDS_BIGENDIAN // Native endian of cpu
e8832e66babd New features:
anders
parents:
diff changeset
11 #define AF_FORMAT_NE AF_FORMAT_BE
e8832e66babd New features:
anders
parents:
diff changeset
12 #else
e8832e66babd New features:
anders
parents:
diff changeset
13 #define AF_FORMAT_NE AF_FORMAT_LE
e8832e66babd New features:
anders
parents:
diff changeset
14 #endif
e8832e66babd New features:
anders
parents:
diff changeset
15
e8832e66babd New features:
anders
parents:
diff changeset
16 // Signed/unsigned
e8832e66babd New features:
anders
parents:
diff changeset
17 #define AF_FORMAT_SI (0<<1) // SIgned
e8832e66babd New features:
anders
parents:
diff changeset
18 #define AF_FORMAT_US (1<<1) // Un Signed
e8832e66babd New features:
anders
parents:
diff changeset
19 #define AF_FORMAT_SIGN_MASK (1<<1)
e8832e66babd New features:
anders
parents:
diff changeset
20
e8832e66babd New features:
anders
parents:
diff changeset
21 // Fixed of floating point
e8832e66babd New features:
anders
parents:
diff changeset
22 #define AF_FORMAT_I (0<<2) // Int
e8832e66babd New features:
anders
parents:
diff changeset
23 #define AF_FORMAT_F (1<<2) // Foating point
e8832e66babd New features:
anders
parents:
diff changeset
24 #define AF_FORMAT_POINT_MASK (1<<2)
e8832e66babd New features:
anders
parents:
diff changeset
25
e8832e66babd New features:
anders
parents:
diff changeset
26 // Special flags refering to non pcm data
e8832e66babd New features:
anders
parents:
diff changeset
27 #define AF_FORMAT_MU_LAW (1<<3) //
e8832e66babd New features:
anders
parents:
diff changeset
28 #define AF_FORMAT_A_LAW (2<<3) //
e8832e66babd New features:
anders
parents:
diff changeset
29 #define AF_FORMAT_MPEG2 (3<<3) // MPEG(2) audio
e8832e66babd New features:
anders
parents:
diff changeset
30 #define AF_FORMAT_AC3 (4<<3) // Dolby Digital AC3
e8832e66babd New features:
anders
parents:
diff changeset
31 #define AF_FORMAT_IMA_ADPCM AF_FORMAT_LE|AF_FORMAT_SI // Same as 16 bit signed int
e8832e66babd New features:
anders
parents:
diff changeset
32 #define AF_FORMAT_SPECIAL_MASK (7<<3)