summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHamsalekha S <hamsalekha.s@ittiam.com>2017-04-21 11:01:52 +0530
committerDan Pasanen <dan.pasanen@gmail.com>2017-09-15 10:18:43 -0500
commit2170933bdb958f45dbe9690bb2f4545bfd787be4 (patch)
tree64da0229e3696e243a4d7f45c5d5988027a3e051
parent871e2ffa8c9aa05e3db625370d73ea9d95e2b4dd (diff)
downloadandroid_external_libavc-2170933bdb958f45dbe9690bb2f4545bfd787be4.tar.gz
android_external_libavc-2170933bdb958f45dbe9690bb2f4545bfd787be4.tar.bz2
android_external_libavc-2170933bdb958f45dbe9690bb2f4545bfd787be4.zip
Decoder: Fixed allocation of pv_map_ref_idx_to_poc_buf.
Increased allocation to include reference list1 also by default. In the case of error, we could get B_SLICES even in BASE_PROFILE. The initialization in the dec_slice_struct_t slice structure has also been modified accordingly. Test: run poc with and without this patch Bug: 38496660 Change-Id: I3451d79bbcd9f0d7a80981a9897f877b7f0812bd (cherry picked from commit a925a6b539642c8749c91a6f33e362eda8c4a5b6)
-rw-r--r--decoder/ih264d_parse_bslice.c5
-rw-r--r--decoder/ih264d_parse_pslice.c11
-rw-r--r--decoder/ih264d_parse_slice.c6
-rw-r--r--decoder/ih264d_utils.c5
4 files changed, 7 insertions, 20 deletions
diff --git a/decoder/ih264d_parse_bslice.c b/decoder/ih264d_parse_bslice.c
index 772964a..db64ce9 100644
--- a/decoder/ih264d_parse_bslice.c
+++ b/decoder/ih264d_parse_bslice.c
@@ -1531,10 +1531,7 @@ WORD32 ih264d_parse_bslice(dec_struct_t * ps_dec, UWORD16 u2_first_mb_in_slice)
}
num_entries = ((2 * num_entries) + 1);
- if(BASE_PROFILE_IDC != ps_dec->ps_cur_sps->u1_profile_idc)
- {
- num_entries *= 2;
- }
+ num_entries *= 2;
size = num_entries * sizeof(void *);
size += PAD_MAP_IDX_POC * sizeof(void *);
diff --git a/decoder/ih264d_parse_pslice.c b/decoder/ih264d_parse_pslice.c
index bcfbe05..d6b0f23 100644
--- a/decoder/ih264d_parse_pslice.c
+++ b/decoder/ih264d_parse_pslice.c
@@ -1696,10 +1696,8 @@ WORD32 ih264d_mark_err_slice_skip(dec_struct_t * ps_dec,
num_entries = 1;
}
num_entries = ((2 * num_entries) + 1);
- if(BASE_PROFILE_IDC != ps_dec->ps_cur_sps->u1_profile_idc)
- {
- num_entries *= 2;
- }
+ num_entries *= 2;
+
size = num_entries * sizeof(void *);
size += PAD_MAP_IDX_POC * sizeof(void *);
@@ -2063,10 +2061,7 @@ WORD32 ih264d_parse_pslice(dec_struct_t *ps_dec, UWORD16 u2_first_mb_in_slice)
num_entries = 1;
}
num_entries = ((2 * num_entries) + 1);
- if(BASE_PROFILE_IDC != ps_dec->ps_cur_sps->u1_profile_idc)
- {
- num_entries *= 2;
- }
+ num_entries *= 2;
size = num_entries * sizeof(void *);
size += PAD_MAP_IDX_POC * sizeof(void *);
diff --git a/decoder/ih264d_parse_slice.c b/decoder/ih264d_parse_slice.c
index 849b9c5..bdfccb6 100644
--- a/decoder/ih264d_parse_slice.c
+++ b/decoder/ih264d_parse_slice.c
@@ -1802,10 +1802,8 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice,
num_entries = 1;
}
num_entries = ((2 * num_entries) + 1);
- if(BASE_PROFILE_IDC != ps_dec->ps_cur_sps->u1_profile_idc)
- {
- num_entries *= 2;
- }
+ num_entries *= 2;
+
size = num_entries * sizeof(void *);
size += PAD_MAP_IDX_POC * sizeof(void *);
diff --git a/decoder/ih264d_utils.c b/decoder/ih264d_utils.c
index 4f6deca..7d7475d 100644
--- a/decoder/ih264d_utils.c
+++ b/decoder/ih264d_utils.c
@@ -1979,10 +1979,7 @@ WORD16 ih264d_allocate_dynamic_bufs(dec_struct_t * ps_dec)
num_entries = 1;
}
num_entries = ((2 * num_entries) + 1);
- if(BASE_PROFILE_IDC != ps_dec->ps_cur_sps->u1_profile_idc)
- {
- num_entries *= 2;
- }
+ num_entries *= 2;
size = num_entries * sizeof(void *);
size += PAD_MAP_IDX_POC * sizeof(void *);