aboutsummaryrefslogtreecommitdiff
path: root/decoder/ixheaacd_ps_bitdec.c
diff options
context:
space:
mode:
authorHarish Mahendrakar <harish.mahendrakar@ittiam.com>2022-12-02 21:49:20 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-12-02 21:49:20 +0000
commitce8128df74ce9927c4fd174445c6f3f4197e0c2b (patch)
treeba49d720e42d9ee1fbb97899fd62d4df54c9d6a0 /decoder/ixheaacd_ps_bitdec.c
parent61803678225bdfa64badf8410aa198562f006f6b (diff)
parent107cb12c2b2e1b719eb4df15708584b4f6392668 (diff)
downloadlibxaac-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.c19
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;