diff --git a/Common/Common.vcxproj b/Common/Common.vcxproj
index 51862eb690..2b258e8440 100644
--- a/Common/Common.vcxproj
+++ b/Common/Common.vcxproj
@@ -391,13 +391,11 @@
-
-
@@ -611,7 +609,7 @@
-
+
diff --git a/Common/Common.vcxproj.filters b/Common/Common.vcxproj.filters
index 8f29b89bd7..d255b9e331 100644
--- a/Common/Common.vcxproj.filters
+++ b/Common/Common.vcxproj.filters
@@ -542,9 +542,6 @@
ext\at3_standalone
-
- ext\at3_standalone
-
ext\at3_standalone
@@ -560,9 +557,6 @@
ext\at3_standalone
-
- ext\at3_standalone
-
ext\at3_standalone
@@ -1074,7 +1068,7 @@
ext\at3_standalone
-
+
ext\at3_standalone
diff --git a/ext/at3_standalone/atrac3.c b/ext/at3_standalone/atrac3.c
index 4baaeda1fa..f78e1784dd 100644
--- a/ext/at3_standalone/atrac3.c
+++ b/ext/at3_standalone/atrac3.c
@@ -36,9 +36,9 @@
#include
#include
#include
+#include
#include "float_dsp.h"
-#include "bytestream.h"
#include "fft.h"
#include "compat.h"
#include "get_bits.h"
diff --git a/ext/at3_standalone/avcodec.c b/ext/at3_standalone/avcodec.c
index 01e3f53037..19cf6a2b3f 100644
--- a/ext/at3_standalone/avcodec.c
+++ b/ext/at3_standalone/avcodec.c
@@ -28,9 +28,7 @@
#include "compat.h"
#include "channel_layout.h"
#include "compat.h"
-#include "mathematics.h"
#include "avcodec.h"
-#include "bytestream.h"
#include "mem.h"
#include
@@ -39,11 +37,6 @@
#include
#include
-static const AVClass av_codec_context_class = {
- .class_name = "AVCodecContext",
- .category = AV_CLASS_CATEGORY_DECODER,
-};
-
AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)
{
AVCodecContext *avctx = av_mallocz(sizeof(AVCodecContext));
@@ -52,8 +45,6 @@ AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)
int flags = 0;
memset(avctx, 0, sizeof(AVCodecContext));
- avctx->av_class = &av_codec_context_class;
-
if (codec) {
avctx->codec = codec;
avctx->codec_id = codec->id;
@@ -66,9 +57,6 @@ AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)
return NULL;
}
}
- if (codec->priv_class) {
- *(const AVClass**)avctx->priv_data = codec->priv_class;
- }
}
return avctx;
}
@@ -88,17 +76,6 @@ void avcodec_free_context(AVCodecContext **pavctx)
int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, void **options)
{
- if ((codec && avctx->codec && codec != avctx->codec)) {
- av_log(avctx, AV_LOG_ERROR, "This AVCodecContext was allocated for %s, "
- "but %s passed to avcodec_open2()\n", avctx->codec->name, codec->name);
- return AVERROR(EINVAL);
- }
- if (!codec)
- codec = avctx->codec;
-
- if (avctx->extradata_size < 0 || avctx->extradata_size >= FF_MAX_EXTRADATA_SIZE)
- return AVERROR(EINVAL);
-
int ret = 0;
if (codec->priv_data_size > 0) {
@@ -108,19 +85,11 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
ret = AVERROR(ENOMEM);
goto end;
}
- if (codec->priv_class) {
- *(const AVClass **)avctx->priv_data = codec->priv_class;
- }
}
} else {
avctx->priv_data = NULL;
}
- if (avctx->channels > FF_SANE_NB_CHANNELS) {
- ret = AVERROR(EINVAL);
- goto free_and_end;
- }
-
avctx->codec = codec;
avctx->codec_id = codec->id;
@@ -154,9 +123,6 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
ret = AVERROR(EINVAL);
goto free_and_end;
}
- if (codec->priv_data_size > 0 && avctx->priv_data && codec->priv_class) {
- av_assert0(*(const AVClass **)avctx->priv_data == codec->priv_class);
- }
end:
diff --git a/ext/at3_standalone/avcodec.h b/ext/at3_standalone/avcodec.h
index a2caa92db7..330e3209b0 100644
--- a/ext/at3_standalone/avcodec.h
+++ b/ext/at3_standalone/avcodec.h
@@ -31,7 +31,6 @@
#include "compat.h"
#include "channel_layout.h"
#include "mem.h"
-#include "log.h"
/**
* @defgroup libavc Encoding/Decoding Library
@@ -294,7 +293,6 @@ typedef struct AVCodecContext {
* information on struct for av_log
* - set by avcodec_alloc_context3
*/
- const AVClass *av_class;
const struct AVCodec *codec;
#if FF_API_CODEC_NAME
/**
@@ -488,7 +486,6 @@ typedef struct AVCodec {
*/
const char *name;
enum AVCodecID id;
- const AVClass *priv_class; ///< AVClass for the private context
/*****************************************************************
* No fields below this line are part of the public API. They
diff --git a/ext/at3_standalone/bytestream.h b/ext/at3_standalone/bytestream.h
deleted file mode 100644
index c1c3348379..0000000000
--- a/ext/at3_standalone/bytestream.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Bytestream functions
- * copyright (c) 2006 Baptiste Coudurier
- * Copyright (c) 2012 Aneesh Dogra (lionaneesh)
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_BYTESTREAM_H
-#define AVCODEC_BYTESTREAM_H
-
-#include
-#include
-
-#include "compat.h"
-#include "intreadwrite.h"
-
-typedef struct GetByteContext {
- const uint8_t *buffer, *buffer_end, *buffer_start;
-} GetByteContext;
-
-#define DEF(type, name, bytes, read, write) \
-static inline type bytestream_get_ ## name(const uint8_t **b) \
-{ \
- (*b) += bytes; \
- return read(*b - bytes); \
-} \
-static inline type bytestream2_get_ ## name ## u(GetByteContext *g) \
-{ \
- return bytestream_get_ ## name(&g->buffer); \
-} \
-static inline type bytestream2_get_ ## name(GetByteContext *g) \
-{ \
- if (g->buffer_end - g->buffer < bytes) { \
- g->buffer = g->buffer_end; \
- return 0; \
- } \
- return bytestream2_get_ ## name ## u(g); \
-} \
-static inline type bytestream2_peek_ ## name(GetByteContext *g) \
-{ \
- if (g->buffer_end - g->buffer < bytes) \
- return 0; \
- return read(g->buffer); \
-}
-
-DEF(uint64_t, le64, 8, AV_RL64, AV_WL64)
-DEF(unsigned int, le32, 4, AV_RL32, AV_WL32)
-DEF(unsigned int, le24, 3, AV_RL24, AV_WL24)
-DEF(unsigned int, le16, 2, AV_RL16, AV_WL16)
-DEF(uint64_t, be64, 8, AV_RB64, AV_WB64)
-DEF(unsigned int, be32, 4, AV_RB32, AV_WB32)
-DEF(unsigned int, be24, 3, AV_RB24, AV_WB24)
-DEF(unsigned int, be16, 2, AV_RB16, AV_WB16)
-DEF(unsigned int, byte, 1, AV_RB8 , AV_WB8)
-
-# define bytestream2_get_ne16 bytestream2_get_le16
-# define bytestream2_get_ne24 bytestream2_get_le24
-# define bytestream2_get_ne32 bytestream2_get_le32
-# define bytestream2_get_ne64 bytestream2_get_le64
-# define bytestream2_get_ne16u bytestream2_get_le16u
-# define bytestream2_get_ne24u bytestream2_get_le24u
-# define bytestream2_get_ne32u bytestream2_get_le32u
-# define bytestream2_get_ne64u bytestream2_get_le64u
-# define bytestream2_peek_ne16 bytestream2_peek_le16
-# define bytestream2_peek_ne24 bytestream2_peek_le24
-# define bytestream2_peek_ne32 bytestream2_peek_le32
-# define bytestream2_peek_ne64 bytestream2_peek_le64
-
-#endif /* AVCODEC_BYTESTREAM_H */
diff --git a/ext/at3_standalone/channel_layout.c b/ext/at3_standalone/channel_layout.c
index e925e89c6c..f35dbf50f2 100644
--- a/ext/at3_standalone/channel_layout.c
+++ b/ext/at3_standalone/channel_layout.c
@@ -24,6 +24,8 @@
*/
#include
+#include
+#include
#include
#include
diff --git a/ext/at3_standalone/compat.h b/ext/at3_standalone/compat.h
index fb8d4d8798..64217744e3 100644
--- a/ext/at3_standalone/compat.h
+++ b/ext/at3_standalone/compat.h
@@ -51,6 +51,15 @@
#define FF_SANE_NB_CHANNELS 64U
+#define AV_LOG_ERROR 16
+#define AV_LOG_WARNING 24
+#define AV_LOG_INFO 32
+#define AV_LOG_VERBOSE 40
+#define AV_LOG_DEBUG 48
+#define AV_LOG_TRACE 56
+
+void av_log(void *avcl, int level, const char *fmt, ...) av_printf_format(3, 4);
+
/**
* Maximum size in bytes of extradata.
* This value was chosen such that every bit of the buffer is
diff --git a/ext/at3_standalone/fft_template.c b/ext/at3_standalone/fft.c
similarity index 91%
rename from ext/at3_standalone/fft_template.c
rename to ext/at3_standalone/fft.c
index 94118d4880..128de80f83 100644
--- a/ext/at3_standalone/fft_template.c
+++ b/ext/at3_standalone/fft.c
@@ -40,9 +40,9 @@
y = a + b; \
} while (0)
-#define ff_imdct_calc_c FFT_NAME(ff_imdct_calc_c)
-#define ff_imdct_half_c FFT_NAME(ff_imdct_half_c)
-#define ff_mdct_calc_c FFT_NAME(ff_mdct_calc_c)
+#define ff_imdct_calc_c ff_imdct_calc_c
+#define ff_imdct_half_c ff_imdct_half_c
+#define ff_mdct_calc_c ff_mdct_calc_c
void ff_imdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input);
void ff_imdct_half_c(FFTContext *s, FFTSample *output, const FFTSample *input);
@@ -64,21 +64,21 @@ COSTABLE(16384);
COSTABLE(32768);
COSTABLE(65536);
#endif
-COSTABLE_CONST FFTSample * const FFT_NAME(ff_cos_tabs)[] = {
+FFTSample * const ff_cos_tabs[] = {
NULL, NULL, NULL, NULL,
- FFT_NAME(ff_cos_16),
- FFT_NAME(ff_cos_32),
- FFT_NAME(ff_cos_64),
- FFT_NAME(ff_cos_128),
- FFT_NAME(ff_cos_256),
- FFT_NAME(ff_cos_512),
- FFT_NAME(ff_cos_1024),
- FFT_NAME(ff_cos_2048),
- FFT_NAME(ff_cos_4096),
- FFT_NAME(ff_cos_8192),
- FFT_NAME(ff_cos_16384),
- FFT_NAME(ff_cos_32768),
- FFT_NAME(ff_cos_65536),
+ ff_cos_16,
+ ff_cos_32,
+ ff_cos_64,
+ ff_cos_128,
+ ff_cos_256,
+ ff_cos_512,
+ ff_cos_1024,
+ ff_cos_2048,
+ ff_cos_4096,
+ ff_cos_8192,
+ ff_cos_16384,
+ ff_cos_32768,
+ ff_cos_65536,
};
static void fft_permute_c(FFTContext *s, FFTComplex *z);
@@ -101,7 +101,7 @@ void ff_init_ff_cos_tabs(int index)
int i;
int m = 1<
+#include "compat.h"
+
typedef float FFTSample;
typedef struct FFTComplex {
@@ -47,8 +49,6 @@ typedef struct FFTComplex {
typedef struct FFTContext FFTContext;
-#define FFT_NAME(x) x
-
typedef float FFTDouble;
typedef struct FFTDComplex {
@@ -88,14 +88,8 @@ struct FFTContext {
enum mdct_permutation_type mdct_permutation;
};
-#if CONFIG_HARDCODED_TABLES
-#define COSTABLE_CONST const
-#else
-#define COSTABLE_CONST
-#endif
-
#define COSTABLE(size) \
- COSTABLE_CONST DECLARE_ALIGNED(32, FFTSample, FFT_NAME(ff_cos_##size))[size/2]
+ DECLARE_ALIGNED(32, FFTSample, ff_cos_##size)[size/2]
extern COSTABLE(16);
extern COSTABLE(32);
@@ -110,9 +104,7 @@ extern COSTABLE(8192);
extern COSTABLE(16384);
extern COSTABLE(32768);
extern COSTABLE(65536);
-extern COSTABLE_CONST FFTSample* const FFT_NAME(ff_cos_tabs)[17];
-
-#define ff_init_ff_cos_tabs FFT_NAME(ff_init_ff_cos_tabs)
+extern FFTSample* const ff_cos_tabs[17];
/**
* Initialize the cosine table in ff_cos_tabs[index]
@@ -120,9 +112,6 @@ extern COSTABLE_CONST FFTSample* const FFT_NAME(ff_cos_tabs)[17];
*/
void ff_init_ff_cos_tabs(int index);
-#define ff_fft_init FFT_NAME(ff_fft_init)
-#define ff_fft_end FFT_NAME(ff_fft_end)
-
/**
* Set up a complex FFT.
* @param nbits log2 of the length of the input array
@@ -132,9 +121,6 @@ int ff_fft_init(FFTContext *s, int nbits, int inverse);
void ff_fft_end(FFTContext *s);
-#define ff_mdct_init FFT_NAME(ff_mdct_init)
-#define ff_mdct_end FFT_NAME(ff_mdct_end)
-
int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale);
void ff_mdct_end(FFTContext *s);
diff --git a/ext/at3_standalone/get_bits.c b/ext/at3_standalone/get_bits.c
index 40edf40d26..34b8a3fd5b 100644
--- a/ext/at3_standalone/get_bits.c
+++ b/ext/at3_standalone/get_bits.c
@@ -140,7 +140,6 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
if (table_nb_bits > 30)
return -1;
table_index = alloc_table(vlc, table_size, flags & INIT_VLC_USE_NEW_STATIC);
- ff_dlog(NULL, "new table index=%d size=%d\n", table_index, table_size);
if (table_index < 0)
return table_index;
table = (volatile VLC_TYPE (*)[2])&vlc->table[table_index];
@@ -150,7 +149,6 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
n = codes[i].bits;
code = codes[i].code;
symbol = codes[i].symbol;
- ff_dlog(NULL, "i=%d n=%d code=0x%x\n", i, n, code);
if (n <= table_nb_bits) {
/* no need to add another table */
j = code >> (32 - table_nb_bits);
@@ -162,7 +160,6 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
}
for (k = 0; k < nb; k++) {
int bits = table[j][1];
- ff_dlog(NULL, "%4x: code=%d n=%d\n", j, i, n);
if (bits != 0 && bits != n) {
av_log(NULL, AV_LOG_ERROR, "incorrect codes\n");
return AVERROR_INVALIDDATA;
@@ -192,8 +189,6 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
subtable_bits = FFMIN(subtable_bits, table_nb_bits);
j = (flags & INIT_VLC_LE) ? bitswap_32(code_prefix) >> (32 - table_nb_bits) : code_prefix;
table[j][1] = -subtable_bits;
- ff_dlog(NULL, "%4x: n=%d (subtable)\n",
- j, codes[i].bits + table_nb_bits);
index = build_table(vlc, subtable_bits, k-i, codes+i, flags);
if (index < 0)
return index;
diff --git a/ext/at3_standalone/get_bits.h b/ext/at3_standalone/get_bits.h
index f7eab05f1a..0a4b581785 100644
--- a/ext/at3_standalone/get_bits.h
+++ b/ext/at3_standalone/get_bits.h
@@ -18,23 +18,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-/**
- * @file
- * bitstream reader API header.
- */
-
-#ifndef AVCODEC_GET_BITS_H
-#define AVCODEC_GET_BITS_H
-
+#pragma once
#include
#include "compat.h"
#include "intreadwrite.h"
#include "mathematics.h"
- /*
-#include "libavutil/log.h"
-#include "libavutil/avassert.h"
-*/
/*
* Safe bitstream reading:
@@ -474,4 +463,56 @@ static inline int get_bits_left(GetBitContext *gb)
return gb->size_in_bits - get_bits_count(gb);
}
-#endif /* AVCODEC_GET_BITS_H */
+#include "intreadwrite.h"
+
+typedef struct GetByteContext {
+ const uint8_t *buffer, *buffer_end, *buffer_start;
+} GetByteContext;
+
+#define DEF(type, name, bytes, read, write) \
+static inline type bytestream_get_ ## name(const uint8_t **b) \
+{ \
+ (*b) += bytes; \
+ return read(*b - bytes); \
+} \
+static inline type bytestream2_get_ ## name ## u(GetByteContext *g) \
+{ \
+ return bytestream_get_ ## name(&g->buffer); \
+} \
+static inline type bytestream2_get_ ## name(GetByteContext *g) \
+{ \
+ if (g->buffer_end - g->buffer < bytes) { \
+ g->buffer = g->buffer_end; \
+ return 0; \
+ } \
+ return bytestream2_get_ ## name ## u(g); \
+} \
+static inline type bytestream2_peek_ ## name(GetByteContext *g) \
+{ \
+ if (g->buffer_end - g->buffer < bytes) \
+ return 0; \
+ return read(g->buffer); \
+}
+
+DEF(uint64_t, le64, 8, AV_RL64, AV_WL64)
+DEF(unsigned int, le32, 4, AV_RL32, AV_WL32)
+DEF(unsigned int, le24, 3, AV_RL24, AV_WL24)
+DEF(unsigned int, le16, 2, AV_RL16, AV_WL16)
+DEF(uint64_t, be64, 8, AV_RB64, AV_WB64)
+DEF(unsigned int, be32, 4, AV_RB32, AV_WB32)
+DEF(unsigned int, be24, 3, AV_RB24, AV_WB24)
+DEF(unsigned int, be16, 2, AV_RB16, AV_WB16)
+DEF(unsigned int, byte, 1, AV_RB8, AV_WB8)
+
+# define bytestream2_get_ne16 bytestream2_get_le16
+# define bytestream2_get_ne24 bytestream2_get_le24
+# define bytestream2_get_ne32 bytestream2_get_le32
+# define bytestream2_get_ne64 bytestream2_get_le64
+# define bytestream2_get_ne16u bytestream2_get_le16u
+# define bytestream2_get_ne24u bytestream2_get_le24u
+# define bytestream2_get_ne32u bytestream2_get_le32u
+# define bytestream2_get_ne64u bytestream2_get_le64u
+# define bytestream2_peek_ne16 bytestream2_peek_le16
+# define bytestream2_peek_ne24 bytestream2_peek_le24
+# define bytestream2_peek_ne32 bytestream2_peek_le32
+# define bytestream2_peek_ne64 bytestream2_peek_le64
diff --git a/ext/at3_standalone/intfloat.h b/ext/at3_standalone/intfloat.h
deleted file mode 100644
index 744abec421..0000000000
--- a/ext/at3_standalone/intfloat.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2011 Mans Rullgard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_INTFLOAT_H
-#define AVUTIL_INTFLOAT_H
-
-#include
-#include "compat.h"
-
-union av_intfloat32 {
- uint32_t i;
- float f;
-};
-
-union av_intfloat64 {
- uint64_t i;
- double f;
-};
-
-/**
- * Reinterpret a 32-bit integer as a float.
- */
-static av_always_inline float av_int2float(uint32_t i)
-{
- union av_intfloat32 v;
- v.i = i;
- return v.f;
-}
-
-/**
- * Reinterpret a float as a 32-bit integer.
- */
-static av_always_inline uint32_t av_float2int(float f)
-{
- union av_intfloat32 v;
- v.f = f;
- return v.i;
-}
-
-/**
- * Reinterpret a 64-bit integer as a double.
- */
-static av_always_inline double av_int2double(uint64_t i)
-{
- union av_intfloat64 v;
- v.i = i;
- return v.f;
-}
-
-/**
- * Reinterpret a double as a 64-bit integer.
- */
-static av_always_inline uint64_t av_double2int(double f)
-{
- union av_intfloat64 v;
- v.f = f;
- return v.i;
-}
-
-#endif /* AVUTIL_INTFLOAT_H */
diff --git a/ext/at3_standalone/log.h b/ext/at3_standalone/log.h
deleted file mode 100644
index 9c90097b32..0000000000
--- a/ext/at3_standalone/log.h
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_LOG_H
-#define AVUTIL_LOG_H
-
-#include
-#include "compat.h"
-
-typedef enum {
- AV_CLASS_CATEGORY_NA = 0,
- AV_CLASS_CATEGORY_INPUT,
- AV_CLASS_CATEGORY_OUTPUT,
- AV_CLASS_CATEGORY_MUXER,
- AV_CLASS_CATEGORY_DEMUXER,
- AV_CLASS_CATEGORY_ENCODER,
- AV_CLASS_CATEGORY_DECODER,
- AV_CLASS_CATEGORY_FILTER,
- AV_CLASS_CATEGORY_BITSTREAM_FILTER,
- AV_CLASS_CATEGORY_SWSCALER,
- AV_CLASS_CATEGORY_SWRESAMPLER,
- AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40,
- AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
- AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT,
- AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
- AV_CLASS_CATEGORY_DEVICE_OUTPUT,
- AV_CLASS_CATEGORY_DEVICE_INPUT,
- AV_CLASS_CATEGORY_NB, ///< not part of ABI/API
-}AVClassCategory;
-
-#define AV_IS_INPUT_DEVICE(category) \
- (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_INPUT))
-
-#define AV_IS_OUTPUT_DEVICE(category) \
- (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_OUTPUT))
-
-struct AVOptionRanges;
-
-/**
- * Describe the class of an AVClass context structure. That is an
- * arbitrary struct of which the first field is a pointer to an
- * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.).
- */
-typedef struct AVClass {
- /**
- * The name of the class; usually it is the same name as the
- * context structure type to which the AVClass is associated.
- */
- const char* class_name;
-
- /**
- * A pointer to a function which returns the name of a context
- * instance ctx associated with the class.
- */
- const char* (*item_name)(void* ctx);
-
- /**
- * a pointer to the first option specified in the class if any or NULL
- *
- * @see av_set_default_options()
- */
- const struct AVOption *option;
-
- /**
- * LIBAVUTIL_VERSION with which this structure was created.
- * This is used to allow fields to be added without requiring major
- * version bumps everywhere.
- */
-
- int version;
-
- /**
- * Offset in the structure where log_level_offset is stored.
- * 0 means there is no such variable
- */
- int log_level_offset_offset;
-
- /**
- * Offset in the structure where a pointer to the parent context for
- * logging is stored. For example a decoder could pass its AVCodecContext
- * to eval as such a parent context, which an av_log() implementation
- * could then leverage to display the parent context.
- * The offset can be NULL.
- */
- int parent_log_context_offset;
-
- /**
- * Return next AVOptions-enabled child or NULL
- */
- void* (*child_next)(void *obj, void *prev);
-
- /**
- * Return an AVClass corresponding to the next potential
- * AVOptions-enabled child.
- *
- * The difference between child_next and this is that
- * child_next iterates over _already existing_ objects, while
- * child_class_next iterates over _all possible_ children.
- */
- const struct AVClass* (*child_class_next)(const struct AVClass *prev);
-
- /**
- * Category used for visualization (like color)
- * This is only set if the category is equal for all objects using this class.
- * available since version (51 << 16 | 56 << 8 | 100)
- */
- AVClassCategory category;
-
- /**
- * Callback to return the category.
- * available since version (51 << 16 | 59 << 8 | 100)
- */
- AVClassCategory (*get_category)(void* ctx);
-
- /**
- * Callback to return the supported/allowed ranges.
- * available since version (52.12)
- */
- int (*query_ranges)(struct AVOptionRanges **, void *obj, const char *key, int flags);
-} AVClass;
-
-/**
- * @addtogroup lavu_log
- *
- * @{
- *
- * @defgroup lavu_log_constants Logging Constants
- *
- * @{
- */
-
-/**
- * Print no output.
- */
-#define AV_LOG_QUIET -8
-
-/**
- * Something went really wrong and we will crash now.
- */
-#define AV_LOG_PANIC 0
-
-/**
- * Something went wrong and recovery is not possible.
- * For example, no header was found for a format which depends
- * on headers or an illegal combination of parameters is used.
- */
-#define AV_LOG_FATAL 8
-
-/**
- * Something went wrong and cannot losslessly be recovered.
- * However, not all future data is affected.
- */
-#define AV_LOG_ERROR 16
-
-/**
- * Something somehow does not look correct. This may or may not
- * lead to problems. An example would be the use of '-vstrict -2'.
- */
-#define AV_LOG_WARNING 24
-
-/**
- * Standard information.
- */
-#define AV_LOG_INFO 32
-
-/**
- * Detailed information.
- */
-#define AV_LOG_VERBOSE 40
-
-/**
- * Stuff which is only useful for libav* developers.
- */
-#define AV_LOG_DEBUG 48
-
-/**
- * Extremely verbose debugging, useful for libav* development.
- */
-#define AV_LOG_TRACE 56
-
-#define AV_LOG_MAX_OFFSET (AV_LOG_TRACE - AV_LOG_QUIET)
-
-/**
- * @}
- */
-
-/**
- * Sets additional colors for extended debugging sessions.
- * @code
- av_log(ctx, AV_LOG_DEBUG|AV_LOG_C(134), "Message in purple\n");
- @endcode
- * Requires 256color terminal support. Uses outside debugging is not
- * recommended.
- */
-#define AV_LOG_C(x) ((x) << 8)
-
-/**
- * Send the specified message to the log if the level is less than or equal
- * to the current av_log_level. By default, all logging messages are sent to
- * stderr. This behavior can be altered by setting a different logging callback
- * function.
- * @see av_log_set_callback
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct or NULL if general log.
- * @param level The importance level of the message expressed using a @ref
- * lavu_log_constants "Logging Constant".
- * @param fmt The format string (printf-compatible) that specifies how
- * subsequent arguments are converted to output.
- */
-void av_log(void *avcl, int level, const char *fmt, ...) av_printf_format(3, 4);
-
-
-/**
- * Send the specified message to the log if the level is less than or equal
- * to the current av_log_level. By default, all logging messages are sent to
- * stderr. This behavior can be altered by setting a different logging callback
- * function.
- * @see av_log_set_callback
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message expressed using a @ref
- * lavu_log_constants "Logging Constant".
- * @param fmt The format string (printf-compatible) that specifies how
- * subsequent arguments are converted to output.
- * @param vl The arguments referenced by the format string.
- */
-void av_vlog(void *avcl, int level, const char *fmt, va_list vl);
-
-/**
- * Get the current log level
- *
- * @see lavu_log_constants
- *
- * @return Current log level
- */
-int av_log_get_level(void);
-
-/**
- * Set the log level
- *
- * @see lavu_log_constants
- *
- * @param level Logging level
- */
-void av_log_set_level(int level);
-
-/**
- * Set the logging callback
- *
- * @note The callback must be thread safe, even if the application does not use
- * threads itself as some codecs are multithreaded.
- *
- * @see av_log_default_callback
- *
- * @param callback A logging function with a compatible signature.
- */
-void av_log_set_callback(void (*callback)(void*, int, const char*, va_list));
-
-/**
- * Default logging callback
- *
- * It prints the message to stderr, optionally colorizing it.
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message expressed using a @ref
- * lavu_log_constants "Logging Constant".
- * @param fmt The format string (printf-compatible) that specifies how
- * subsequent arguments are converted to output.
- * @param vl The arguments referenced by the format string.
- */
-void av_log_default_callback(void *avcl, int level, const char *fmt,
- va_list vl);
-
-/**
- * Return the context name
- *
- * @param ctx The AVClass context
- *
- * @return The AVClass class_name
- */
-const char* av_default_item_name(void* ctx);
-AVClassCategory av_default_get_category(void *ptr);
-
-/**
- * Format a line of log the same way as the default callback.
- * @param line buffer to receive the formatted line
- * @param line_size size of the buffer
- * @param print_prefix used to store whether the prefix must be printed;
- * must point to a persistent integer initially set to 1
- */
-void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl,
- char *line, int line_size, int *print_prefix);
-
-#if FF_API_DLOG
-/**
- * av_dlog macros
- * @deprecated unused
- * Useful to print debug messages that shouldn't get compiled in normally.
- */
-
-#ifdef DEBUG
-# define av_dlog(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__)
-#else
-# define av_dlog(pctx, ...) do { if (0) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0)
-#endif
-#endif /* FF_API_DLOG */
-
-/**
- * Skip repeated messages, this requires the user app to use av_log() instead of
- * (f)printf as the 2 would otherwise interfere and lead to
- * "Last message repeated x times" messages below (f)printf messages with some
- * bad luck.
- * Also to receive the last, "last repeated" line if any, the user app must
- * call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end
- */
-#define AV_LOG_SKIP_REPEATED 1
-
-/**
- * Include the log severity in messages originating from codecs.
- *
- * Results in messages such as:
- * [rawvideo @ 0xDEADBEEF] [error] encode did not produce valid pts
- */
-#define AV_LOG_PRINT_LEVEL 2
-
-void av_log_set_flags(int arg);
-int av_log_get_flags(void);
-
-#ifdef DEBUG
-# define ff_dlog(ctx, ...) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__)
-#else
-# define ff_dlog(ctx, ...) do { if (0) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0)
-#endif
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_LOG_H */
diff --git a/ext/at3_standalone/mathematics.h b/ext/at3_standalone/mathematics.h
index f44d89d882..5fd4af7a2d 100644
--- a/ext/at3_standalone/mathematics.h
+++ b/ext/at3_standalone/mathematics.h
@@ -26,7 +26,6 @@
#include
#include "compat.h"
-#include "intfloat.h"
extern const uint32_t ff_inverse[257];
extern const uint8_t ff_sqrt_tab[256];
diff --git a/ext/at3_standalone/mdct_template.c b/ext/at3_standalone/mdct_template.c
index 02d4677655..f17dd1c118 100644
--- a/ext/at3_standalone/mdct_template.c
+++ b/ext/at3_standalone/mdct_template.c
@@ -21,24 +21,10 @@
#include
#include
-#include "common.h"
+
#include "mathematics.h"
#include "fft.h"
-
-/**
- * @file
- * MDCT/IMDCT transforms.
- */
-
-#if FFT_FLOAT
-# define RSCALE(x) (x)
-#else
-#if FFT_FIXED_32
-# define RSCALE(x) (((x) + 32) >> 6)
-#else /* FFT_FIXED_32 */
-# define RSCALE(x) ((x) >> 1)
-#endif /* FFT_FIXED_32 */
-#endif
+#include "mem.h"
/**
* init MDCT or IMDCT computation.
@@ -174,13 +160,13 @@ void ff_mdct_calc_c(FFTContext *s, FFTSample *out, const FFTSample *input)
/* pre rotation */
for(i=0;i