151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick/******************************************************************************
251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *                                                                            *
351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Copyright (C) 2018 The Android Open Source Project
451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Licensed under the Apache License, Version 2.0 (the "License");
651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * you may not use this file except in compliance with the License.
751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * You may obtain a copy of the License at:
851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * http://www.apache.org/licenses/LICENSE-2.0
1051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
1151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Unless required by applicable law or agreed to in writing, software
1251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * distributed under the License is distributed on an "AS IS" BASIS,
1351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * See the License for the specific language governing permissions and
1551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * limitations under the License.
1651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
1751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *****************************************************************************
1851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
1951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick*/
2051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#ifndef _IXHEAACD_FUNCTION_SELECTOR_H_
2151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define _IXHEAACD_FUNCTION_SELECTOR_H_
2251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include <stdio.h>
2451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include <string.h>
2551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_sbr_common.h"
2651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include <ixheaacd_type_def.h>
2751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_constants.h"
2951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_intrinsics.h"
3051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_common_rom.h"
3151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_sbrdecsettings.h"
3251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_bitbuffer.h"
3351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_defines.h"
3451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
3551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_pns.h"
3651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
3751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include <ixheaacd_aac_rom.h>
3851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_pulsedata.h"
3951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
4051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_drc_data_struct.h"
4151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
4251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_lt_predict.h"
4351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
4451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_channelinfo.h"
4551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_drc_dec.h"
4651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
4751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_sbrdecoder.h"
4851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_sbr_scale.h"
4951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_lpp_tran.h"
5051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_env_extr_part.h"
5151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include <ixheaacd_sbr_rom.h>
5251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_hybrid.h"
5351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_ps_dec.h"
5451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_env_extr.h"
5551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
5651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#include "ixheaacd_basic_funcs.h"
5751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
5851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern WORD32 (*ixheaacd_fix_div)(WORD32, WORD32);
5951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_covariance_matrix_calc)(WORD32 *,
6051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                               ixheaacd_lpp_trans_cov_matrix *,
6151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                               WORD32);
6251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_covariance_matrix_calc_2)(
6351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    ixheaacd_lpp_trans_cov_matrix *, WORD32 *, WORD32, WORD16);
6451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_over_lap_add1)(WORD32 *, WORD32 *, WORD16 *,
6551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      const WORD16 *, WORD16, WORD16, WORD16);
6651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_over_lap_add2)(WORD32 *, WORD32 *, WORD32 *,
6751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      const WORD16 *, WORD16, WORD16, WORD16);
6851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
6951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_decorr_filter1)(ia_ps_dec_struct *,
7051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                       ia_ps_tables_struct *, WORD16 *);
7151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
7251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_decorr_filter2)(ia_ps_dec_struct *, WORD32 *, WORD32 *,
7351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                       WORD32 *, WORD32 *,
7451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                       ia_ps_tables_struct *, WORD16 *);
7551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
7651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern WORD32 (*ixheaacd_divide16_pos)(WORD32, WORD32);
7751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
7851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_decorrelation)(ia_ps_dec_struct *, WORD32 *, WORD32 *,
7951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      WORD32 *, WORD32 *,
8051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      ia_ps_tables_struct *);
8151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
8251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_apply_rot)(ia_ps_dec_struct *, WORD32 *, WORD32 *,
8351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                  WORD32 *, WORD32 *, ia_sbr_tables_struct *,
8451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                  const WORD16 *);
8551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
8651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_conv_ergtoamplitudelp)(WORD32, WORD16, WORD16 *,
8751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                              WORD16 *, WORD16 *, WORD16 *);
8851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
8951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_conv_ergtoamplitude)(WORD32, WORD16, WORD16 *, WORD16 *,
9051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                            WORD16 *, WORD16 *);
9151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
9251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_adjust_scale)(WORD32 **, WORD32 **, WORD32, WORD32,
9351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                     WORD32, WORD32, WORD32, FLAG);
9451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
9551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern WORD16 (*ixheaacd_ixheaacd_expsubbandsamples)(WORD32 **, WORD32 **,
9651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                                     WORD32, WORD32, WORD32,
9751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                                     WORD32, FLAG);
9851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
9951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_enery_calc_per_subband)(WORD32, WORD32, WORD32, WORD32,
10051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                               WORD32, WORD16 *, FLAG,
10151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                               ia_sbr_tables_struct *,
10251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                               WORD32 *);
10351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
10451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_harm_idx_zerotwolp)(WORD32 *, WORD16 *, WORD, WORD16 *,
10551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                           const WORD32 *, WORD16 *, WORD, FLAG,
10651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                           WORD32);
10751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
10851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_tns_ar_filter_fixed)(WORD32 *, WORD32, WORD32, WORD32 *,
10951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                            WORD32, WORD32, WORD);
11051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
11151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_tns_ar_filter)(WORD32 *, WORD32, WORD32, WORD16 *,
11251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      WORD32, WORD32, WORD, WORD32 *);
11351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
11451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_tns_parcor_lpc_convert)(WORD16 *, WORD16 *, WORD16 *,
11551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                               WORD);
11651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
11751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern WORD32 (*ixheaacd_calc_max_spectral_line)(WORD32 *, WORD32);
11851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
11951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_post_twiddle)(WORD32[], WORD32[],
12051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                     ia_aac_dec_imdct_tables_struct *, WORD);
12151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
12251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_post_twid_overlap_add)(WORD16[], WORD32[],
12351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                              ia_aac_dec_imdct_tables_struct *,
12451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                              WORD, WORD32 *, WORD16,
12551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                              const WORD16 *, WORD16);
12651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
12751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_neg_shift_spec)(WORD32 *, WORD16 *, WORD16, WORD16);
12851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
12951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_spec_to_overlapbuf)(WORD32 *, WORD32 *, WORD32, WORD32);
13051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
13151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_overlap_buf_out)(WORD16 *, WORD32 *, WORD32,
13251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                        const WORD16);
13351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
13451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_overlap_out_copy)(WORD16 *, WORD32 *, WORD32 *,
13551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                         const WORD16);
13651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
13751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_pretwiddle_compute)(WORD32 *, WORD32 *, WORD32 *,
13851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                           ia_aac_dec_imdct_tables_struct *,
13951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                           WORD, WORD32);
14051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
14151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_imdct_using_fft)(ia_aac_dec_imdct_tables_struct *,
14251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                        WORD32, WORD32 *, WORD32 *);
14351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
14451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_complex_fft_p2)(WORD32 *xr, WORD32 *xi, WORD32 nlength,
14551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                       WORD32 fft_mode, WORD32 *preshift);
14651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
14751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_mps_complex_fft_64)(WORD32 *ptr_x, WORD32 *fin_re,
14851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                           WORD32 *fin_im, WORD32 nlength);
14951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
15051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_mps_synt_pre_twiddle)(WORD32 *ptr_in, WORD32 *table_re,
15151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                             WORD32 *table_im,
15251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                             WORD32 resolution);
15351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
15451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_mps_synt_post_twiddle)(WORD32 *ptr_in, WORD32 *table_re,
15551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                              WORD32 *table_im,
15651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                              WORD32 resolution);
15751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
15851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_calc_pre_twid)(WORD32 *ptr_x, WORD32 *r_ptr,
15951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      WORD32 *i_ptr, WORD32 nlength,
16051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      const WORD32 *cos_ptr,
16151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                      const WORD32 *sin_ptr);
16251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
16351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_calc_post_twid)(WORD32 *ptr_x, WORD32 *r_ptr,
16451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                       WORD32 *i_ptr, WORD32 nlength,
16551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                       const WORD32 *cos_ptr,
16651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                       const WORD32 *sin_ptr);
16751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
16851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_mps_synt_post_fft_twiddle)(
16951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    WORD32 resolution, WORD32 *fin_re, WORD32 *fin_im, WORD32 *table_re,
17051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    WORD32 *table_im, WORD32 *state);
17151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_mps_synt_out_calc)(WORD32 resolution, WORD32 *out,
17251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                          WORD32 *state,
17351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                          const WORD32 *filter_coeff);
17451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
17551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_fft_15_ld)(WORD32 *inp, WORD32 *op, WORD32 *fft3out,
17651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                  UWORD8 *re_arr_tab_sml_240_ptr);
17751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
17851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_aac_ld_dec_rearrange)(WORD32 *ip, WORD32 *op,
17951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                             WORD32 mdct_len_2,
18051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                             UWORD8 *re_arr_tab);
18151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
18251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_fft32x32_ld)(
18351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    ia_aac_dec_imdct_tables_struct *imdct_tables_ptr, WORD32 npoints,
18451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    WORD32 *ptr_x, WORD32 *ptr_y);
18551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
18651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_fft32x32_ld2)(
18751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    ia_aac_dec_imdct_tables_struct *imdct_tables_ptr, WORD32 npoints,
18851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    WORD32 *ptr_x, WORD32 *ptr_y);
18951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
19051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern WORD16 (*ixheaacd_neg_expo_inc)(WORD16 neg_expo);
19151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
19251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_inv_dit_fft_8pt)(WORD32 *x, WORD32 *real, WORD32 *imag);
19351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
19451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickextern VOID (*ixheaacd_scale_factor_process)(
19551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    WORD32 *x_invquant, WORD16 *scale_fact, WORD no_band, WORD8 *width,
19651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    WORD32 *scale_tables_ptr, WORD32 total_channels, WORD32 object_type,
19751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick    WORD32 aac_sf_data_resil_flag);
19851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
19951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#endif /* _IXHEAACD_FUNCTION_SELECTOR_H_ */
200