[FFmpeg-devel] [PATCH 2/3] aacenc: move the generation of ff_aac_pow34sf_tab[]
Claudio Freire
klaussfreire at gmail.com
Tue Jul 21 03:05:18 CEST 2015
This will need rebasing, the fixed tablegen got in recently
On Fri, Jul 17, 2015 at 6:20 PM, Rostislav Pehlivanov
<atomnuker at gmail.com> wrote:
> This commit moves the generation of ff_aac_pow34sf_tab[] out of the
> encoder and into the table generator. The original commit log for
> this table in 2011 actually mentions that it should be moved outside
> but this never happened.
>
> This is the first commit which cleans up the encoder a little.
> ---
> libavcodec/aac_tablegen.c | 2 ++
> libavcodec/aac_tablegen.h | 5 ++++-
> libavcodec/aac_tablegen_decl.h | 2 ++
> libavcodec/aaccoder.c | 1 +
> libavcodec/aacenc.c | 4 ----
> libavcodec/aacenc.h | 2 --
> 6 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/libavcodec/aac_tablegen.c b/libavcodec/aac_tablegen.c
> index 33a179f..2d13211 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 bf71e59..8b223f9 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 5105dae..ef86f85 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 5bdba46..17b14d6 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 f05f51b..a3c31de 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 966c708..4210455 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 */
> --
> 2.4.3.573.g4eafbef
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list