/******************************************************************************
 *                                                                            *
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 *****************************************************************************
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
*/
#ifndef IXHEAACD_AAC_ROM_H
#define IXHEAACD_AAC_ROM_H

#define AAC_NF_NO_RANDOM_VAL 512
#define MAX_CB_SIZE 13

typedef struct {
  WORD32 ixheaacd_pow_table_Q13[129];
  WORD32 scale_table[4];
  WORD8 tns_max_bands_tbl[12][2];
  WORD16 tns_coeff3_16[8];
  WORD16 tns_coeff4_16[16];
  WORD32 scale_mant_tab[4];

  WORD32 tns_coeff3[8];
  WORD32 tns_coeff4[16];

  WORD32 tns_coeff3_32[8];
  WORD32 tns_coeff4_32[16];
  WORD32 tns_max_bands_tbl_usac[16][2];

  WORD8 tns_max_bands_tbl_ld[12];
  WORD8 tns_max_bands_tbl_480[12];

} ia_aac_dec_block_tables_struct;

extern const ia_aac_dec_block_tables_struct ixheaacd_aac_block_tables;

typedef struct {
  WORD8 ixheaacd_sfb_96_1024[43];
  WORD8 ixheaacd_sfb_96_128[14];
  WORD8 ixheaacd_sfb_64_1024[49];
  WORD8 ixheaacd_sfb_48_1024[51];
  WORD8 ixheaacd_sfb_48_128[16];
  WORD8 ixheaacd_sfb_32_1024[53];
  WORD8 ixheaacd_sfb_24_1024[49];
  WORD8 ixheaacd_sfb_24_128[17];
  WORD8 ixheaacd_sfb_16_1024[45];
  WORD8 ixheaacd_sfb_16_128[17];
  WORD8 ixheaacd_sfb_8_1024[42];
  WORD8 ixheaacd_sfb_8_128[17];

  ia_sampling_rate_info_struct str_sample_rate_info[13];

  UWORD32 idx_table_hf11[21];
  UWORD32 idx_table_hf10[20];
  UWORD32 idx_table_hf9[23];
  UWORD32 idx_table_hf8[17];
  UWORD32 idx_table_hf7[18];
  UWORD32 idx_table_hf6[17];
  UWORD32 idx_table_hf5[19];
  UWORD32 idx_table_hf4[19];
  UWORD32 idx_table_hf3[27];
  UWORD32 idx_table_hf2[16];
  UWORD32 idx_table_hf1[12];

  UWORD16 input_table_cb11[290];
  UWORD16 input_table_cb10[170];
  UWORD16 input_table_cb9[170];
  UWORD16 input_table_cb8[65];
  UWORD16 input_table_cb7[65];
  UWORD16 input_table_cb6[82];
  UWORD16 input_table_cb5[82];
  UWORD16 input_table_cb4[82];
  UWORD16 input_table_cb3[82];
  UWORD16 input_table_cb2[82];
  UWORD16 input_table_cb1[82];
  UWORD16 huffman_code_book_scl[122];
  UWORD32 huffman_code_book_scl_index[33];

  WORD8 ixheaacd_sfb_48_512[37];
  WORD8 ixheaacd_sfb_32_512[38];
  WORD8 ixheaacd_sfb_24_512[32];

  WORD8 ixheaacd_sfb_48_480[36];
  WORD8 ixheaacd_sfb_32_480[38];
  WORD8 ixheaacd_sfb_24_480[31];

} ia_aac_dec_huffman_tables_struct;

extern const ia_aac_dec_huffman_tables_struct ixheaacd_aac_huffmann_tables;

typedef struct {
  WORD16 cosine_array_2048_256[514];
  WORD8 dig_rev_table8_long[64];
  WORD8 dig_rev_table8_short[8];
  WORD32 fft_twiddle[64 * 7];

  WORD16 only_long_window_sine[1024];
  WORD16 only_long_window_kbd[1024];
  WORD16 only_short_window_sine[128];
  WORD16 only_short_window_kbd[128];

  WORD16 cosine_array_2048_256p[514];
  WORD32 w1024[768];
  UWORD8 bit_rev_1024[256];
  UWORD8 bit_rev_512[64];
  UWORD8 bit_rev_128[16];
  UWORD8 bit_rev_32[4];
  WORD32 w_256[504];
  WORD32 low_overlap_win[512];
  WORD32 window_sine_512[512];
  WORD32 cosine_array_1024[512];

  WORD32 low_overlap_win_480[480];
  WORD32 window_sine_480[480];

  UWORD8 re_arr_tab_16[240];
  UWORD8 re_arr_tab_sml_240[240];

  WORD32 cosine_array_960[480];
  WORD32 w_16[24];

  WORD16 window_sine_480_eld[1920];
  WORD16 window_sine_512_eld[2048];

} ia_aac_dec_imdct_tables_struct;

extern const ia_aac_dec_imdct_tables_struct ixheaacd_imdct_tables;

typedef struct {
  WORD16 *sfb_index;
  WORD8 *sfb_width;

} ia_aac_sfb_info;

typedef struct {
  ia_aac_dec_block_tables_struct *pstr_block_tables;
  ia_aac_dec_huffman_tables_struct *pstr_huffmann_tables;
  ia_aac_dec_imdct_tables_struct *pstr_imdct_tables;

  ia_aac_sfb_info str_aac_sfb_info[4];
  WORD8 *scale_factor_bands_long[12];
  WORD8 *scale_factor_bands_short[12];
  WORD16 sfb_long_table[52];
  WORD16 sfb_short_table[16];

  UWORD16 *code_book[MAX_CB_SIZE];
  UWORD32 *index_table[MAX_CB_SIZE];

  WORD8 *scale_fac_bands_512[16];
  WORD8 *scale_fac_bands_480[16];

} ia_aac_dec_tables_struct;

#define ixheaacd_huff_cb_0 0
#define ixheaacd_huff_cb_1 1
#define ixheaacd_huff_cb_2 2
#define ixheaacd_huff_cb_3 3
#define ixheaacd_huff_cb_4 4
#define ixheaacd_huff_cb_5 5
#define ixheaacd_huff_cb_6 6
#define ixheaacd_huff_cb_7 7

#endif /* #ifndef IXHEAACD_AAC_ROM_H */
