From 5499467d5d3d517f0d65ede72a6ac22cf6059eca Mon Sep 17 00:00:00 2001 From: Djordje Pesut Date: Mon, 20 Jul 2015 13:36:15 +0200 Subject: avcodec: Template creation for AAC decoder (SBR-module) Move the existing code to a new template file. Signed-off-by: Nedeljko Babic Signed-off-by: Michael Niedermayer --- libavcodec/aacsbr.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'libavcodec/aacsbr.h') diff --git a/libavcodec/aacsbr.h b/libavcodec/aacsbr.h index f5e33ab688..476bc65c54 100644 --- a/libavcodec/aacsbr.h +++ b/libavcodec/aacsbr.h @@ -33,6 +33,51 @@ #include "aac.h" #include "sbr.h" +#define ENVELOPE_ADJUSTMENT_OFFSET 2 +#define NOISE_FLOOR_OFFSET FIXR(6.0f) + +/** + * SBR VLC tables + */ +enum { + T_HUFFMAN_ENV_1_5DB, + F_HUFFMAN_ENV_1_5DB, + T_HUFFMAN_ENV_BAL_1_5DB, + F_HUFFMAN_ENV_BAL_1_5DB, + T_HUFFMAN_ENV_3_0DB, + F_HUFFMAN_ENV_3_0DB, + T_HUFFMAN_ENV_BAL_3_0DB, + F_HUFFMAN_ENV_BAL_3_0DB, + T_HUFFMAN_NOISE_3_0DB, + T_HUFFMAN_NOISE_BAL_3_0DB, +}; + +/** + * bs_frame_class - frame class of current SBR frame (14496-3 sp04 p98) + */ +enum { + FIXFIX, + FIXVAR, + VARFIX, + VARVAR, +}; + +enum { + EXTENSION_ID_PS = 2, +}; + +static const int8_t vlc_sbr_lav[10] = + { 60, 60, 24, 24, 31, 31, 12, 12, 31, 12 }; + +#define SBR_INIT_VLC_STATIC(num, size) \ + INIT_VLC_STATIC(&vlc_sbr[num], 9, sbr_tmp[num].table_size / sbr_tmp[num].elem_size, \ + sbr_tmp[num].sbr_bits , 1, 1, \ + sbr_tmp[num].sbr_codes, sbr_tmp[num].elem_size, sbr_tmp[num].elem_size, \ + size) + +#define SBR_VLC_ROW(name) \ + { name ## _codes, name ## _bits, sizeof(name ## _codes), sizeof(name ## _codes[0]) } + /** Initialize SBR. */ void ff_aac_sbr_init(void); /** Initialize one SBR context. */ -- cgit v1.2.3