ref: ccc988b82227954959ac53dd7b3d8785c3b53683
parent: 4618eee0927273de24a16c8b0d201716dda7893e
author: Jean-Marc Valin <[email protected]>
date: Thu Jan 31 04:59:15 EST 2008
type abstraction header and header definition (still incomplete)
--- a/libcelt/Makefile.am
+++ b/libcelt/Makefile.am
@@ -2,7 +2,7 @@
#AUTOMAKE_OPTIONS = no-dependencies
-pkginclude_HEADERS = celt.h
+pkginclude_HEADERS = celt.h celt_types.h celt_header.h
#EXTRA_DIST=
#INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir) @OGG_CFLAGS@
@@ -20,8 +20,8 @@
libcelt_la_LDFLAGS = -version-info @CELT_LT_CURRENT@:@CELT_LT_REVISION@:@CELT_LT_AGE@
noinst_HEADERS = arch.h bands.h bitrdec.h bitree.h bitrenc.h cwrs.h \
- ecintrin.h entcode.h entdec.h entenc.h fftwrap.h laplace.h \
- mfrngcod.h mdct.h modes.h os_support.h pgain_table.h pitch.h psy.h \
+ ecintrin.h entcode.h entdec.h entenc.h fftwrap.h laplace.h mdct.h \
+ mfrngcod.h modes.h os_support.h pgain_table.h pitch.h psy.h \
quant_bands.h quant_pitch.h rate.h smallft.h vq.h
noinst_PROGRAMS = testcelt
--- /dev/null
+++ b/libcelt/celt_header.h
@@ -1,0 +1,50 @@
+/* (C) 2008 Jean-Marc Valin, CSIRO
+*/
+/*
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ - Neither the name of the Xiph.org Foundation nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "celt.h"
+
+typedef struct {
+ char codec_id[8];
+ char codec_version[20];
+ int version_id;
+ int header_size;
+ int mode;
+ int sample_rate;
+ int nb_channels;
+ int bytes_per_packet;
+ int extra_headers;
+} CELTHeader;
+
+void celt_init_header(CELTHeader *header, int rate, int nb_channels, const struct CELTMode *m);
+
+int celt_header_to_packet(const CELTHeader *header, char *packet, int size);
+
+int celt_packet_to_header(const char *packet, int size, CELTHeader *header);
--- /dev/null
+++ b/libcelt/celt_types.h
@@ -1,0 +1,139 @@
+/* celt_types.h taken from libogg */
+/********************************************************************
+ * *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
+ * *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
+ * by the Xiph.Org Foundation http://www.xiph.org/ *
+ * *
+ ********************************************************************
+
+ function: #ifdef jail to whip a few platforms into the UNIX ideal.
+ last mod: $Id: os_types.h 7524 2004-08-11 04:20:36Z conrad $
+
+ ********************************************************************/
+/**
+ @file celt_types.h
+ @brief CELT types
+*/
+#ifndef _CELT_TYPES_H
+#define _CELT_TYPES_H
+
+/* Taken from Paul Hsieh's stdint.h */
+#if (defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) )
+#include <stdint.h>
+
+ typedef int16_t celt_int16_t;
+ typedef uint16_t celt_uint16_t;
+ typedef int32_t celt_int32_t;
+ typedef uint32_t celt_uint32_t;
+
+#elif defined(_WIN32)
+
+# if defined(__CYGWIN__)
+# include <_G_config.h>
+ typedef _G_int32_t celt_int32_t;
+ typedef _G_uint32_t celt_uint32_t;
+ typedef _G_int16_t celt_int16_t;
+ typedef _G_uint16_t celt_uint16_t;
+# elif defined(__MINGW32__)
+ typedef short celt_int16_t;
+ typedef unsigned short celt_uint16_t;
+ typedef int celt_int32_t;
+ typedef unsigned int celt_uint32_t;
+# elif defined(__MWERKS__)
+ typedef int celt_int32_t;
+ typedef unsigned int celt_uint32_t;
+ typedef short celt_int16_t;
+ typedef unsigned short celt_uint16_t;
+# else
+ /* MSVC/Borland */
+ typedef __int32 celt_int32_t;
+ typedef unsigned __int32 celt_uint32_t;
+ typedef __int16 celt_int16_t;
+ typedef unsigned __int16 celt_uint16_t;
+# endif
+
+#elif defined(__MACOS__)
+
+# include <sys/types.h>
+ typedef SInt16 celt_int16_t;
+ typedef UInt16 celt_uint16_t;
+ typedef SInt32 celt_int32_t;
+ typedef UInt32 celt_uint32_t;
+
+#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */
+
+# include <sys/types.h>
+ typedef int16_t celt_int16_t;
+ typedef u_int16_t celt_uint16_t;
+ typedef int32_t celt_int32_t;
+ typedef u_int32_t celt_uint32_t;
+
+#elif defined(__BEOS__)
+
+ /* Be */
+# include <inttypes.h>
+ typedef int16_t celt_int16_t;
+ typedef u_int16_t celt_uint16_t;
+ typedef int32_t celt_int32_t;
+ typedef u_int32_t celt_uint32_t;
+
+#elif defined (__EMX__)
+
+ /* OS/2 GCC */
+ typedef short celt_int16_t;
+ typedef unsigned short celt_uint16_t;
+ typedef int celt_int32_t;
+ typedef unsigned int celt_uint32_t;
+
+#elif defined (DJGPP)
+
+ /* DJGPP */
+ typedef short celt_int16_t;
+ typedef int celt_int32_t;
+ typedef unsigned int celt_uint32_t;
+
+#elif defined(R5900)
+
+ /* PS2 EE */
+ typedef int celt_int32_t;
+ typedef unsigned celt_uint32_t;
+ typedef short celt_int16_t;
+
+#elif defined(__SYMBIAN32__)
+
+ /* Symbian GCC */
+ typedef signed short celt_int16_t;
+ typedef unsigned short celt_uint16_t;
+ typedef signed int celt_int32_t;
+ typedef unsigned int celt_uint32_t;
+
+#elif defined(CONFIG_TI_C54X) || defined (CONFIG_TI_C55X)
+
+ typedef short celt_int16_t;
+ typedef unsigned short celt_uint16_t;
+ typedef long celt_int32_t;
+ typedef unsigned long celt_uint32_t;
+
+#elif defined(CONFIG_TI_C6X)
+
+ typedef short celt_int16_t;
+ typedef unsigned short celt_uint16_t;
+ typedef int celt_int32_t;
+ typedef unsigned int celt_uint32_t;
+
+#else
+
+ /* Give up, take a reasonable guess */
+ typedef short celt_int16_t;
+ typedef unsigned short celt_uint16_t;
+ typedef long celt_int32_t;
+ typedef unsigned long celt_uint32_t;
+
+#endif
+
+#endif /* _CELT_TYPES_H */