Commit graph

35 commits

Author SHA1 Message Date
Harish Mahendrakar
d272cd6369 DO NOT MERGE Added check for invalid log2_max_transform_block_size in SPS
Bug: 33918236
Bug: 33964497
Bug: 33965905
Bug: 33862021
Change-Id: If121221d0f6e983c05d95d123af9bed378d1961f
2017-06-05 14:36:00 -07:00
Harish Mahendrakar
5204651228 Fix heap buffer overflow while searching for valid PPS
Bug: 37094889
Test: Tested POC on ASAN build
Change-Id: Id4e52cd10a4d5eac015efe4b752162dc39cc30b8
2017-05-16 16:48:29 -07:00
TreeHugger Robot
1853d3871a Merge "Check for buffer overflow in pps/slice header parsing" into lmp-dev 2017-05-16 22:20:33 +00:00
TreeHugger Robot
31e21c5134 Merge "memset SPS to zero" into lmp-dev 2017-05-16 22:18:29 +00:00
Naveen Kumar P
d61d5e5f6a Check for buffer overflow in pps/slice header parsing
Bug: 36215950
Bug: 36215953
Bug: 36216719
Change-Id: Ibdc05e1d5aa21d060d7c683fd9af4bed8537053f
2017-05-15 15:45:50 -07:00
Harish Mahendrakar
2e0e75aede memset SPS to zero
SPS structure is memset to zero in parse_sps()
Bug: 33966031
Bug: 37458993

Change-Id: I7d4c04d2d25d7e9c8f581bd470260fc4394a564b
2017-05-12 16:21:21 -07:00
Marco Nelissen
4629c5cebf Merge "Fixed out of bound reads in stack variables" into lmp-dev 2017-05-12 20:45:19 +00:00
Wonsik Kim
4490398c88 Merge "DO NOT MERGE Check for cpb cnt in hrd parsing" into lmp-dev 2017-05-10 23:48:22 +00:00
Harish Mahendrakar
c9834edd64 Fixed out of bound reads in stack variables
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

Bug: 34819017
Change-Id: Ic00e713b2c61d6793e1e097f852f0d1b3f913712
2017-05-09 14:28:47 -07:00
Hangyu Kuang
7e3858b313 Merge "Correct Tiles rows and cols check" into lmp-dev 2017-04-12 20:00:25 +00:00
TreeHugger Robot
397d2f6c42 Merge "Check only allocated mv bufs for releasing from reference" into lmp-dev 2017-04-12 19:49:50 +00:00
Naveen Kumar P
07ef4e7138 Correct Tiles rows and cols check
Bug: 36231493
Bug: 34064500
Change-Id: Ib17b2c68360685c5a2c019e1497612a130f9f76a
2017-04-11 14:12:29 -07:00
Ray Essick
bfcdbd6a5b Merge "Set current slice ctb x and y to fill prev incomplete slice" into lmp-dev 2017-04-10 22:46:39 +00:00
Naveen Kumar P
f9aea65f69 DO NOT MERGE Check for cpb cnt in hrd parsing
Bug: 34896431

The arrays in hrd are of size MAX_CPB_CNT. If cpb cnt is more
than MAX_CPB_CNT, more data is parsed and the subsequent buffer
is corrupted.

Change-Id: I74c01b8c7142b67a358eb5e36b160a7fbf2b69e4
2017-04-10 10:20:11 -07:00
Naveen Kumar P
830858436b Set current slice ctb x and y to fill prev incomplete slice
If previous slice is not completed, update the current slice
ctb_x and ctb_y so that while filling the previous slice,
the parse slice code can break properly.

Bug: 32322258
Test: boot, ran POC supplied with bug
Change-Id: Ie9090694514a018268851560a3f056194ff6fc91
2017-04-07 20:00:54 +00:00
Harish Mahendrakar
fed1a3d8d8 Fixed an out of bound read in accessing inverse scan table
Bug: 34819017
Change-Id: Ib25db1da92eee390a3847df06c0c0675ebcfb1a4
2017-03-22 10:06:35 -07:00
Naveen Kumar Ponnusamy
23bfe3e06d Check only allocated mv bufs for releasing from reference
When checking mv bufs for releasing from reference, unallocated
mv bufs were also checked. This issue was fixed by restricting
the loop count to allocated number of mv bufs.

Bug: 34896906
Bug: 34819017

Change-Id: If832f590b301f414d4cd5206414efc61a70c17cb
2017-03-15 18:13:38 +00:00
Marco Nelissen
fd5656fe76 Merge "Handle error return from ref list in slice hdr parsing" into lmp-dev 2017-03-13 23:53:33 +00:00
Naveen Kumar Ponnusamy
766f97657f Handle error return from ref list in slice hdr parsing
The error returned by ref_list function was not handled by the
caller parse_slice_header.

Bug: 34672748
Change-Id: I55f6cb0e651746e77f7ff3375115894ec3964203
2017-03-13 15:37:19 -07:00
TreeHugger Robot
09ff5c6298 Merge "Return error from cabac init if offset is greater than range" into lmp-dev 2017-03-13 22:31:34 +00:00
Naveen Kumar Ponnusamy
b92314c860 Return error from cabac init if offset is greater than range
When the offset was greater than range, the bitstream was read
more than the valid range in leaf-level cabac parsing modules.
Error check was added to cabac init to fix this issue. Additionally
end of slice and slice error were signalled to suppress further
parsing of current slice.

Bug: 34897036
Change-Id: I1263f1d1219684ffa6e952c76e5a08e9a933c9d2
(cherry picked from commit 3b175da88a1807d19cdd248b74bce60e57f05c6a)
2017-03-10 14:56:09 -08:00
Harish Mahendrakar
232bbe1908 Return error if SPS parsing reads more bytes than the nal length
Bug: 35039946

Change-Id: Ia97fa8711f313d0029d2b13e6d150d5e46b2bb99
(cherry picked from commit a6c58e18a49a1ea4929f8345b3c59f900d5813f5)
2017-03-03 11:22:24 -08:00
Marco Nelissen
98f9e26d24 Merge "Fix in handling wrong cu_qp_delta" into lmp-dev 2017-02-14 22:47:49 +00:00
Harish Mahendrakar
1ab5ce7e42 Handle invalid num_reorder_pics & max_dec_pic_buffering in SPS
Bug: 33864300
Change-Id: I920e45c3420a1a41a366ad45bd4186c5f6af6d6b
2017-02-13 20:21:01 +00:00
Harish Mahendrakar
01ca88bb6c Fix in handling wrong cu_qp_delta
cu_qp_delta is now checked for the range as specified in the spec
Bug: 33966031

Change-Id: I00420bf68081af92e9f2be9af7ce58d0683094ca
2017-02-13 20:18:51 +00:00
Ricardo Cerqueira
50ad42cf93 Fix the frame size alignments
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
2015-12-17 16:27:54 +00:00
Harish Mahendrakar
b9f7c2c45c DO NOT MERGE Added few memsets to avoid uninitialized reads for error clips
Also aligned few allocations to 4 byte boundary

Bug: 25070493
Bug: 24686670
Change-Id: I59c996161053e313c873381c5bf6f8c36488483f
2015-11-06 12:12:01 -08:00
Marco Nelissen
552578a757 Revert "Added few memsets to avoid uninitialized reads for error clips"
This reverts commit d71abc6924.

Change-Id: I24ea5da7d00f9cd52ce8f64a0a5bce47df67216e
2015-11-06 19:22:31 +00:00
Harish Mahendrakar
d71abc6924 Added few memsets to avoid uninitialized reads for error clips
Also aligned few allocations to 4 byte boundary

Bug: 25070493
Bug: 24686670

Change-Id: I430b18fce2fe2940f4fb0ff95e5eadc7fdd705d4
2015-10-27 08:18:04 -07:00
Harish Mahendrakar
e8bfec1fa4 Aligned ps_pic_pu to 4 bytes
stmia was resulting in SEGV_MAPERR when ps_pic_pu is not aligned to 4 bytes
Bugfix: 24686670, 21468583

Change-Id: I07672d4a790f73cf27964983350181e66edc4d57
2015-10-21 07:50:33 -07:00
Harish Mahendrakar
2b67e53265 Align pic_width_in_luma_samples and pic_width_in_luma_samples to 8
Spec mandates these to be multiples of min_cb_size.
Bug fix: 22278703

Change-Id: I17f0c2242519a9277598b8fb5b05717e1ce7469b
(cherry picked from commit dde3d8a3c7)
2015-08-14 23:48:15 +00:00
Naveen Kumar Ponnusamy
6c166a9e18 Source files clean up
Cleaned up source files for redundant and inactive #if directives
2014-07-12 15:09:24 -07:00
Naveen Kumar Ponnusamy
9cbd70a293 Reduced stack operations in arm64 assembly
Change-Id: Ia19a99001fef37334f18521dd8f8710907fe370d
2014-07-12 15:09:24 -07:00
Harish Mahendrakar
707042fda9 Few bug fixes and warnings removed
Added support for returning coded width and height along with display dimensions
Fixed few macros for mips
Removed signed comparison warnings
Removed few files that are not needed
Fixed an issue in handling more than 256 slices in a picture

Bug: 14571712
Change-Id: Ie485aaae3a13744bc9acff8aa699efbbc31f94f1
2014-06-06 06:42:02 -07:00
Harish Mahendrakar
0d8951cef4 Initial Version of HEVC decoder
Compliant to reference software HM11.0 onwards

Bug: 14571712
Change-Id: I8af25c1221cc6ab70440141c4d9b48c1ac69696a
2014-05-21 18:14:55 -07:00