Author: stippi Date: 2010-09-14 14:24:09 +0200 (Tue, 14 Sep 2010) New Revision: 38645 Changeset: http://dev.haiku-os.org/changeset/38645 Added: haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/Jamfile haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/config.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_bits.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_buffer.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_callbacks.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_echo.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_header.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_jitter.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_preprocess.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_resampler.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_stereo.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_types.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/COPYING haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/_kiss_fft_guts.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/arch.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/bits.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/buffer.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/cb_search.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/cb_search.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/cb_search_arm4.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/cb_search_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/cb_search_sse.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/exc_10_16_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/exc_10_32_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/exc_20_32_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/exc_5_256_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/exc_5_64_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/exc_8_128_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/fftwrap.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/fftwrap.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/filterbank.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/filterbank.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/filters.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/filters.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/filters_arm4.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/filters_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/filters_sse.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/fixed_arm4.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/fixed_arm5e.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/fixed_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/fixed_debug.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/fixed_generic.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/gain_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/gain_table_lbr.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/hexc_10_32_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/hexc_table.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/high_lsp_tables.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/jitter.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/kiss_fft.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/kiss_fft.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/kiss_fftr.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/kiss_fftr.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/lpc.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/lpc.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/lpc_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/lsp.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/lsp.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/lsp_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/lsp_tables_nb.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/ltp.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/ltp.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/ltp_arm4.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/ltp_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/ltp_sse.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/math_approx.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/mdf.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/misc_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/modes.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/modes.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/modes_wb.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/nb_celp.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/nb_celp.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/os_support.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/preprocess.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/pseudofloat.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/quant_lsp.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/quant_lsp.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/quant_lsp_bfin.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/resample.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/resample_sse.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/sb_celp.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/sb_celp.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/scal.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/smallft.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/smallft.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/speex.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/speex_callbacks.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/speex_header.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/stack_alloc.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/stereo.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/vbr.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/vbr.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/vorbis_psy.h haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/vq.c haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/libspeex/vq.h [... truncated: 4 added files follow ...] Log: Imported libspeex 1.2rc1 for use in libavcodec's libspeexdec.c. Added: haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/Jamfile =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/Jamfile (rev 0) +++ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/Jamfile 2010-09-14 12:24:09 UTC (rev 38645) @@ -0,0 +1,57 @@ +SubDir HAIKU_TOP src add-ons media plugins ffmpeg libspeex ; + +SubDirHdrs [ FDirName $(SUBDIR) ] ; +SubDirHdrs [ FDirName $(SUBDIR) include ] ; +SubDirSysHdrs [ FDirName $(SUBDIR) include ] ; +SubDirSysHdrs [ FDirName $(SUBDIR) .. libogg include ] ; +# GCC2 needs help finding headers here, too +SubDirHdrs [ FDirName $(SUBDIR) include speex ] ; + +SubDirCcFlags -DHAVE_CONFIG_H -DPIC ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) libspeex ] ; + + +StaticLibrary libspeex_ffmpeg.a : + bits.c + buffer.c + cb_search.c + exc_5_64_table.c + exc_5_256_table.c + exc_8_128_table.c + exc_10_16_table.c + exc_10_32_table.c + exc_20_32_table.c + fftwrap.c + filterbank.c + filters.c + gain_table.c + gain_table_lbr.c + hexc_10_32_table.c + hexc_table.c + high_lsp_tables.c + jitter.c + kiss_fft.c + kiss_fftr.c + lpc.c + lsp.c + lsp_tables_nb.c + ltp.c + mdf.c + modes.c + modes_wb.c + nb_celp.c + preprocess.c + quant_lsp.c + resample.c + sb_celp.c + scal.c + smallft.c + speex.c + speex_callbacks.c + speex_header.c + stereo.c + vbr.c + vq.c + window.c +; Added: haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/config.h =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/config.h (rev 0) +++ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/config.h 2010-09-14 12:24:09 UTC (rev 38645) @@ -0,0 +1,172 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Make use of ARM4 assembly optimizations */ +/* #undef ARM4_ASM */ + +/* Make use of ARM5E assembly optimizations */ +/* #undef ARM5E_ASM */ + +/* Make use of Blackfin assembly optimizations */ +/* #undef BFIN_ASM */ + +/* Disable all parts of the API that are using floats */ +/* #undef DISABLE_FLOAT_API */ + +/* Disable VBR and VAD from the codec */ +/* #undef DISABLE_VBR */ + +/* Enable valgrind extra checks */ +/* #undef ENABLE_VALGRIND */ + +/* Symbol visibility prefix */ +#if __GNUC__ >= 3 +# define EXPORT __attribute__((visibility("default"))) +#else +# define EXPORT +#endif + +/* Debug fixed-point implementation */ +/* #undef FIXED_DEBUG */ + +/* Compile as fixed-point */ +/* #undef FIXED_POINT */ + +/* Compile as floating-point */ +#define FLOATING_POINT /**/ + +/* Define to 1 if you have the <alloca.h> header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the <getopt.h> header file. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the `getopt_long' function. */ +#define HAVE_GETOPT_LONG 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `m' library (-lm). */ +/* #undef HAVE_LIBM */ + +/* Define to 1 if you have the `winmm' library (-lwinmm). */ +/* #undef HAVE_LIBWINMM */ + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the <sys/audioio.h> header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the <sys/soundcard.h> header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 4 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* Version extra */ +#define SPEEX_EXTRA_VERSION "" + +/* Version major */ +#define SPEEX_MAJOR_VERSION 1 + +/* Version micro */ +#define SPEEX_MICRO_VERSION 16 + +/* Version minor */ +#define SPEEX_MINOR_VERSION 1 + +/* Complete version string */ +#define SPEEX_VERSION "1.2rc1" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Enable support for TI C55X DSP */ +/* #undef TI_C55X */ + +/* Make use of alloca */ +/* #undef USE_ALLOCA */ + +/* Use FFTW3 for FFT */ +/* #undef USE_GPL_FFTW3 */ + +/* Use Intel Math Kernel Library for FFT */ +/* #undef USE_INTEL_MKL */ + +/* Use KISS Fast Fourier Transform */ +/* #undef USE_KISS_FFT */ + +/* Use FFT from OggVorbis */ +#define USE_SMALLFT /**/ + +/* Use C99 variable-size arrays */ +#if __GNUC__ >= 3 +# define VAR_ARRAYS /**/ +#endif + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +/* #undef WORDS_BIGENDIAN */ + +/* Enable SSE support */ +/* #undef _USE_SSE */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to equivalent of C99 restrict keyword, or to nothing if this is not + supported. Do not define if restrict is supported directly. */ +#define restrict __restrict Added: haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex.h =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex.h (rev 0) +++ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex.h 2010-09-14 12:24:09 UTC (rev 38645) @@ -0,0 +1,424 @@ +/* Copyright (C) 2002-2006 Jean-Marc Valin*/ +/** + @file speex.h + @brief Describes the different modes of the codec +*/ +/* + 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. + +*/ + +#ifndef SPEEX_H +#define SPEEX_H +/** @defgroup Codec Speex encoder and decoder + * This is the Speex codec itself. + * @{ + */ + +#include "speex/speex_bits.h" +#include "speex/speex_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Values allowed for *ctl() requests */ + +/** Set enhancement on/off (decoder only) */ +#define SPEEX_SET_ENH 0 +/** Get enhancement state (decoder only) */ +#define SPEEX_GET_ENH 1 + +/*Would be SPEEX_SET_FRAME_SIZE, but it's (currently) invalid*/ +/** Obtain frame size used by encoder/decoder */ +#define SPEEX_GET_FRAME_SIZE 3 + +/** Set quality value */ +#define SPEEX_SET_QUALITY 4 +/** Get current quality setting */ +/* #define SPEEX_GET_QUALITY 5 -- Doesn't make much sense, does it? */ + +/** Set sub-mode to use */ +#define SPEEX_SET_MODE 6 +/** Get current sub-mode in use */ +#define SPEEX_GET_MODE 7 + +/** Set low-band sub-mode to use (wideband only)*/ +#define SPEEX_SET_LOW_MODE 8 +/** Get current low-band mode in use (wideband only)*/ +#define SPEEX_GET_LOW_MODE 9 + +/** Set high-band sub-mode to use (wideband only)*/ +#define SPEEX_SET_HIGH_MODE 10 +/** Get current high-band mode in use (wideband only)*/ +#define SPEEX_GET_HIGH_MODE 11 + +/** Set VBR on (1) or off (0) */ +#define SPEEX_SET_VBR 12 +/** Get VBR status (1 for on, 0 for off) */ +#define SPEEX_GET_VBR 13 + +/** Set quality value for VBR encoding (0-10) */ +#define SPEEX_SET_VBR_QUALITY 14 +/** Get current quality value for VBR encoding (0-10) */ +#define SPEEX_GET_VBR_QUALITY 15 + +/** Set complexity of the encoder (0-10) */ +#define SPEEX_SET_COMPLEXITY 16 +/** Get current complexity of the encoder (0-10) */ +#define SPEEX_GET_COMPLEXITY 17 + +/** Set bit-rate used by the encoder (or lower) */ +#define SPEEX_SET_BITRATE 18 +/** Get current bit-rate used by the encoder or decoder */ +#define SPEEX_GET_BITRATE 19 + +/** Define a handler function for in-band Speex request*/ +#define SPEEX_SET_HANDLER 20 + +/** Define a handler function for in-band user-defined request*/ +#define SPEEX_SET_USER_HANDLER 22 + +/** Set sampling rate used in bit-rate computation */ +#define SPEEX_SET_SAMPLING_RATE 24 +/** Get sampling rate used in bit-rate computation */ +#define SPEEX_GET_SAMPLING_RATE 25 + +/** Reset the encoder/decoder memories to zero*/ +#define SPEEX_RESET_STATE 26 + +/** Get VBR info (mostly used internally) */ +#define SPEEX_GET_RELATIVE_QUALITY 29 + +/** Set VAD status (1 for on, 0 for off) */ +#define SPEEX_SET_VAD 30 + +/** Get VAD status (1 for on, 0 for off) */ +#define SPEEX_GET_VAD 31 + +/** Set Average Bit-Rate (ABR) to n bits per seconds */ +#define SPEEX_SET_ABR 32 +/** Get Average Bit-Rate (ABR) setting (in bps) */ +#define SPEEX_GET_ABR 33 + +/** Set DTX status (1 for on, 0 for off) */ +#define SPEEX_SET_DTX 34 +/** Get DTX status (1 for on, 0 for off) */ +#define SPEEX_GET_DTX 35 + +/** Set submode encoding in each frame (1 for yes, 0 for no, setting to no breaks the standard) */ +#define SPEEX_SET_SUBMODE_ENCODING 36 +/** Get submode encoding in each frame */ +#define SPEEX_GET_SUBMODE_ENCODING 37 + +/*#define SPEEX_SET_LOOKAHEAD 38*/ +/** Returns the lookahead used by Speex */ +#define SPEEX_GET_LOOKAHEAD 39 + +/** Sets tuning for packet-loss concealment (expected loss rate) */ +#define SPEEX_SET_PLC_TUNING 40 +/** Gets tuning for PLC */ +#define SPEEX_GET_PLC_TUNING 41 + +/** Sets the max bit-rate allowed in VBR mode */ +#define SPEEX_SET_VBR_MAX_BITRATE 42 +/** Gets the max bit-rate allowed in VBR mode */ +#define SPEEX_GET_VBR_MAX_BITRATE 43 + +/** Turn on/off input/output high-pass filtering */ +#define SPEEX_SET_HIGHPASS 44 +/** Get status of input/output high-pass filtering */ +#define SPEEX_GET_HIGHPASS 45 + +/** Get "activity level" of the last decoded frame, i.e. + how much damage we cause if we remove the frame */ +#define SPEEX_GET_ACTIVITY 47 + + +/* Preserving compatibility:*/ +/** Equivalent to SPEEX_SET_ENH */ +#define SPEEX_SET_PF 0 +/** Equivalent to SPEEX_GET_ENH */ +#define SPEEX_GET_PF 1 + + + + +/* Values allowed for mode queries */ +/** Query the frame size of a mode */ +#define SPEEX_MODE_FRAME_SIZE 0 + +/** Query the size of an encoded frame for a particular sub-mode */ +#define SPEEX_SUBMODE_BITS_PER_FRAME 1 + + + +/** Get major Speex version */ +#define SPEEX_LIB_GET_MAJOR_VERSION 1 +/** Get minor Speex version */ +#define SPEEX_LIB_GET_MINOR_VERSION 3 +/** Get micro Speex version */ +#define SPEEX_LIB_GET_MICRO_VERSION 5 +/** Get extra Speex version */ +#define SPEEX_LIB_GET_EXTRA_VERSION 7 +/** Get Speex version string */ +#define SPEEX_LIB_GET_VERSION_STRING 9 + +/*#define SPEEX_LIB_SET_ALLOC_FUNC 10 +#define SPEEX_LIB_GET_ALLOC_FUNC 11 +#define SPEEX_LIB_SET_FREE_FUNC 12 +#define SPEEX_LIB_GET_FREE_FUNC 13 + +#define SPEEX_LIB_SET_WARNING_FUNC 14 +#define SPEEX_LIB_GET_WARNING_FUNC 15 +#define SPEEX_LIB_SET_ERROR_FUNC 16 +#define SPEEX_LIB_GET_ERROR_FUNC 17 +*/ + +/** Number of defined modes in Speex */ +#define SPEEX_NB_MODES 3 + +/** modeID for the defined narrowband mode */ +#define SPEEX_MODEID_NB 0 + +/** modeID for the defined wideband mode */ +#define SPEEX_MODEID_WB 1 + +/** modeID for the defined ultra-wideband mode */ +#define SPEEX_MODEID_UWB 2 + +struct SpeexMode; + + +/* Prototypes for mode function pointers */ + +/** Encoder state initialization function */ +typedef void *(*encoder_init_func)(const struct SpeexMode *mode); + +/** Encoder state destruction function */ +typedef void (*encoder_destroy_func)(void *st); + +/** Main encoding function */ +typedef int (*encode_func)(void *state, void *in, SpeexBits *bits); + +/** Function for controlling the encoder options */ +typedef int (*encoder_ctl_func)(void *state, int request, void *ptr); + +/** Decoder state initialization function */ +typedef void *(*decoder_init_func)(const struct SpeexMode *mode); + +/** Decoder state destruction function */ +typedef void (*decoder_destroy_func)(void *st); + +/** Main decoding function */ +typedef int (*decode_func)(void *state, SpeexBits *bits, void *out); + +/** Function for controlling the decoder options */ +typedef int (*decoder_ctl_func)(void *state, int request, void *ptr); + + +/** Query function for a mode */ +typedef int (*mode_query_func)(const void *mode, int request, void *ptr); + +/** Struct defining a Speex mode */ +typedef struct SpeexMode { + /** Pointer to the low-level mode data */ + const void *mode; + + /** Pointer to the mode query function */ + mode_query_func query; + + /** The name of the mode (you should not rely on this to identify the mode)*/ + const char *modeName; + + /**ID of the mode*/ + int modeID; + + /**Version number of the bitstream (incremented every time we break + bitstream compatibility*/ + int bitstream_version; + + /** Pointer to encoder initialization function */ + encoder_init_func enc_init; + + /** Pointer to encoder destruction function */ + encoder_destroy_func enc_destroy; + + /** Pointer to frame encoding function */ + encode_func enc; + + /** Pointer to decoder initialization function */ + decoder_init_func dec_init; + + /** Pointer to decoder destruction function */ + decoder_destroy_func dec_destroy; + + /** Pointer to frame decoding function */ + decode_func dec; + + /** ioctl-like requests for encoder */ + encoder_ctl_func enc_ctl; + + /** ioctl-like requests for decoder */ + decoder_ctl_func dec_ctl; + +} SpeexMode; + +/** + * Returns a handle to a newly created Speex encoder state structure. For now, + * the "mode" argument can be &nb_mode or &wb_mode . In the future, more modes + * may be added. Note that for now if you have more than one channels to + * encode, you need one state per channel. + * + * @param mode The mode to use (either speex_nb_mode or speex_wb.mode) + * @return A newly created encoder state or NULL if state allocation fails + */ +void *speex_encoder_init(const SpeexMode *mode); + +/** Frees all resources associated to an existing Speex encoder state. + * @param state Encoder state to be destroyed */ +void speex_encoder_destroy(void *state); + +/** Uses an existing encoder state to encode one frame of speech pointed to by + "in". The encoded bit-stream is saved in "bits". + @param state Encoder state + @param in Frame that will be encoded with a +-2^15 range. This data MAY be + overwritten by the encoder and should be considered uninitialised + after the call. + @param bits Bit-stream where the data will be written + @return 0 if frame needs not be transmitted (DTX only), 1 otherwise + */ +int speex_encode(void *state, float *in, SpeexBits *bits); + +/** Uses an existing encoder state to encode one frame of speech pointed to by + "in". The encoded bit-stream is saved in "bits". + @param state Encoder state + @param in Frame that will be encoded with a +-2^15 range + @param bits Bit-stream where the data will be written + @return 0 if frame needs not be transmitted (DTX only), 1 otherwise + */ +int speex_encode_int(void *state, spx_int16_t *in, SpeexBits *bits); + +/** Used like the ioctl function to control the encoder parameters + * + * @param state Encoder state + * @param request ioctl-type request (one of the SPEEX_* macros) + * @param ptr Data exchanged to-from function + * @return 0 if no error, -1 if request in unknown, -2 for invalid parameter + */ +int speex_encoder_ctl(void *state, int request, void *ptr); + + +/** Returns a handle to a newly created decoder state structure. For now, + * the mode argument can be &nb_mode or &wb_mode . In the future, more modes + * may be added. Note that for now if you have more than one channels to + * decode, you need one state per channel. + * + * @param mode Speex mode (one of speex_nb_mode or speex_wb_mode) + * @return A newly created decoder state or NULL if state allocation fails + */ +void *speex_decoder_init(const SpeexMode *mode); + +/** Frees all resources associated to an existing decoder state. + * + * @param state State to be destroyed + */ +void speex_decoder_destroy(void *state); + +/** Uses an existing decoder state to decode one frame of speech from + * bit-stream bits. The output speech is saved written to out. + * + * @param state Decoder state + * @param bits Bit-stream from which to decode the frame (NULL if the packet was lost) + * @param out Where to write the decoded frame + * @return return status (0 for no error, -1 for end of stream, -2 corrupt stream) + */ +int speex_decode(void *state, SpeexBits *bits, float *out); + +/** Uses an existing decoder state to decode one frame of speech from + * bit-stream bits. The output speech is saved written to out. + * + * @param state Decoder state + * @param bits Bit-stream from which to decode the frame (NULL if the packet was lost) + * @param out Where to write the decoded frame + * @return return status (0 for no error, -1 for end of stream, -2 corrupt stream) + */ +int speex_decode_int(void *state, SpeexBits *bits, spx_int16_t *out); + +/** Used like the ioctl function to control the encoder parameters + * + * @param state Decoder state + * @param request ioctl-type request (one of the SPEEX_* macros) + * @param ptr Data exchanged to-from function + * @return 0 if no error, -1 if request in unknown, -2 for invalid parameter + */ +int speex_decoder_ctl(void *state, int request, void *ptr); + + +/** Query function for mode information + * + * @param mode Speex mode + * @param request ioctl-type request (one of the SPEEX_* macros) + * @param ptr Data exchanged to-from function + * @return 0 if no error, -1 if request in unknown, -2 for invalid parameter + */ +int speex_mode_query(const SpeexMode *mode, int request, void *ptr); + +/** Functions for controlling the behavior of libspeex + * @param request ioctl-type request (one of the SPEEX_LIB_* macros) + * @param ptr Data exchanged to-from function + * @return 0 if no error, -1 if request in unknown, -2 for invalid parameter + */ +int speex_lib_ctl(int request, void *ptr); + +/** Default narrowband mode */ +extern const SpeexMode speex_nb_mode; + +/** Default wideband mode */ +extern const SpeexMode speex_wb_mode; + +/** Default "ultra-wideband" mode */ +extern const SpeexMode speex_uwb_mode; + +/** List of all modes available */ +extern const SpeexMode * const speex_mode_list[SPEEX_NB_MODES]; + +/** Obtain one of the modes available */ +const SpeexMode * speex_lib_get_mode (int mode); + +#ifndef WIN32 +/* We actually override the function in the narrowband case so that we can avoid linking in the wideband stuff */ +#define speex_lib_get_mode(mode) ((mode)==SPEEX_MODEID_NB ? &speex_nb_mode : speex_lib_get_mode (mode)) +#endif + +#ifdef __cplusplus +} +#endif + +/** @}*/ +#endif Added: haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_bits.h =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_bits.h (rev 0) +++ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_bits.h 2010-09-14 12:24:09 UTC (rev 38645) @@ -0,0 +1,174 @@ +/* Copyright (C) 2002 Jean-Marc Valin */ +/** + @file speex_bits.h + @brief Handles bit packing/unpacking +*/ +/* + 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. + +*/ + +#ifndef BITS_H +#define BITS_H +/** @defgroup SpeexBits SpeexBits: Bit-stream manipulations + * This is the structure that holds the bit-stream when encoding or decoding + * with Speex. It allows some manipulations as well. + * @{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** Bit-packing data structure representing (part of) a bit-stream. */ +typedef struct SpeexBits { + char *chars; /**< "raw" data */ + int nbBits; /**< Total number of bits stored in the stream*/ + int charPtr; /**< Position of the byte "cursor" */ + int bitPtr; /**< Position of the bit "cursor" within the current char */ + int owner; /**< Does the struct "own" the "raw" buffer (member "chars") */ + int overflow;/**< Set to one if we try to read past the valid data */ + int buf_size;/**< Allocated size for buffer */ + int reserved1; /**< Reserved for future use */ + void *reserved2; /**< Reserved for future use */ +} SpeexBits; + +/** Initializes and allocates resources for a SpeexBits struct */ +void speex_bits_init(SpeexBits *bits); + +/** Initializes SpeexBits struct using a pre-allocated buffer*/ +void speex_bits_init_buffer(SpeexBits *bits, void *buff, int buf_size); + +/** Sets the bits in a SpeexBits struct to use data from an existing buffer (for decoding without copying data) */ +void speex_bits_set_bit_buffer(SpeexBits *bits, void *buff, int buf_size); + +/** Frees all resources associated to a SpeexBits struct. Right now this does nothing since no resources are allocated, but this could change in the future.*/ +void speex_bits_destroy(SpeexBits *bits); + +/** Resets bits to initial value (just after initialization, erasing content)*/ +void speex_bits_reset(SpeexBits *bits); + +/** Rewind the bit-stream to the beginning (ready for read) without erasing the content */ +void speex_bits_rewind(SpeexBits *bits); + +/** Initializes the bit-stream from the data in an area of memory */ +void speex_bits_read_from(SpeexBits *bits, char *bytes, int len); + +/** Append bytes to the bit-stream + * + * @param bits Bit-stream to operate on + * @param bytes pointer to the bytes what will be appended + * @param len Number of bytes of append + */ +void speex_bits_read_whole_bytes(SpeexBits *bits, char *bytes, int len); + +/** Write the content of a bit-stream to an area of memory + * + * @param bits Bit-stream to operate on + * @param bytes Memory location where to write the bits + * @param max_len Maximum number of bytes to write (i.e. size of the "bytes" buffer) + * @return Number of bytes written to the "bytes" buffer +*/ +int speex_bits_write(SpeexBits *bits, char *bytes, int max_len); + +/** Like speex_bits_write, but writes only the complete bytes in the stream. Also removes the written bytes from the stream */ +int speex_bits_write_whole_bytes(SpeexBits *bits, char *bytes, int max_len); + +/** Append bits to the bit-stream + * @param bits Bit-stream to operate on + * @param data Value to append as integer + * @param nbBits number of bits to consider in "data" + */ +void speex_bits_pack(SpeexBits *bits, int data, int nbBits); + +/** Interpret the next bits in the bit-stream as a signed integer + * + * @param bits Bit-stream to operate on + * @param nbBits Number of bits to interpret + * @return A signed integer represented by the bits read + */ +int speex_bits_unpack_signed(SpeexBits *bits, int nbBits); + +/** Interpret the next bits in the bit-stream as an unsigned integer + * + * @param bits Bit-stream to operate on + * @param nbBits Number of bits to interpret + * @return An unsigned integer represented by the bits read + */ +unsigned int speex_bits_unpack_unsigned(SpeexBits *bits, int nbBits); + +/** Returns the number of bytes in the bit-stream, including the last one even if it is not "full" + * + * @param bits Bit-stream to operate on + * @return Number of bytes in the stream + */ +int speex_bits_nbytes(SpeexBits *bits); + +/** Same as speex_bits_unpack_unsigned, but without modifying the cursor position + * + * @param bits Bit-stream to operate on + * @param nbBits Number of bits to look for + * @return Value of the bits peeked, interpreted as unsigned + */ +unsigned int speex_bits_peek_unsigned(SpeexBits *bits, int nbBits); + +/** Get the value of the next bit in the stream, without modifying the + * "cursor" position + * + * @param bits Bit-stream to operate on + * @return Value of the bit peeked (one bit only) + */ +int speex_bits_peek(SpeexBits *bits); + +/** Advances the position of the "bit cursor" in the stream + * + * @param bits Bit-stream to operate on + * @param n Number of bits to advance + */ +void speex_bits_advance(SpeexBits *bits, int n); + +/** Returns the number of bits remaining to be read in a stream + * + * @param bits Bit-stream to operate on + * @return Number of bits that can still be read from the stream + */ +int speex_bits_remaining(SpeexBits *bits); + +/** Insert a terminator so that the data can be sent as a packet while auto-detecting + * the number of frames in each packet + * + * @param bits Bit-stream to operate on + */ +void speex_bits_insert_terminator(SpeexBits *bits); + +#ifdef __cplusplus +} +#endif + +/* @} */ +#endif Added: haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_buffer.h =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_buffer.h (rev 0) +++ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_buffer.h 2010-09-14 12:24:09 UTC (rev 38645) @@ -0,0 +1,68 @@ +/* Copyright (C) 2007 Jean-Marc Valin + + File: speex_buffer.h + This is a very simple ring buffer implementation. It is not thread-safe + so you need to do your own locking. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. 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. + + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +*/ + +#ifndef SPEEX_BUFFER_H +#define SPEEX_BUFFER_H + +#include "speex/speex_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct SpeexBuffer_; +typedef struct SpeexBuffer_ SpeexBuffer; + +SpeexBuffer *speex_buffer_init(int size); + +void speex_buffer_destroy(SpeexBuffer *st); + +int speex_buffer_write(SpeexBuffer *st, void *data, int len); + +int speex_buffer_writezeros(SpeexBuffer *st, int len); + +int speex_buffer_read(SpeexBuffer *st, void *data, int len); + +int speex_buffer_get_available(SpeexBuffer *st); + +int speex_buffer_resize(SpeexBuffer *st, int len); + +#ifdef __cplusplus +} +#endif + +#endif + + + + Added: haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_callbacks.h =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_callbacks.h (rev 0) +++ haiku/trunk/src/add-ons/media/plugins/ffmpeg/libspeex/include/speex/speex_callbacks.h 2010-09-14 12:24:09 UTC (rev 38645) @@ -0,0 +1,134 @@ +/* Copyright (C) 2002 Jean-Marc Valin*/ +/** + @file speex_callbacks.h + @brief Describes callback handling and in-band signalling +*/ +/* + 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. + +*/ + +#ifndef SPEEX_CALLBACKS_H +#define SPEEX_CALLBACKS_H +/** @defgroup SpeexCallbacks Various definitions for Speex callbacks supported by the decoder. + * @{ + */ + +#include "speex.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** Total number of callbacks */ +#define SPEEX_MAX_CALLBACKS 16 + +/* Describes all the in-band requests */ + +/*These are 1-bit requests*/ +/** Request for perceptual enhancement (1 for on, 0 for off) */ +#define SPEEX_INBAND_ENH_REQUEST 0 +/** Reserved */ +#define SPEEX_INBAND_RESERVED1 1 + +/*These are 4-bit requests*/ +/** Request for a mode change */ +#define SPEEX_INBAND_MODE_REQUEST 2 +/** Request for a low mode change */ +#define SPEEX_INBAND_LOW_MODE_REQUEST 3 +/** Request for a high mode change */ +#define SPEEX_INBAND_HIGH_MODE_REQUEST 4 +/** Request for VBR (1 on, 0 off) */ +#define SPEEX_INBAND_VBR_QUALITY_REQUEST 5 +/** Request to be sent acknowledge */ +#define SPEEX_INBAND_ACKNOWLEDGE_REQUEST 6 +/** Request for VBR (1 for on, 0 for off) */ [... truncated: 27465 lines follow ...]