diff options
author | Ramesh Katuri <ramesh.katuri@ittiam.com> | 2018-06-01 13:27:00 +0530 |
---|---|---|
committer | Ray Essick <essick@google.com> | 2018-06-07 16:52:19 -0700 |
commit | b3226ce6f80c78946aa3190cec158fb9852272ea (patch) | |
tree | f4e0df5cb15e791d60b23b54a710f3d4d608193a /decoder/ixheaacd_freq_sca.c | |
parent | 8eb646f89b94cf6d0aa26e5bca39ba083a554965 (diff) | |
download | libxaac-b3226ce6f80c78946aa3190cec158fb9852272ea.tar.gz |
Formatting changespie-dr1-devpie-dev
Formatting .c and .h files using clang-format
Formatting .s files
Bug: 80493357
Test: compare object sizes
Change-Id: I38296083c9d2d566a6a2564db2e391e4b2bd43a9
Diffstat (limited to 'decoder/ixheaacd_freq_sca.c')
-rw-r--r-- | decoder/ixheaacd_freq_sca.c | 352 |
1 files changed, 153 insertions, 199 deletions
diff --git a/decoder/ixheaacd_freq_sca.c b/decoder/ixheaacd_freq_sca.c index a29dd8f..1694307 100644 --- a/decoder/ixheaacd_freq_sca.c +++ b/decoder/ixheaacd_freq_sca.c @@ -75,7 +75,6 @@ static WORD32 ixheaacd_int_div(WORD32 num, WORD32 den) { } } - VOID ixheaacd_aac_shellsort(WORD16 *in, WORD32 n) { WORD32 i, j; WORD32 inc; @@ -105,218 +104,179 @@ VOID ixheaacd_aac_shellsort(WORD16 *in, WORD32 n) { } while (inc > 1); } - - - WORD32 -ixheaacd_calc_start_band(WORD32 fs, const WORD32 start_freq, FLOAT32 upsamp_fac) -{ - WORD32 k0_min; - WORD32 fs_mapped = 0; +ixheaacd_calc_start_band(WORD32 fs, const WORD32 start_freq, + FLOAT32 upsamp_fac) { + WORD32 k0_min; + WORD32 fs_mapped = 0; - if (upsamp_fac == 4) { - fs = fs / 2; - } + if (upsamp_fac == 4) { + fs = fs / 2; + } - if (fs >= 0 && fs < 18783) { - fs_mapped = 16000; - } - else if (fs >= 18783 && fs < 23004) { - fs_mapped = 22050; - } - else if (fs >= 23004 && fs < 27713) { - fs_mapped = 24000; - } - else if (fs >= 27713 && fs < 35777) { - fs_mapped = 32000; - } - else if (fs >= 35777 && fs < 42000) { - fs_mapped = 40000; - } - else if (fs >= 42000 && fs < 46009) { - fs_mapped = 44100; - } - else if (fs >= 46009 && fs < 55426) { - fs_mapped = 48000; - } - else if (fs >= 55426 && fs < 75132) { - fs_mapped = 64000; - } - else if (fs >= 75132 && fs < 92017) { - fs_mapped = 88200; - } - else if (fs >= 92017) { - fs_mapped = 96000; - } - else { - return -1; - } + if (fs >= 0 && fs < 18783) { + fs_mapped = 16000; + } else if (fs >= 18783 && fs < 23004) { + fs_mapped = 22050; + } else if (fs >= 23004 && fs < 27713) { + fs_mapped = 24000; + } else if (fs >= 27713 && fs < 35777) { + fs_mapped = 32000; + } else if (fs >= 35777 && fs < 42000) { + fs_mapped = 40000; + } else if (fs >= 42000 && fs < 46009) { + fs_mapped = 44100; + } else if (fs >= 46009 && fs < 55426) { + fs_mapped = 48000; + } else if (fs >= 55426 && fs < 75132) { + fs_mapped = 64000; + } else if (fs >= 75132 && fs < 92017) { + fs_mapped = 88200; + } else if (fs >= 92017) { + fs_mapped = 96000; + } else { + return -1; + } - if (upsamp_fac == 4) { - if (fs_mapped < 32000) { - k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 32) / fs_mapped) + 0.5); - } - else { - if (fs_mapped < 64000) { - k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 32) / fs_mapped) + 0.5); - } - else { - k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 32) / fs_mapped) + 0.5); - } - } + if (upsamp_fac == 4) { + if (fs_mapped < 32000) { + k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 32) / fs_mapped) + 0.5); + } else { + if (fs_mapped < 64000) { + k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 32) / fs_mapped) + 0.5); + } else { + k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 32) / fs_mapped) + 0.5); + } } - else { - if (fs_mapped < 32000) { - k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 64) / fs_mapped) + 0.5); - } - else { - if (fs_mapped < 64000) { - k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 64) / fs_mapped) + 0.5); - } - else { - k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 64) / fs_mapped) + 0.5); - } - } + } else { + if (fs_mapped < 32000) { + k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 64) / fs_mapped) + 0.5); + } else { + if (fs_mapped < 64000) { + k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 64) / fs_mapped) + 0.5); + } else { + k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 64) / fs_mapped) + 0.5); + } } + } - switch (fs_mapped) { - case 16000: - { - WORD32 v_offset[] = { -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7 }; - return (k0_min + v_offset[start_freq]); - } - break; - case 22050: - { - WORD32 v_offset[] = { -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13 }; - return (k0_min + v_offset[start_freq]); - } - break; - case 24000: - { - WORD32 v_offset[] = { -5, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16 }; - return (k0_min + v_offset[start_freq]); - } - break; - case 32000: - { - WORD32 v_offset[] = { -6, -4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16 }; - return (k0_min + v_offset[start_freq]); - } - break; - case 40000: - { - WORD32 v_offset[] = { -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19 }; - return (k0_min + v_offset[start_freq]); - } - break; + switch (fs_mapped) { + case 16000: { + WORD32 v_offset[] = {-8, -7, -6, -5, -4, -3, -2, -1, + 0, 1, 2, 3, 4, 5, 6, 7}; + return (k0_min + v_offset[start_freq]); + } break; + case 22050: { + WORD32 v_offset[] = {-5, -4, -3, -2, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 9, 11, 13}; + return (k0_min + v_offset[start_freq]); + } break; + case 24000: { + WORD32 v_offset[] = {-5, -3, -2, -1, 0, 1, 2, 3, + 4, 5, 6, 7, 9, 11, 13, 16}; + return (k0_min + v_offset[start_freq]); + } break; + case 32000: { + WORD32 v_offset[] = {-6, -4, -2, -1, 0, 1, 2, 3, + 4, 5, 6, 7, 9, 11, 13, 16}; + return (k0_min + v_offset[start_freq]); + } break; + case 40000: { + WORD32 v_offset[] = {-1, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 11, 13, 15, 17, 19}; + return (k0_min + v_offset[start_freq]); + } break; case 44100: case 48000: - case 64000: - { - WORD32 v_offset[] = { -4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20 }; - return (k0_min + v_offset[start_freq]); - } - break; + case 64000: { + WORD32 v_offset[] = {-4, -2, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 9, 11, 13, 16, 20}; + return (k0_min + v_offset[start_freq]); + } break; case 88200: - case 96000: - { - WORD32 v_offset[] = { -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24 }; - return (k0_min + v_offset[start_freq]); - } - break; + case 96000: { + WORD32 v_offset[] = {-2, -1, 0, 1, 2, 3, 4, 5, + 6, 7, 9, 11, 13, 16, 20, 24}; + return (k0_min + v_offset[start_freq]); + } break; - default: - { - WORD32 v_offset[] = { 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24, 28, 33 }; - return (k0_min + v_offset[start_freq]); - } + default: { + WORD32 v_offset[] = {0, 1, 2, 3, 4, 5, 6, 7, + 9, 11, 13, 16, 20, 24, 28, 33}; + return (k0_min + v_offset[start_freq]); } + } } WORD32 -ixheaacd_calc_stop_band(WORD32 fs, const WORD32 stop_freq, FLOAT32 upsamp_fac) -{ - WORD32 result, i; - WORD16 arr_stop_freq[14]; - WORD32 k1_min; - WORD16 arr_diff_stop_freq[13]; - - if (upsamp_fac == 4) { - fs = fs / 2; - if (fs < 32000) { - k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 32) / fs) + 0.5); - } - else { - if (fs < 64000) { - k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 32) / fs) + 0.5); - } - else { - k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 32) / fs) + 0.5); - } - } - } - else { - if (fs < 32000) { - k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 64) / fs) + 0.5); - } - else { - if (fs < 64000) { - k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 64) / fs) + 0.5); - } - else { - k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 64) / fs) + 0.5); - } - } - } +ixheaacd_calc_stop_band(WORD32 fs, const WORD32 stop_freq, FLOAT32 upsamp_fac) { + WORD32 result, i; + WORD16 arr_stop_freq[14]; + WORD32 k1_min; + WORD16 arr_diff_stop_freq[13]; - /*Calculate stop frequency vector*/ - for (i = 0; i <= 13; i++) { - arr_stop_freq[i] = (WORD32)(k1_min * pow(64.0 / k1_min, i / 13.0) + 0.5); + if (upsamp_fac == 4) { + fs = fs / 2; + if (fs < 32000) { + k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 32) / fs) + 0.5); + } else { + if (fs < 64000) { + k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 32) / fs) + 0.5); + } else { + k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 32) / fs) + 0.5); + } } + } else { + if (fs < 32000) { + k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 64) / fs) + 0.5); + } else { + if (fs < 64000) { + k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 64) / fs) + 0.5); + } else { + k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 64) / fs) + 0.5); + } + } + } + /*Calculate stop frequency vector*/ + for (i = 0; i <= 13; i++) { + arr_stop_freq[i] = (WORD32)(k1_min * pow(64.0 / k1_min, i / 13.0) + 0.5); + } - /*Ensure increasing bandwidth */ - for (i = 0; i <= 12; i++) { - arr_diff_stop_freq[i] = arr_stop_freq[i + 1] - arr_stop_freq[i]; - } + /*Ensure increasing bandwidth */ + for (i = 0; i <= 12; i++) { + arr_diff_stop_freq[i] = arr_stop_freq[i + 1] - arr_stop_freq[i]; + } - ixheaacd_aac_shellsort(&arr_diff_stop_freq[0], 13); /*Sort bandwidth changes */ + ixheaacd_aac_shellsort(&arr_diff_stop_freq[0], + 13); /*Sort bandwidth changes */ - result = k1_min; - for (i = 0; i<stop_freq; i++) { - result = result + arr_diff_stop_freq[i]; - } + result = k1_min; + for (i = 0; i < stop_freq; i++) { + result = result + arr_diff_stop_freq[i]; + } - return(result); + return (result); } -void -ixheaacd_calc_k0_k2_bands(const WORD32 samp_freq, - const WORD32 start_freq, - const WORD32 stop_freq, - FLOAT32 upsamp_fac, - WORD16 *ptr_k0, - WORD16 *ptr_k2) -{ - /* Update start_freq struct */ - *ptr_k0 = ixheaacd_calc_start_band(samp_freq, start_freq, upsamp_fac); - - - /*Update stop_freq struct */ - if (stop_freq < 14) { - *ptr_k2 = ixheaacd_calc_stop_band(samp_freq, stop_freq, upsamp_fac); - } - else if (stop_freq == 14) { - *ptr_k2 = 2 * (*ptr_k0); - } - else { - *ptr_k2 = 3 * (*ptr_k0); - } +void ixheaacd_calc_k0_k2_bands(const WORD32 samp_freq, const WORD32 start_freq, + const WORD32 stop_freq, FLOAT32 upsamp_fac, + WORD16 *ptr_k0, WORD16 *ptr_k2) { + /* Update start_freq struct */ + *ptr_k0 = ixheaacd_calc_start_band(samp_freq, start_freq, upsamp_fac); + + /*Update stop_freq struct */ + if (stop_freq < 14) { + *ptr_k2 = ixheaacd_calc_stop_band(samp_freq, stop_freq, upsamp_fac); + } else if (stop_freq == 14) { + *ptr_k2 = 2 * (*ptr_k0); + } else { + *ptr_k2 = 3 * (*ptr_k0); + } - /* limit to Nyqvist */ - if (*ptr_k2 > 64) { - *ptr_k2 = 64; - } + /* limit to Nyqvist */ + if (*ptr_k2 > 64) { + *ptr_k2 = 64; + } } WORD16 ixheaacd_calc_master_frq_bnd_tbl( @@ -338,18 +298,12 @@ WORD16 ixheaacd_calc_master_frq_bnd_tbl( WORD16 *f_master_tbl = pstr_freq_band_data->f_master_tbl; WORD16 num_mf_bands; - k1 = 0; incr = 0; dk = 0; - - ixheaacd_calc_k0_k2_bands(fs, - ptr_header_data->start_freq, - ptr_header_data->stop_freq, - upsamp_fac, - &k0, &k2); - + ixheaacd_calc_k0_k2_bands(fs, ptr_header_data->start_freq, + ptr_header_data->stop_freq, upsamp_fac, &k0, &k2); if (k2 > NO_SYNTHESIS_CHANNELS) { k2 = NO_SYNTHESIS_CHANNELS; @@ -701,14 +655,14 @@ WORD32 ixheaacd_derive_noise_freq_bnd_tbl( } WORD32 ixheaacd_calc_frq_bnd_tbls(ia_sbr_header_data_struct *ptr_header_data, - ixheaacd_misc_tables *pstr_common_tables) { + ixheaacd_misc_tables *pstr_common_tables) { WORD32 err; WORD16 num_lf_bands, num_hf_bands, lsb, usb; ia_freq_band_data_struct *pstr_freq_band_data = ptr_header_data->pstr_freq_band_data; err = ixheaacd_calc_master_frq_bnd_tbl(pstr_freq_band_data, ptr_header_data, - pstr_common_tables); + pstr_common_tables); if (err || (ptr_header_data->xover_band > pstr_freq_band_data->num_mf_bands)) { |