diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2008-10-26 02:04:44 +0200 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2008-10-26 02:04:44 +0200 | 
| commit | f0fc782355d3cf567694e096828a9c6bf177837e (patch) | |
| tree | 99c8765af81ca8b7d78e43cca5e46c2c35d96a41 /sbc/formats.h | |
| parent | 0242f1216747b69686ae11fdb1de6f6badfc1f3a (diff) | |
Let the decoder write Sun/NeXT audio S16_BE files
Diffstat (limited to 'sbc/formats.h')
| -rw-r--r-- | sbc/formats.h | 55 | 
1 files changed, 55 insertions, 0 deletions
| diff --git a/sbc/formats.h b/sbc/formats.h new file mode 100644 index 00000000..eabbaf96 --- /dev/null +++ b/sbc/formats.h @@ -0,0 +1,55 @@ +/* + * + *  Bluetooth low-complexity, subband codec (SBC) library + * + *  Copyright (C) 2004-2008  Marcel Holtmann <marcel@holtmann.org> + * + * + *  This program is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version. + * + *  This program is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with this program; if not, write to the Free Software + *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA + * + */ + +#include <byteswap.h> + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define COMPOSE_ID(a,b,c,d)	((a) | ((b)<<8) | ((c)<<16) | ((d)<<24)) +#define LE_SHORT(v)		(v) +#define LE_INT(v)		(v) +#define BE_SHORT(v)		bswap_16(v) +#define BE_INT(v)		bswap_32(v) +#elif __BYTE_ORDER == __BIG_ENDIAN +#define COMPOSE_ID(a,b,c,d)	((d) | ((c)<<8) | ((b)<<16) | ((a)<<24)) +#define LE_SHORT(v)		bswap_16(v) +#define LE_INT(v)		bswap_32(v) +#define BE_SHORT(v)		(v) +#define BE_INT(v)		(v) +#else +#error "Wrong endian" +#endif + +#define AU_MAGIC		COMPOSE_ID('.','s','n','d') + +#define AU_FMT_ULAW		1 +#define AU_FMT_LIN8		2 +#define AU_FMT_LIN16		3 + +struct au_header { +	uint32_t magic;		/* '.snd' */ +	uint32_t hdr_size;	/* size of header (min 24) */ +	uint32_t data_size;	/* size of data */ +	uint32_t encoding;	/* see to AU_FMT_XXXX */ +	uint32_t sample_rate;	/* sample rate */ +	uint32_t channels;	/* number of channels (voices) */ +}; | 
