Limit func_idx to valid range to ensure invalid functions are not
called when wrong TU size is signalled for chroma due to error in
parsing
Bug: 32915871
Change-Id: I662212eb2e9b8994e7e85780e667f14df73b5905
Out of bound reads in the following variables are fixed
scaling_mat_offset in ihevcd_iquant_itrans_recon_ctb()
ai1_offset_y, ai1_offset_cb and ai1_offset_cr in ihevcd_sao_shift_ctb()
These values were read but not used
b/32915871
Change-Id: Ib07e2ed1bdcc600700d4e9e5d970f6cc2164ab1b
If an invalid slice_address was parsed, it was resulting in an incomplete
slice header during decode stage. Fix this by not incrementing slice_idx
for ignore slice error
Bug: 32322258
Change-Id: I8638d7094d65f4409faa9b9e337ef7e7b64505de
On some A72 based devices, data shared between cores was found to be
inconsistent which was resulting in an infinite loop.
Adding memory barriers before marking a CTB as parsed/processed,
all the pending memory operations are guaranteed to be completed.
Change-Id: I6e3bb11123a3c12ba7e69c4bfcd38960616f9fb5
(cherry picked from commit 031b91dde5)
When VUI does not contain u1_matrix_coeffs, it should be set to 2
to signal that it is not present in the bitstream.
Bug: 29640760
Change-Id: I1f1217725f5c5dada2079e1487058381bfb00ef0
1. change ai1_lt_ref_pic_poc_lsb_sps from WORD8 to UWORD16 because i1_log2_max_pic_order_cnt_lsb can be up to 16 by the spec
2. fixed bug using CLZ to compute Ceil( Log2( num_long_term_ref_pics_sps ) ) and check if i1_num_long_term_ref_pics_sps is greater than 1 to avoid BITS_PARSE(0)
Change-Id: I298b74d053b17d133b9dcba0e924136ec274ea3c
When VUI does not contain u1_matrix_coeffs, it should be set to 2
to signal that it is not present in the bitstream.
Bug: 29640760
Change-Id: I1f1217725f5c5dada2079e1487058381bfb00ef0
short-term RPS is not used for reference by the current picture if used_by_curr_pic_flag equal to 0
Change-Id: I3f7af6e7fae4016bbe6bd8c5065666fe02f3b836
Signed-off-by: Grant Hsu <grant.hsu@cidana.com>
On some A72 based devices, data shared between cores was found to be
inconsistent which was resulting in an infinite loop.
Adding memory barriers before marking a CTB as parsed/processed,
all the pending memory operations are guaranteed to be completed.
Change-Id: I6e3bb11123a3c12ba7e69c4bfcd38960616f9fb5
One pixel outside the boundary on all sides of picture buffers are initialized to zero
These pixels were being read in SAO functions but were not used in actual processing
Setting these pixels to zero will supress unitialized read errors in valgrind
Change-Id: Ic39a43ee0a108751fb49718319e408ddc3536008
Out of bound reads in the following variables are fixed
scaling_mat_offset in ihevcd_iquant_itrans_recon_ctb()
ai1_offset_y, ai1_offset_cb and ai1_offset_cr in ihevcd_sao_shift_ctb()
These values were read but not used
Change-Id: Ib07e2ed1bdcc600700d4e9e5d970f6cc2164ab1b
Aligned the size of au1_ref_sub_out to ensure SSE42 modules do not
result in stack buffer overflow
Change-Id: I5ecd75b4979140eb4d89bf8f0380ed8c7d9bff01
Change I59c996161053e313c873381c5bf6f8c36488483f aligned the number
of luma samples to 64byte boundaries when calculating and creating
the buffers. Unfortunately, it doesn't change all instances of that
calculation, leading to mismatches between creation/allocation/destruction.
Fixes android.media.cts.DecoderTest#testEOSBehaviorHEVC and
android.media.cts.DecoderTest#testCodecEarlyEOSHEVC
Bug: 24686670
Bug: 25070493
Bug: 25995793
Bug: 26217939
Bug: 26239053
Change-Id: I5b9dd682e08cfb03d2bc54829c4908976251dee7