summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/aac_tablegen.c2
-rw-r--r--libavcodec/aac_tablegen.h5
-rw-r--r--libavcodec/aac_tablegen_decl.h2
-rw-r--r--libavcodec/aaccoder.c1
-rw-r--r--libavcodec/aacenc.c4
-rw-r--r--libavcodec/aacenc.h2
6 files changed, 9 insertions, 7 deletions
diff --git a/libavcodec/aac_tablegen.c b/libavcodec/aac_tablegen.c
index 33a179f51e..2d13211d45 100644
--- a/libavcodec/aac_tablegen.c
+++ b/libavcodec/aac_tablegen.c
@@ -33,5 +33,7 @@ int main(void)
WRITE_ARRAY("const", float, ff_aac_pow2sf_tab);
+ WRITE_ARRAY("const", float, ff_aac_pow34sf_tab);
+
return 0;
}
diff --git a/libavcodec/aac_tablegen.h b/libavcodec/aac_tablegen.h
index bf71e59cb5..8b223f972e 100644
--- a/libavcodec/aac_tablegen.h
+++ b/libavcodec/aac_tablegen.h
@@ -30,12 +30,15 @@
#else
#include "libavutil/mathematics.h"
float ff_aac_pow2sf_tab[428];
+float ff_aac_pow34sf_tab[428];
av_cold void ff_aac_tableinit(void)
{
int i;
- for (i = 0; i < 428; i++)
+ for (i = 0; i < 428; i++) {
ff_aac_pow2sf_tab[i] = pow(2, (i - POW_SF2_ZERO) / 4.0);
+ ff_aac_pow34sf_tab[i] = pow(ff_aac_pow2sf_tab[i], 3.0/4.0);
+ }
}
#endif /* CONFIG_HARDCODED_TABLES */
diff --git a/libavcodec/aac_tablegen_decl.h b/libavcodec/aac_tablegen_decl.h
index 5105dae483..ef86f85e1f 100644
--- a/libavcodec/aac_tablegen_decl.h
+++ b/libavcodec/aac_tablegen_decl.h
@@ -28,9 +28,11 @@
#if CONFIG_HARDCODED_TABLES
#define ff_aac_tableinit()
extern const float ff_aac_pow2sf_tab[428];
+extern const float ff_aac_pow34sf_tab[428];
#else
void ff_aac_tableinit(void);
extern float ff_aac_pow2sf_tab[428];
+extern float ff_aac_pow34sf_tab[428];
#endif /* CONFIG_HARDCODED_TABLES */
#endif /* AVCODEC_AAC_TABLEGEN_DECL_H */
diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c
index 5bdba46b92..17b14d6381 100644
--- a/libavcodec/aaccoder.c
+++ b/libavcodec/aaccoder.c
@@ -39,6 +39,7 @@
#include "aac.h"
#include "aacenc.h"
#include "aactab.h"
+#include "aac_tablegen_decl.h"
/** Frequency in Hz for lower limit of noise substitution **/
#define NOISE_LOW_LIMIT 4500
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index f05f51b571..a3c31de684 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -58,7 +58,6 @@
av_log(avctx, AV_LOG_WARNING, __VA_ARGS__); \
}
-float ff_aac_pow34sf_tab[428];
static const uint8_t swb_size_1024_96[] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8,
@@ -855,9 +854,6 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
ff_aac_tableinit();
- for (i = 0; i < 428; i++)
- ff_aac_pow34sf_tab[i] = sqrt(ff_aac_pow2sf_tab[i] * sqrt(ff_aac_pow2sf_tab[i]));
-
avctx->initial_padding = 1024;
ff_af_queue_init(avctx, &s->afq);
diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h
index 966c70889e..42104552eb 100644
--- a/libavcodec/aacenc.h
+++ b/libavcodec/aacenc.h
@@ -95,8 +95,6 @@ typedef struct AACEncContext {
} buffer;
} AACEncContext;
-extern float ff_aac_pow34sf_tab[428];
-
void ff_aac_coder_init_mips(AACEncContext *c);
#endif /* AVCODEC_AACENC_H */