diff options
author | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2022-12-02 21:49:20 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-12-02 21:49:20 +0000 |
commit | ce8128df74ce9927c4fd174445c6f3f4197e0c2b (patch) | |
tree | ba49d720e42d9ee1fbb97899fd62d4df54c9d6a0 /decoder/ixheaacd_ps_bitdec.c | |
parent | 61803678225bdfa64badf8410aa198562f006f6b (diff) | |
parent | 107cb12c2b2e1b719eb4df15708584b4f6392668 (diff) | |
download | libxaac-ce8128df74ce9927c4fd174445c6f3f4197e0c2b.tar.gz |
Update to v0.1.4 from upstream project am: 2ae5f6ff8a am: 107cb12c2b
Original change: https://android-review.googlesource.com/c/platform/external/libxaac/+/2323113
Change-Id: If190ecc3b3e9f696c7021c2c817300109b1e668f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'decoder/ixheaacd_ps_bitdec.c')
-rw-r--r-- | decoder/ixheaacd_ps_bitdec.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/decoder/ixheaacd_ps_bitdec.c b/decoder/ixheaacd_ps_bitdec.c index d255f48..298b602 100644 --- a/decoder/ixheaacd_ps_bitdec.c +++ b/decoder/ixheaacd_ps_bitdec.c @@ -95,12 +95,18 @@ WORD16 ixheaacd_divideby3(WORD op) { return (WORD16)ret; } -VOID ixheaacd_decode_ps_data(ia_ps_dec_struct *ptr_ps_dec) { +VOID ixheaacd_decode_ps_data(ia_ps_dec_struct *ptr_ps_dec, WORD32 frame_size) { WORD e, i, temp; WORD16 iid_mode = (WORD16)((ptr_ps_dec->iid_mode) ? 1 : 2); WORD16 icc_mode = (WORD16)((ptr_ps_dec->icc_mode) ? 1 : 2); WORD16 num_iid_levels = (WORD16)(ptr_ps_dec->iid_quant ? NUM_IID_LEVELS_FINE : NUM_IID_LEVELS); + WORD32 max_num_columns; + + if (frame_size == 960) + max_num_columns = MAX_NUM_COLUMNS_960; + else + max_num_columns = MAX_NUM_COLUMNS; if (!ptr_ps_dec->ps_data_present) { ptr_ps_dec->num_env = 0; @@ -231,17 +237,16 @@ VOID ixheaacd_decode_ps_data(ia_ps_dec_struct *ptr_ps_dec) { env_count = 0; for (e = 1; e < ptr_ps_dec->num_env; e++) { - env_count = add_d(env_count, MAX_NUM_COLUMNS); + env_count = add_d(env_count, max_num_columns); ptr_ps_dec->border_position[e] = (WORD16)(env_count >> shift); } - ptr_ps_dec->border_position[ptr_ps_dec->num_env] = MAX_NUM_COLUMNS; + ptr_ps_dec->border_position[ptr_ps_dec->num_env] = max_num_columns; } else { ptr_ps_dec->border_position[0] = 0; - if (ptr_ps_dec->border_position[ptr_ps_dec->num_env] < MAX_NUM_COLUMNS) { + if (ptr_ps_dec->border_position[ptr_ps_dec->num_env] < max_num_columns) { ptr_ps_dec->num_env++; - add_d(ptr_ps_dec->num_env, 1); - ptr_ps_dec->border_position[ptr_ps_dec->num_env] = MAX_NUM_COLUMNS; + ptr_ps_dec->border_position[ptr_ps_dec->num_env] = max_num_columns; memcpy(ptr_ps_dec->iid_par_table[ptr_ps_dec->num_env - 1], ptr_ps_dec->iid_par_table[ptr_ps_dec->num_env - 2], @@ -254,7 +259,7 @@ VOID ixheaacd_decode_ps_data(ia_ps_dec_struct *ptr_ps_dec) { for (e = 1; e < ptr_ps_dec->num_env; e++) { WORD threshold; - threshold = sub_d(MAX_NUM_COLUMNS, sub_d(ptr_ps_dec->num_env, e)); + threshold = sub_d(max_num_columns, sub_d(ptr_ps_dec->num_env, e)); if (ptr_ps_dec->border_position[e] > threshold) { ptr_ps_dec->border_position[e] = threshold; |