From 4c2a620cc04fd9fda099794985370419f7416c46 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Mon, 11 May 2020 16:32:55 +0300 Subject: [PATCH] add mad 0.15.1b --- deps/mad/include/mad.h | 964 +++++++++++++++++++++++++++++++++++++++++ deps/mad/lib/libmad.a | Bin 0 -> 176248 bytes 2 files changed, 964 insertions(+) create mode 100644 deps/mad/include/mad.h create mode 100644 deps/mad/lib/libmad.a diff --git a/deps/mad/include/mad.h b/deps/mad/include/mad.h new file mode 100644 index 00000000..74d49909 --- /dev/null +++ b/deps/mad/include/mad.h @@ -0,0 +1,964 @@ +/* + * libmad - MPEG audio decoder library + * Copyright (C) 2000-2004 Underbit Technologies, Inc. + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * If you would like to negotiate alternate licensing terms, you may do + * so by contacting: Underbit Technologies, Inc. + */ + +# ifdef __cplusplus +extern "C" { +# endif + +# define FPM_INTEL + + + +# define SIZEOF_INT 4 +# define SIZEOF_LONG 8 +# define SIZEOF_LONG_LONG 8 + + +/* Id: version.h,v 1.26 2004/01/23 09:41:33 rob Exp */ + +# ifndef LIBMAD_VERSION_H +# define LIBMAD_VERSION_H + +# define MAD_VERSION_MAJOR 0 +# define MAD_VERSION_MINOR 15 +# define MAD_VERSION_PATCH 1 +# define MAD_VERSION_EXTRA " (beta)" + +# define MAD_VERSION_STRINGIZE(str) #str +# define MAD_VERSION_STRING(num) MAD_VERSION_STRINGIZE(num) + +# define MAD_VERSION MAD_VERSION_STRING(MAD_VERSION_MAJOR) "." \ + MAD_VERSION_STRING(MAD_VERSION_MINOR) "." \ + MAD_VERSION_STRING(MAD_VERSION_PATCH) \ + MAD_VERSION_EXTRA + +# define MAD_PUBLISHYEAR "2000-2004" +# define MAD_AUTHOR "Underbit Technologies, Inc." +# define MAD_EMAIL "info@underbit.com" + +extern char const mad_version[]; +extern char const mad_copyright[]; +extern char const mad_author[]; +extern char const mad_build[]; + +# endif + +/* Id: fixed.h,v 1.38 2004/02/17 02:02:03 rob Exp */ + +# ifndef LIBMAD_FIXED_H +# define LIBMAD_FIXED_H + +# if SIZEOF_INT >= 4 +typedef signed int mad_fixed_t; + +typedef signed int mad_fixed64hi_t; +typedef unsigned int mad_fixed64lo_t; +# else +typedef signed long mad_fixed_t; + +typedef signed long mad_fixed64hi_t; +typedef unsigned long mad_fixed64lo_t; +# endif + +# if defined(_MSC_VER) +# define mad_fixed64_t signed __int64 +# elif 1 || defined(__GNUC__) +# define mad_fixed64_t signed long long +# endif + +# if defined(FPM_FLOAT) +typedef double mad_sample_t; +# else +typedef mad_fixed_t mad_sample_t; +# endif + +/* + * Fixed-point format: 0xABBBBBBB + * A == whole part (sign + 3 bits) + * B == fractional part (28 bits) + * + * Values are signed two's complement, so the effective range is: + * 0x80000000 to 0x7fffffff + * -8.0 to +7.9999999962747097015380859375 + * + * The smallest representable value is: + * 0x00000001 == 0.0000000037252902984619140625 (i.e. about 3.725e-9) + * + * 28 bits of fractional accuracy represent about + * 8.6 digits of decimal accuracy. + * + * Fixed-point numbers can be added or subtracted as normal + * integers, but multiplication requires shifting the 64-bit result + * from 56 fractional bits back to 28 (and rounding.) + * + * Changing the definition of MAD_F_FRACBITS is only partially + * supported, and must be done with care. + */ + +# define MAD_F_FRACBITS 28 + +# if MAD_F_FRACBITS == 28 +# define MAD_F(x) ((mad_fixed_t) (x##L)) +# else +# if MAD_F_FRACBITS < 28 +# warning "MAD_F_FRACBITS < 28" +# define MAD_F(x) ((mad_fixed_t) \ + (((x##L) + \ + (1L << (28 - MAD_F_FRACBITS - 1))) >> \ + (28 - MAD_F_FRACBITS))) +# elif MAD_F_FRACBITS > 28 +# error "MAD_F_FRACBITS > 28 not currently supported" +# define MAD_F(x) ((mad_fixed_t) \ + ((x##L) << (MAD_F_FRACBITS - 28))) +# endif +# endif + +# define MAD_F_MIN ((mad_fixed_t) -0x80000000L) +# define MAD_F_MAX ((mad_fixed_t) +0x7fffffffL) + +# define MAD_F_ONE MAD_F(0x10000000) + +# define mad_f_tofixed(x) ((mad_fixed_t) \ + ((x) * (double) (1L << MAD_F_FRACBITS) + 0.5)) +# define mad_f_todouble(x) ((double) \ + ((x) / (double) (1L << MAD_F_FRACBITS))) + +# define mad_f_intpart(x) ((x) >> MAD_F_FRACBITS) +# define mad_f_fracpart(x) ((x) & ((1L << MAD_F_FRACBITS) - 1)) + /* (x should be positive) */ + +# define mad_f_fromint(x) ((x) << MAD_F_FRACBITS) + +# define mad_f_add(x, y) ((x) + (y)) +# define mad_f_sub(x, y) ((x) - (y)) + +# if defined(FPM_FLOAT) +# error "FPM_FLOAT not yet supported" + +# undef MAD_F +# define MAD_F(x) mad_f_todouble(x) + +# define mad_f_mul(x, y) ((x) * (y)) +# define mad_f_scale64 + +# undef ASO_ZEROCHECK + +# elif defined(FPM_64BIT) + +/* + * This version should be the most accurate if 64-bit types are supported by + * the compiler, although it may not be the most efficient. + */ +# if defined(OPT_ACCURACY) +# define mad_f_mul(x, y) \ + ((mad_fixed_t) \ + ((((mad_fixed64_t) (x) * (y)) + \ + (1L << (MAD_F_SCALEBITS - 1))) >> MAD_F_SCALEBITS)) +# else +# define mad_f_mul(x, y) \ + ((mad_fixed_t) (((mad_fixed64_t) (x) * (y)) >> MAD_F_SCALEBITS)) +# endif + +# define MAD_F_SCALEBITS MAD_F_FRACBITS + +/* --- Intel --------------------------------------------------------------- */ + +# elif defined(FPM_INTEL) + +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable: 4035) /* no return value */ +static __forceinline +mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y) +{ + enum { + fracbits = MAD_F_FRACBITS + }; + + __asm { + mov eax, x + imul y + shrd eax, edx, fracbits + } + + /* implicit return of eax */ +} +# pragma warning(pop) + +# define mad_f_mul mad_f_mul_inline +# define mad_f_scale64 +# else +/* + * This Intel version is fast and accurate; the disposition of the least + * significant bit depends on OPT_ACCURACY via mad_f_scale64(). + */ +# define MAD_F_MLX(hi, lo, x, y) \ + asm ("imull %3" \ + : "=a" (lo), "=d" (hi) \ + : "%a" (x), "rm" (y) \ + : "cc") + +# if defined(OPT_ACCURACY) +/* + * This gives best accuracy but is not very fast. + */ +# define MAD_F_MLA(hi, lo, x, y) \ + ({ mad_fixed64hi_t __hi; \ + mad_fixed64lo_t __lo; \ + MAD_F_MLX(__hi, __lo, (x), (y)); \ + asm ("addl %2,%0\n\t" \ + "adcl %3,%1" \ + : "=rm" (lo), "=rm" (hi) \ + : "r" (__lo), "r" (__hi), "0" (lo), "1" (hi) \ + : "cc"); \ + }) +# endif /* OPT_ACCURACY */ + +# if defined(OPT_ACCURACY) +/* + * Surprisingly, this is faster than SHRD followed by ADC. + */ +# define mad_f_scale64(hi, lo) \ + ({ mad_fixed64hi_t __hi_; \ + mad_fixed64lo_t __lo_; \ + mad_fixed_t __result; \ + asm ("addl %4,%2\n\t" \ + "adcl %5,%3" \ + : "=rm" (__lo_), "=rm" (__hi_) \ + : "0" (lo), "1" (hi), \ + "ir" (1L << (MAD_F_SCALEBITS - 1)), "ir" (0) \ + : "cc"); \ + asm ("shrdl %3,%2,%1" \ + : "=rm" (__result) \ + : "0" (__lo_), "r" (__hi_), "I" (MAD_F_SCALEBITS) \ + : "cc"); \ + __result; \ + }) +# elif defined(OPT_INTEL) +/* + * Alternate Intel scaling that may or may not perform better. + */ +# define mad_f_scale64(hi, lo) \ + ({ mad_fixed_t __result; \ + asm ("shrl %3,%1\n\t" \ + "shll %4,%2\n\t" \ + "orl %2,%1" \ + : "=rm" (__result) \ + : "0" (lo), "r" (hi), \ + "I" (MAD_F_SCALEBITS), "I" (32 - MAD_F_SCALEBITS) \ + : "cc"); \ + __result; \ + }) +# else +# define mad_f_scale64(hi, lo) \ + ({ mad_fixed_t __result; \ + asm ("shrdl %3,%2,%1" \ + : "=rm" (__result) \ + : "0" (lo), "r" (hi), "I" (MAD_F_SCALEBITS) \ + : "cc"); \ + __result; \ + }) +# endif /* OPT_ACCURACY */ + +# define MAD_F_SCALEBITS MAD_F_FRACBITS +# endif + +/* --- ARM ----------------------------------------------------------------- */ + +# elif defined(FPM_ARM) + +/* + * This ARM V4 version is as accurate as FPM_64BIT but much faster. The + * least significant bit is properly rounded at no CPU cycle cost! + */ +# if 1 +/* + * This is faster than the default implementation via MAD_F_MLX() and + * mad_f_scale64(). + */ +# define mad_f_mul(x, y) \ + ({ mad_fixed64hi_t __hi; \ + mad_fixed64lo_t __lo; \ + mad_fixed_t __result; \ + asm ("smull %0, %1, %3, %4\n\t" \ + "movs %0, %0, lsr %5\n\t" \ + "adc %2, %0, %1, lsl %6" \ + : "=&r" (__lo), "=&r" (__hi), "=r" (__result) \ + : "%r" (x), "r" (y), \ + "M" (MAD_F_SCALEBITS), "M" (32 - MAD_F_SCALEBITS) \ + : "cc"); \ + __result; \ + }) +# endif + +# define MAD_F_MLX(hi, lo, x, y) \ + asm ("smull %0, %1, %2, %3" \ + : "=&r" (lo), "=&r" (hi) \ + : "%r" (x), "r" (y)) + +# define MAD_F_MLA(hi, lo, x, y) \ + asm ("smlal %0, %1, %2, %3" \ + : "+r" (lo), "+r" (hi) \ + : "%r" (x), "r" (y)) + +# define MAD_F_MLN(hi, lo) \ + asm ("rsbs %0, %2, #0\n\t" \ + "rsc %1, %3, #0" \ + : "=r" (lo), "=r" (hi) \ + : "0" (lo), "1" (hi) \ + : "cc") + +# define mad_f_scale64(hi, lo) \ + ({ mad_fixed_t __result; \ + asm ("movs %0, %1, lsr %3\n\t" \ + "adc %0, %0, %2, lsl %4" \ + : "=&r" (__result) \ + : "r" (lo), "r" (hi), \ + "M" (MAD_F_SCALEBITS), "M" (32 - MAD_F_SCALEBITS) \ + : "cc"); \ + __result; \ + }) + +# define MAD_F_SCALEBITS MAD_F_FRACBITS + +/* --- MIPS ---------------------------------------------------------------- */ + +# elif defined(FPM_MIPS) + +/* + * This MIPS version is fast and accurate; the disposition of the least + * significant bit depends on OPT_ACCURACY via mad_f_scale64(). + */ +# define MAD_F_MLX(hi, lo, x, y) \ + asm ("mult %2,%3" \ + : "=l" (lo), "=h" (hi) \ + : "%r" (x), "r" (y)) + +# if defined(HAVE_MADD_ASM) +# define MAD_F_MLA(hi, lo, x, y) \ + asm ("madd %2,%3" \ + : "+l" (lo), "+h" (hi) \ + : "%r" (x), "r" (y)) +# elif defined(HAVE_MADD16_ASM) +/* + * This loses significant accuracy due to the 16-bit integer limit in the + * multiply/accumulate instruction. + */ +# define MAD_F_ML0(hi, lo, x, y) \ + asm ("mult %2,%3" \ + : "=l" (lo), "=h" (hi) \ + : "%r" ((x) >> 12), "r" ((y) >> 16)) +# define MAD_F_MLA(hi, lo, x, y) \ + asm ("madd16 %2,%3" \ + : "+l" (lo), "+h" (hi) \ + : "%r" ((x) >> 12), "r" ((y) >> 16)) +# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo)) +# endif + +# if defined(OPT_SPEED) +# define mad_f_scale64(hi, lo) \ + ((mad_fixed_t) ((hi) << (32 - MAD_F_SCALEBITS))) +# define MAD_F_SCALEBITS MAD_F_FRACBITS +# endif + +/* --- SPARC --------------------------------------------------------------- */ + +# elif defined(FPM_SPARC) + +/* + * This SPARC V8 version is fast and accurate; the disposition of the least + * significant bit depends on OPT_ACCURACY via mad_f_scale64(). + */ +# define MAD_F_MLX(hi, lo, x, y) \ + asm ("smul %2, %3, %0\n\t" \ + "rd %%y, %1" \ + : "=r" (lo), "=r" (hi) \ + : "%r" (x), "rI" (y)) + +/* --- PowerPC ------------------------------------------------------------- */ + +# elif defined(FPM_PPC) + +/* + * This PowerPC version is fast and accurate; the disposition of the least + * significant bit depends on OPT_ACCURACY via mad_f_scale64(). + */ +# define MAD_F_MLX(hi, lo, x, y) \ + do { \ + asm ("mullw %0,%1,%2" \ + : "=r" (lo) \ + : "%r" (x), "r" (y)); \ + asm ("mulhw %0,%1,%2" \ + : "=r" (hi) \ + : "%r" (x), "r" (y)); \ + } \ + while (0) + +# if defined(OPT_ACCURACY) +/* + * This gives best accuracy but is not very fast. + */ +# define MAD_F_MLA(hi, lo, x, y) \ + ({ mad_fixed64hi_t __hi; \ + mad_fixed64lo_t __lo; \ + MAD_F_MLX(__hi, __lo, (x), (y)); \ + asm ("addc %0,%2,%3\n\t" \ + "adde %1,%4,%5" \ + : "=r" (lo), "=r" (hi) \ + : "%r" (lo), "r" (__lo), \ + "%r" (hi), "r" (__hi) \ + : "xer"); \ + }) +# endif + +# if defined(OPT_ACCURACY) +/* + * This is slower than the truncating version below it. + */ +# define mad_f_scale64(hi, lo) \ + ({ mad_fixed_t __result, __round; \ + asm ("rotrwi %0,%1,%2" \ + : "=r" (__result) \ + : "r" (lo), "i" (MAD_F_SCALEBITS)); \ + asm ("extrwi %0,%1,1,0" \ + : "=r" (__round) \ + : "r" (__result)); \ + asm ("insrwi %0,%1,%2,0" \ + : "+r" (__result) \ + : "r" (hi), "i" (MAD_F_SCALEBITS)); \ + asm ("add %0,%1,%2" \ + : "=r" (__result) \ + : "%r" (__result), "r" (__round)); \ + __result; \ + }) +# else +# define mad_f_scale64(hi, lo) \ + ({ mad_fixed_t __result; \ + asm ("rotrwi %0,%1,%2" \ + : "=r" (__result) \ + : "r" (lo), "i" (MAD_F_SCALEBITS)); \ + asm ("insrwi %0,%1,%2,0" \ + : "+r" (__result) \ + : "r" (hi), "i" (MAD_F_SCALEBITS)); \ + __result; \ + }) +# endif + +# define MAD_F_SCALEBITS MAD_F_FRACBITS + +/* --- Default ------------------------------------------------------------- */ + +# elif defined(FPM_DEFAULT) + +/* + * This version is the most portable but it loses significant accuracy. + * Furthermore, accuracy is biased against the second argument, so care + * should be taken when ordering operands. + * + * The scale factors are constant as this is not used with SSO. + * + * Pre-rounding is required to stay within the limits of compliance. + */ +# if defined(OPT_SPEED) +# define mad_f_mul(x, y) (((x) >> 12) * ((y) >> 16)) +# else +# define mad_f_mul(x, y) ((((x) + (1L << 11)) >> 12) * \ + (((y) + (1L << 15)) >> 16)) +# endif + +/* ------------------------------------------------------------------------- */ + +# else +# error "no FPM selected" +# endif + +/* default implementations */ + +# if !defined(mad_f_mul) +# define mad_f_mul(x, y) \ + ({ register mad_fixed64hi_t __hi; \ + register mad_fixed64lo_t __lo; \ + MAD_F_MLX(__hi, __lo, (x), (y)); \ + mad_f_scale64(__hi, __lo); \ + }) +# endif + +# if !defined(MAD_F_MLA) +# define MAD_F_ML0(hi, lo, x, y) ((lo) = mad_f_mul((x), (y))) +# define MAD_F_MLA(hi, lo, x, y) ((lo) += mad_f_mul((x), (y))) +# define MAD_F_MLN(hi, lo) ((lo) = -(lo)) +# define MAD_F_MLZ(hi, lo) ((void) (hi), (mad_fixed_t) (lo)) +# endif + +# if !defined(MAD_F_ML0) +# define MAD_F_ML0(hi, lo, x, y) MAD_F_MLX((hi), (lo), (x), (y)) +# endif + +# if !defined(MAD_F_MLN) +# define MAD_F_MLN(hi, lo) ((hi) = ((lo) = -(lo)) ? ~(hi) : -(hi)) +# endif + +# if !defined(MAD_F_MLZ) +# define MAD_F_MLZ(hi, lo) mad_f_scale64((hi), (lo)) +# endif + +# if !defined(mad_f_scale64) +# if defined(OPT_ACCURACY) +# define mad_f_scale64(hi, lo) \ + ((((mad_fixed_t) \ + (((hi) << (32 - (MAD_F_SCALEBITS - 1))) | \ + ((lo) >> (MAD_F_SCALEBITS - 1)))) + 1) >> 1) +# else +# define mad_f_scale64(hi, lo) \ + ((mad_fixed_t) \ + (((hi) << (32 - MAD_F_SCALEBITS)) | \ + ((lo) >> MAD_F_SCALEBITS))) +# endif +# define MAD_F_SCALEBITS MAD_F_FRACBITS +# endif + +/* C routines */ + +mad_fixed_t mad_f_abs(mad_fixed_t); +mad_fixed_t mad_f_div(mad_fixed_t, mad_fixed_t); + +# endif + +/* Id: bit.h,v 1.12 2004/01/23 09:41:32 rob Exp */ + +# ifndef LIBMAD_BIT_H +# define LIBMAD_BIT_H + +struct mad_bitptr { + unsigned char const *byte; + unsigned short cache; + unsigned short left; +}; + +void mad_bit_init(struct mad_bitptr *, unsigned char const *); + +# define mad_bit_finish(bitptr) /* nothing */ + +unsigned int mad_bit_length(struct mad_bitptr const *, + struct mad_bitptr const *); + +# define mad_bit_bitsleft(bitptr) ((bitptr)->left) +unsigned char const *mad_bit_nextbyte(struct mad_bitptr const *); + +void mad_bit_skip(struct mad_bitptr *, unsigned int); +unsigned long mad_bit_read(struct mad_bitptr *, unsigned int); +void mad_bit_write(struct mad_bitptr *, unsigned int, unsigned long); + +unsigned short mad_bit_crc(struct mad_bitptr, unsigned int, unsigned short); + +# endif + +/* Id: timer.h,v 1.16 2004/01/23 09:41:33 rob Exp */ + +# ifndef LIBMAD_TIMER_H +# define LIBMAD_TIMER_H + +typedef struct { + signed long seconds; /* whole seconds */ + unsigned long fraction; /* 1/MAD_TIMER_RESOLUTION seconds */ +} mad_timer_t; + +extern mad_timer_t const mad_timer_zero; + +# define MAD_TIMER_RESOLUTION 352800000UL + +enum mad_units { + MAD_UNITS_HOURS = -2, + MAD_UNITS_MINUTES = -1, + MAD_UNITS_SECONDS = 0, + + /* metric units */ + + MAD_UNITS_DECISECONDS = 10, + MAD_UNITS_CENTISECONDS = 100, + MAD_UNITS_MILLISECONDS = 1000, + + /* audio sample units */ + + MAD_UNITS_8000_HZ = 8000, + MAD_UNITS_11025_HZ = 11025, + MAD_UNITS_12000_HZ = 12000, + + MAD_UNITS_16000_HZ = 16000, + MAD_UNITS_22050_HZ = 22050, + MAD_UNITS_24000_HZ = 24000, + + MAD_UNITS_32000_HZ = 32000, + MAD_UNITS_44100_HZ = 44100, + MAD_UNITS_48000_HZ = 48000, + + /* video frame/field units */ + + MAD_UNITS_24_FPS = 24, + MAD_UNITS_25_FPS = 25, + MAD_UNITS_30_FPS = 30, + MAD_UNITS_48_FPS = 48, + MAD_UNITS_50_FPS = 50, + MAD_UNITS_60_FPS = 60, + + /* CD audio frames */ + + MAD_UNITS_75_FPS = 75, + + /* video drop-frame units */ + + MAD_UNITS_23_976_FPS = -24, + MAD_UNITS_24_975_FPS = -25, + MAD_UNITS_29_97_FPS = -30, + MAD_UNITS_47_952_FPS = -48, + MAD_UNITS_49_95_FPS = -50, + MAD_UNITS_59_94_FPS = -60 +}; + +# define mad_timer_reset(timer) ((void) (*(timer) = mad_timer_zero)) + +int mad_timer_compare(mad_timer_t, mad_timer_t); + +# define mad_timer_sign(timer) mad_timer_compare((timer), mad_timer_zero) + +void mad_timer_negate(mad_timer_t *); +mad_timer_t mad_timer_abs(mad_timer_t); + +void mad_timer_set(mad_timer_t *, unsigned long, unsigned long, unsigned long); +void mad_timer_add(mad_timer_t *, mad_timer_t); +void mad_timer_multiply(mad_timer_t *, signed long); + +signed long mad_timer_count(mad_timer_t, enum mad_units); +unsigned long mad_timer_fraction(mad_timer_t, unsigned long); +void mad_timer_string(mad_timer_t, char *, char const *, + enum mad_units, enum mad_units, unsigned long); + +# endif + +/* Id: stream.h,v 1.20 2004/02/05 09:02:39 rob Exp */ + +# ifndef LIBMAD_STREAM_H +# define LIBMAD_STREAM_H + + +# define MAD_BUFFER_GUARD 8 +# define MAD_BUFFER_MDLEN (511 + 2048 + MAD_BUFFER_GUARD) + +enum mad_error { + MAD_ERROR_NONE = 0x0000, /* no error */ + + MAD_ERROR_BUFLEN = 0x0001, /* input buffer too small (or EOF) */ + MAD_ERROR_BUFPTR = 0x0002, /* invalid (null) buffer pointer */ + + MAD_ERROR_NOMEM = 0x0031, /* not enough memory */ + + MAD_ERROR_LOSTSYNC = 0x0101, /* lost synchronization */ + MAD_ERROR_BADLAYER = 0x0102, /* reserved header layer value */ + MAD_ERROR_BADBITRATE = 0x0103, /* forbidden bitrate value */ + MAD_ERROR_BADSAMPLERATE = 0x0104, /* reserved sample frequency value */ + MAD_ERROR_BADEMPHASIS = 0x0105, /* reserved emphasis value */ + + MAD_ERROR_BADCRC = 0x0201, /* CRC check failed */ + MAD_ERROR_BADBITALLOC = 0x0211, /* forbidden bit allocation value */ + MAD_ERROR_BADSCALEFACTOR = 0x0221, /* bad scalefactor index */ + MAD_ERROR_BADMODE = 0x0222, /* bad bitrate/mode combination */ + MAD_ERROR_BADFRAMELEN = 0x0231, /* bad frame length */ + MAD_ERROR_BADBIGVALUES = 0x0232, /* bad big_values count */ + MAD_ERROR_BADBLOCKTYPE = 0x0233, /* reserved block_type */ + MAD_ERROR_BADSCFSI = 0x0234, /* bad scalefactor selection info */ + MAD_ERROR_BADDATAPTR = 0x0235, /* bad main_data_begin pointer */ + MAD_ERROR_BADPART3LEN = 0x0236, /* bad audio data length */ + MAD_ERROR_BADHUFFTABLE = 0x0237, /* bad Huffman table select */ + MAD_ERROR_BADHUFFDATA = 0x0238, /* Huffman data overrun */ + MAD_ERROR_BADSTEREO = 0x0239 /* incompatible block_type for JS */ +}; + +# define MAD_RECOVERABLE(error) ((error) & 0xff00) + +struct mad_stream { + unsigned char const *buffer; /* input bitstream buffer */ + unsigned char const *bufend; /* end of buffer */ + unsigned long skiplen; /* bytes to skip before next frame */ + + int sync; /* stream sync found */ + unsigned long freerate; /* free bitrate (fixed) */ + + unsigned char const *this_frame; /* start of current frame */ + unsigned char const *next_frame; /* start of next frame */ + struct mad_bitptr ptr; /* current processing bit pointer */ + + struct mad_bitptr anc_ptr; /* ancillary bits pointer */ + unsigned int anc_bitlen; /* number of ancillary bits */ + + unsigned char (*main_data)[MAD_BUFFER_MDLEN]; + /* Layer III main_data() */ + unsigned int md_len; /* bytes in main_data */ + + int options; /* decoding options (see below) */ + enum mad_error error; /* error code (see above) */ +}; + +enum { + MAD_OPTION_IGNORECRC = 0x0001, /* ignore CRC errors */ + MAD_OPTION_HALFSAMPLERATE = 0x0002 /* generate PCM at 1/2 sample rate */ +# if 0 /* not yet implemented */ + MAD_OPTION_LEFTCHANNEL = 0x0010, /* decode left channel only */ + MAD_OPTION_RIGHTCHANNEL = 0x0020, /* decode right channel only */ + MAD_OPTION_SINGLECHANNEL = 0x0030 /* combine channels */ +# endif +}; + +void mad_stream_init(struct mad_stream *); +void mad_stream_finish(struct mad_stream *); + +# define mad_stream_options(stream, opts) \ + ((void) ((stream)->options = (opts))) + +void mad_stream_buffer(struct mad_stream *, + unsigned char const *, unsigned long); +void mad_stream_skip(struct mad_stream *, unsigned long); + +int mad_stream_sync(struct mad_stream *); + +char const *mad_stream_errorstr(struct mad_stream const *); + +# endif + +/* Id: frame.h,v 1.20 2004/01/23 09:41:32 rob Exp */ + +# ifndef LIBMAD_FRAME_H +# define LIBMAD_FRAME_H + + +enum mad_layer { + MAD_LAYER_I = 1, /* Layer I */ + MAD_LAYER_II = 2, /* Layer II */ + MAD_LAYER_III = 3 /* Layer III */ +}; + +enum mad_mode { + MAD_MODE_SINGLE_CHANNEL = 0, /* single channel */ + MAD_MODE_DUAL_CHANNEL = 1, /* dual channel */ + MAD_MODE_JOINT_STEREO = 2, /* joint (MS/intensity) stereo */ + MAD_MODE_STEREO = 3 /* normal LR stereo */ +}; + +enum mad_emphasis { + MAD_EMPHASIS_NONE = 0, /* no emphasis */ + MAD_EMPHASIS_50_15_US = 1, /* 50/15 microseconds emphasis */ + MAD_EMPHASIS_CCITT_J_17 = 3, /* CCITT J.17 emphasis */ + MAD_EMPHASIS_RESERVED = 2 /* unknown emphasis */ +}; + +struct mad_header { + enum mad_layer layer; /* audio layer (1, 2, or 3) */ + enum mad_mode mode; /* channel mode (see above) */ + int mode_extension; /* additional mode info */ + enum mad_emphasis emphasis; /* de-emphasis to use (see above) */ + + unsigned long bitrate; /* stream bitrate (bps) */ + unsigned int samplerate; /* sampling frequency (Hz) */ + + unsigned short crc_check; /* frame CRC accumulator */ + unsigned short crc_target; /* final target CRC checksum */ + + int flags; /* flags (see below) */ + int private_bits; /* private bits (see below) */ + + mad_timer_t duration; /* audio playing time of frame */ +}; + +struct mad_frame { + struct mad_header header; /* MPEG audio header */ + + int options; /* decoding options (from stream) */ + + mad_fixed_t sbsample[2][36][32]; /* synthesis subband filter samples */ + mad_fixed_t (*overlap)[2][32][18]; /* Layer III block overlap data */ +}; + +# define MAD_NCHANNELS(header) ((header)->mode ? 2 : 1) +# define MAD_NSBSAMPLES(header) \ + ((header)->layer == MAD_LAYER_I ? 12 : \ + (((header)->layer == MAD_LAYER_III && \ + ((header)->flags & MAD_FLAG_LSF_EXT)) ? 18 : 36)) + +enum { + MAD_FLAG_NPRIVATE_III = 0x0007, /* number of Layer III private bits */ + MAD_FLAG_INCOMPLETE = 0x0008, /* header but not data is decoded */ + + MAD_FLAG_PROTECTION = 0x0010, /* frame has CRC protection */ + MAD_FLAG_COPYRIGHT = 0x0020, /* frame is copyright */ + MAD_FLAG_ORIGINAL = 0x0040, /* frame is original (else copy) */ + MAD_FLAG_PADDING = 0x0080, /* frame has additional slot */ + + MAD_FLAG_I_STEREO = 0x0100, /* uses intensity joint stereo */ + MAD_FLAG_MS_STEREO = 0x0200, /* uses middle/side joint stereo */ + MAD_FLAG_FREEFORMAT = 0x0400, /* uses free format bitrate */ + + MAD_FLAG_LSF_EXT = 0x1000, /* lower sampling freq. extension */ + MAD_FLAG_MC_EXT = 0x2000, /* multichannel audio extension */ + MAD_FLAG_MPEG_2_5_EXT = 0x4000 /* MPEG 2.5 (unofficial) extension */ +}; + +enum { + MAD_PRIVATE_HEADER = 0x0100, /* header private bit */ + MAD_PRIVATE_III = 0x001f /* Layer III private bits (up to 5) */ +}; + +void mad_header_init(struct mad_header *); + +# define mad_header_finish(header) /* nothing */ + +int mad_header_decode(struct mad_header *, struct mad_stream *); + +void mad_frame_init(struct mad_frame *); +void mad_frame_finish(struct mad_frame *); + +int mad_frame_decode(struct mad_frame *, struct mad_stream *); + +void mad_frame_mute(struct mad_frame *); + +# endif + +/* Id: synth.h,v 1.15 2004/01/23 09:41:33 rob Exp */ + +# ifndef LIBMAD_SYNTH_H +# define LIBMAD_SYNTH_H + + +struct mad_pcm { + unsigned int samplerate; /* sampling frequency (Hz) */ + unsigned short channels; /* number of channels */ + unsigned short length; /* number of samples per channel */ + mad_fixed_t samples[2][1152]; /* PCM output samples [ch][sample] */ +}; + +struct mad_synth { + mad_fixed_t filter[2][2][2][16][8]; /* polyphase filterbank outputs */ + /* [ch][eo][peo][s][v] */ + + unsigned int phase; /* current processing phase */ + + struct mad_pcm pcm; /* PCM output */ +}; + +/* single channel PCM selector */ +enum { + MAD_PCM_CHANNEL_SINGLE = 0 +}; + +/* dual channel PCM selector */ +enum { + MAD_PCM_CHANNEL_DUAL_1 = 0, + MAD_PCM_CHANNEL_DUAL_2 = 1 +}; + +/* stereo PCM selector */ +enum { + MAD_PCM_CHANNEL_STEREO_LEFT = 0, + MAD_PCM_CHANNEL_STEREO_RIGHT = 1 +}; + +void mad_synth_init(struct mad_synth *); + +# define mad_synth_finish(synth) /* nothing */ + +void mad_synth_mute(struct mad_synth *); + +void mad_synth_frame(struct mad_synth *, struct mad_frame const *); + +# endif + +/* Id: decoder.h,v 1.17 2004/01/23 09:41:32 rob Exp */ + +# ifndef LIBMAD_DECODER_H +# define LIBMAD_DECODER_H + + +enum mad_decoder_mode { + MAD_DECODER_MODE_SYNC = 0, + MAD_DECODER_MODE_ASYNC +}; + +enum mad_flow { + MAD_FLOW_CONTINUE = 0x0000, /* continue normally */ + MAD_FLOW_STOP = 0x0010, /* stop decoding normally */ + MAD_FLOW_BREAK = 0x0011, /* stop decoding and signal an error */ + MAD_FLOW_IGNORE = 0x0020 /* ignore the current frame */ +}; + +struct mad_decoder { + enum mad_decoder_mode mode; + + int options; + + struct { + long pid; + int in; + int out; + } async; + + struct { + struct mad_stream stream; + struct mad_frame frame; + struct mad_synth synth; + } *sync; + + void *cb_data; + + enum mad_flow (*input_func)(void *, struct mad_stream *); + enum mad_flow (*header_func)(void *, struct mad_header const *); + enum mad_flow (*filter_func)(void *, + struct mad_stream const *, struct mad_frame *); + enum mad_flow (*output_func)(void *, + struct mad_header const *, struct mad_pcm *); + enum mad_flow (*error_func)(void *, struct mad_stream *, struct mad_frame *); + enum mad_flow (*message_func)(void *, void *, unsigned int *); +}; + +void mad_decoder_init(struct mad_decoder *, void *, + enum mad_flow (*)(void *, struct mad_stream *), + enum mad_flow (*)(void *, struct mad_header const *), + enum mad_flow (*)(void *, + struct mad_stream const *, + struct mad_frame *), + enum mad_flow (*)(void *, + struct mad_header const *, + struct mad_pcm *), + enum mad_flow (*)(void *, + struct mad_stream *, + struct mad_frame *), + enum mad_flow (*)(void *, void *, unsigned int *)); +int mad_decoder_finish(struct mad_decoder *); + +# define mad_decoder_options(decoder, opts) \ + ((void) ((decoder)->options = (opts))) + +int mad_decoder_run(struct mad_decoder *, enum mad_decoder_mode); +int mad_decoder_message(struct mad_decoder *, void *, unsigned int *); + +# endif + +# ifdef __cplusplus +} +# endif diff --git a/deps/mad/lib/libmad.a b/deps/mad/lib/libmad.a new file mode 100644 index 0000000000000000000000000000000000000000..dca5a6112693dff3778859a9581d6e491d3686e8 GIT binary patch literal 176248 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 literal 0 HcmV?d00001