summaryrefslogtreecommitdiffstats
path: root/sys/sys/soundcard.h
diff options
context:
space:
mode:
authornetchild <netchild@FreeBSD.org>2005-07-31 16:08:03 +0000
committernetchild <netchild@FreeBSD.org>2005-07-31 16:08:03 +0000
commit8a757cf4981fe5a5c672907593f21538b1fc3d44 (patch)
treec50b4b2e22b53fa42c64a45377c91ce54d5ceabe /sys/sys/soundcard.h
parent5c126adf7d4cd9ff14c418a795a861ab9f198df1 (diff)
downloadFreeBSD-src-8a757cf4981fe5a5c672907593f21538b1fc3d44.zip
FreeBSD-src-8a757cf4981fe5a5c672907593f21538b1fc3d44.tar.gz
OSS defines AFMT_x32_xE as:
1) 32bit data, packed within 32bit (4bytes) boundary. 2) 24bit data, packed within 32bit (4bytes) boundary where the data is stored in the 24 most significant bits and least significant 8 bits are not used and should be set to 0. While this might hold true in few cases, lots of applications (notably mplayer, sweep) really deal / produce 24bit as what they should meant to be: 24bit data / 3bytes per sample. To handle this "true" 24bit pcm format add AFMT_x24_xE, so the in-kernel conversion space did not confuse itself with 32bit variant. You need to rebuild mplayer after installing this change (this header and the upcomming kernel changes), if you want to use this new feature. Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
Diffstat (limited to 'sys/sys/soundcard.h')
-rw-r--r--sys/sys/soundcard.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/sys/soundcard.h b/sys/sys/soundcard.h
index 4ae5fe3..d4c4cc5 100644
--- a/sys/sys/soundcard.h
+++ b/sys/sys/soundcard.h
@@ -180,6 +180,10 @@ struct snd_size {
#define AFMT_S32_BE 0x00002000 /* Big endian signed 32-bit */
#define AFMT_U32_LE 0x00004000 /* Little endian unsigned 32-bit */
#define AFMT_U32_BE 0x00008000 /* Big endian unsigned 32-bit */
+#define AFMT_S24_LE 0x00010000 /* Little endian signed 24-bit */
+#define AFMT_S24_BE 0x00020000 /* Big endian signed 24-bit */
+#define AFMT_U24_LE 0x00040000 /* Little endian unsigned 24-bit */
+#define AFMT_U24_BE 0x00080000 /* Big endian unsigned 24-bit */
#define AFMT_STEREO 0x10000000 /* can do/want stereo */
OpenPOWER on IntegriCloud