Commit graph

120 commits

Author SHA1 Message Date
Harish Mahendrakar
8b75cdae9b Decoder: Treat first slice in a picture as part of new picture always
am: 8b5fd8f24e

Change-Id: Ia14e9fae4a08143ff86439b5440ab9cf5e3052e3
2017-02-14 17:00:07 +00:00
Harish Mahendrakar
8b5fd8f24e Decoder: Treat first slice in a picture as part of new picture always
This is needed to decode streams with consecutive IDRs.

Bug: 34097231
Test: successful run of POC in security bug
Change-Id: Ib737a4ef4b8c5bb7a57c90292102dd28af0615fe
2017-02-14 04:41:02 +00:00
Harish Mahendrakar
1f0ab0b089 DO NOT MERGE: Decoder: Fixes an out of bound write in bitstream buffer
[this is for mnc-dev only, not any other mnc-*-dev flavors;
there is a different patch for mnc-dr-dev, nyc-* and going forward]

After emulation prevention, data is written as an int,
so at least 3 additional bytes should be available.
And since bitstream functions read 8 bytes ahead, 8 extra bytes
should be available in the bitstream buffer.

Bug: 33934721
Test: Ittiam testing, POC in the bug no longer fails
Change-Id: I444ec6f85d01b0bade9f827e15c4b476779d6c69
2017-02-13 14:44:11 -08:00
Ray Essick
cf05624312 Merge "Decoder: Return correct error code for slice header errors" into mnc-dev
am: 51ecbcabfb

Change-Id: Ib486869b38d66e1fb0fdeffe4316dce6a5ff9fd9
2017-02-13 19:21:06 +00:00
Ray Essick
16306f7347 Merge "Decoder: Initialize default reference buffers for all pictures" into mnc-dev
am: d61abc5195

Change-Id: Ieb21ecb1c3152bde97adc7cfcfc4d49afcafd93b
2017-02-13 19:20:57 +00:00
Harish Mahendrakar
73f74a84e1 Fix in returning end of bitstream error for MBAFF
am: 7950bf47b6

Change-Id: If45518b6d58c393313dbcb425f7aa2e7bec02056
2017-02-13 19:20:47 +00:00
Ray Essick
51ecbcabfb Merge "Decoder: Return correct error code for slice header errors" into mnc-dev 2017-02-13 19:15:36 +00:00
Ray Essick
d61abc5195 Merge "Decoder: Initialize default reference buffers for all pictures" into mnc-dev 2017-02-13 19:15:31 +00:00
Harish Mahendrakar
9a00f562a6 Decoder: Return correct error code for slice header errors
Return ERROR_INV_SLICE_HDR_T instead of ERROR_INV_SPS_PPS_T for slice
header errors.

Bug: 34097915
Change-Id: I45d14a71f2322ff349058baaf65fb0f3c1140fba
2017-02-13 19:14:59 +00:00
Harish Mahendrakar
f634481e94 Decoder: Initialize default reference buffers for all pictures
Reference buffer is now initialized to default value for
each pic before decoding the first slice in the pic

Bug: 34097866
Change-Id: Id64b123af2188217ce833f11db0e6c0681d41dfd
2017-02-13 19:14:50 +00:00
Harish Mahendrakar
7950bf47b6 Fix in returning end of bitstream error for MBAFF
In case of MBAFF streams, slices should terminate on
even MB boundary. If bytes are exhausted with odd number
of MBs decoded for MBAff, then treat that as error.

Bug: 33933140

Change-Id: Ifc26b66ff8ebdb3aec5c0d6c512e4cac3f54c5b7
2017-02-13 19:14:18 +00:00
Harish Mahendrakar
33ef7de9dd Decoder: Fixes an out of bound write in bitstream buffer
[for mnc-dr-dev and later;  mnc-dev gets a different patch]

After emulation prevention, data is written as an int,
so at least 3 additional bytes should be available.
And since bitstream functions read 8 bytes ahead, 8 extra bytes
should be available in the bitstream buffer.

Bug: 33934721

Change-Id: I444ec6f85d01b0bade9f827e15c4b476779d6c69
2017-01-19 09:17:00 -08:00
Harish Mahendrakar
5a26569fa3 Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases
am: 1d5640f2f9

Change-Id: I32e960c752ccbc991f8ce04455618a534f1f52c7
2017-01-18 21:11:11 +00:00
Ray Essick
43a184ad48 Merge "Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases" into mnc-dev 2017-01-18 21:00:19 +00:00
Marco Nelissen
d5424f66e3 Merge "DO NOT MERGE Decoder: Increase memory allocation for weights & offsets for interlaced clips" into mnc-dev 2017-01-18 18:42:47 +00:00
Harish Mahendrakar
274529d8aa Decoder: Fix in checking first_mb_in_slice
am: ef27433ca8

Change-Id: Ic27ccbbcad3d991862b7e680595ab0ae4fd23eb0
2017-01-18 18:18:24 +00:00
Marco Nelissen
78523d557a Merge "Decoder: Fix in checking first_mb_in_slice" into mnc-dev 2017-01-18 18:07:51 +00:00
Harish Mahendrakar
bb4b279eb1 Decoder: Padded gau1_ih264d_top_left_mb_part_indx_mod to avoid an out of bound read
am: b88f59d835

Change-Id: If2e3c4258f8e64918e0ab066c9cc75cf8887c797
2017-01-18 17:32:47 +00:00
Marco Nelissen
4e0cdd450e Merge "Decoder: Padded gau1_ih264d_top_left_mb_part_indx_mod to avoid an out of bound read" into mnc-dev 2017-01-18 17:25:17 +00:00
Marco Nelissen
696b6f666c Merge "Decoder: Increase memory allocation for weights & offsets for interlaced clips" into mnc-dr-dev 2017-01-18 16:27:26 +00:00
Harish Mahendrakar
cec6503a20 Decoder: Fixed DoS in header decode when no PPS is present
am: 2cd2f7a335

Change-Id: If8a7c11ef215a84a350cd0a734bca9c69b91f1c6
2017-01-18 00:26:14 +00:00
TreeHugger Robot
e74ab7dba4 Merge "Decoder: Fixed DoS in header decode when no PPS is present" into mnc-dev 2017-01-18 00:23:33 +00:00
Harish Mahendrakar
b88f59d835 Decoder: Padded gau1_ih264d_top_left_mb_part_indx_mod to avoid an out of bound read
Change-Id: Ie8761de856ed8c7d08f3da61631c1bef446448e6
2017-01-17 16:12:12 -08:00
Harish Mahendrakar
ef27433ca8 Decoder: Fix in checking first_mb_in_slice
Also, increment slice header only if previous slice had atleast one MB
This is to ensure there is no out of bound read for streams with 1 MB, and
due to error 2 slices were being accessed.

Bug: 33982658
Change-Id: I5f1918c09e922ca39f495f6059dfea3fa1d49448
2017-01-17 16:02:35 -08:00
Harish Mahendrakar
bee9b9a54b Decoder: Increase memory allocation for weights & offsets for interlaced clips
Bug: 33816782
Change-Id: I65a5376f46902139f9fc49a2fff54b53b518d703
2017-01-17 15:25:56 -08:00
Harish Mahendrakar
2cd2f7a335 Decoder: Fixed DoS in header decode when no PPS is present
When the input does not contain PPS and decoder is in header decode
mode, decoder was entering an infinite loop.

Bug: 33621215
(cherry picked from commit 33e1b190d6db09bd72a9f0f51acef4b14eabd6ff)
2017-01-17 15:25:13 -08:00
Harish Mahendrakar
74f03b639e DO NOT MERGE Decoder: Increase memory allocation for weights & offsets for interlaced clips
Bug: 33816782
Change-Id: I10f8b2a7691aeb55365901c166e765ab22ec6106
2017-01-17 23:25:11 +00:00
Harish Mahendrakar
4e7779e0ef Decoder: Fixed number of MB calculation for interlaced error streams
am: e1cf7ea8ae

Change-Id: If723b1da6adf7a816c095f327023853bcaccd0c5
2017-01-17 20:34:28 +00:00
Marco Nelissen
c4f317b873 Merge "Decoder: Fixed number of MB calculation for interlaced error streams" into mnc-dev 2017-01-17 20:27:24 +00:00
Harish Mahendrakar
1d5640f2f9 Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases
Bug: 34097213
Bug: 33641588
Change-Id: I40a6c5af7f1e46e1623ae1b399db3073123390fe
2017-01-17 09:39:50 -08:00
Harish Mahendrakar
1a77185504 Decoder: Fixed an out of bound access while parsing SEI
am: 99a85bb469

Change-Id: I81440daff1ec1ff71dedb40e231e0b596de9a6fd
2017-01-14 00:27:40 +00:00
Harish Mahendrakar
99a85bb469 Decoder: Fixed an out of bound access while parsing SEI
Invalid SPS Id read was resulting in an out of bound read
Bug: 33552073
Change-Id: Ie5b80222fc7ac3a64475340371be0facdf999d7b

(cherry picked from commit d3d60c6a5d7ab605d19b9ac4b95bc227b7b870dc)
2017-01-13 10:33:18 -08:00
Harish Mahendrakar
2c71fb1941 Call ih264d_deblock_display only for valid process calls
am: 318368435f

Change-Id: I210dfb1eaf04b3ddceffa041c43e25e52023090d
2017-01-09 17:03:46 +00:00
Marco Nelissen
9c2c615c92 Merge "Call ih264d_deblock_display only for valid process calls" into mnc-dev 2017-01-09 16:58:51 +00:00
Harish Mahendrakar
5745d5d1a2 Decoder: Fix in MB count in MBAff error handling
am: 43e0aa2210

Change-Id: I7e3f3ba1dacffb592fa08475652696be887be2ab
2017-01-09 16:06:12 +00:00
Marco Nelissen
d1ebbd7139 Merge "Decoder: Fix in MB count in MBAff error handling" into mnc-dev 2017-01-09 15:58:25 +00:00
Ray Essick
5e6147a424 Merge "Decoder: Fixed allocation of ps_dec->ps_nbr_mb_row" into mnc-dr-dev 2017-01-06 17:50:41 +00:00
Harish Mahendrakar
89850806d1 Decoder: Fixed cur_mb_info initialization in error cases
am: 902c15251f

Change-Id: I53e87b68254973492dac02a48a1b179a9eb4fc93
2017-01-06 17:41:01 +00:00
Harish Mahendrakar
8dfaf7cf1b Decoder: Fix in error concealment in the case of Mbaff clips
am: 3ebff7dc62

Change-Id: I53964cef3c617f22fee7a2db27dac09323db2daf
2017-01-06 17:41:00 +00:00
Harish Mahendrakar
7f2a8c6fa8 Decoder: Fix in the case of error in the first MB in frame.
am: 56b5563f3e

Change-Id: I600140bafcda9d4d9792db53d2a20cc13d90bfe1
2017-01-06 17:40:59 +00:00
Harish Mahendrakar
3e29786590 Decoder: Fix in returning incomplete frame error
am: d1896deaf1

Change-Id: I81b68c6f7b30c3ba048967cd64426b204b8ee895
2017-01-06 17:40:58 +00:00
Harish Mahendrakar
a13436200c Decoder: Fix initialization of ps_next_dpb during reference list creation
am: 54cbe1b29b

Change-Id: I20cc2843ab762c35b8c6a35745d0a674f3f6ef8b
2017-01-06 17:40:57 +00:00
Harish Mahendrakar
e1cf7ea8ae Decoder: Fixed number of MB calculation for interlaced error streams
At the end of picture processing, if the current pic is partially
decoded, number of MBs to be processed was wrongly calculated for
interlaced cases.

Bug: 33129467
Change-Id: Ia81186c60d346f02663607f2dc14166781db6a69
2016-12-28 15:07:09 -08:00
Harish Mahendrakar
43e0aa2210 Decoder: Fix in MB count in MBAff error handling
Number of MBs to be marked as skip should be even for MBAff
error streams

Bug: 33450635
Change-Id: I6af59632e4b2d2882881fe8c52472164ea088f7a
2016-12-28 15:05:36 -08:00
Harish Mahendrakar
318368435f Call ih264d_deblock_display only for valid process calls
ih264d_deblock_display() should be called only if current
decoder call has got a picture buffer during start of pic

Bug: 33751193
Change-Id: I3bf2fdbb910bf7240484dae48b85d72833830d56
2016-12-28 15:03:10 -08:00
Harish Mahendrakar
9b095de571 Decoder: Fixed allocation of ps_dec->ps_nbr_mb_row
This needs an additional row of data to hold top row
Issue is seen only for MBAff error cases which start with a field
at lower resolutions

Bug: 33139050
2016-12-28 13:04:00 -08:00
Harish Mahendrakar
902c15251f Decoder: Fixed cur_mb_info initialization in error cases
When number of MBs decoded in the current frame is zero and an error is
detected, MB info was unnecessarily decremented in multi-core case.

Bug: 33351708
Bug: 33298089
Bug: 33250932
Change-Id: I150c48c6fb382736f1de855ba5384c12bf84710d
2016-12-28 12:36:35 -08:00
Harish Mahendrakar
3ebff7dc62 Decoder: Fix in error concealment in the case of Mbaff clips
In case of MBAff clips, if error is detected after parsing odd MB,
then treat that odd MB also as error. All MBAff processing is done
as an MB-Pair.

Bug: 33298089
2016-12-28 12:36:15 -08:00
Harish Mahendrakar
56b5563f3e Decoder: Fix in the case of error in the first MB in frame.
In case of error in first MB in a frame, ps_dec->i4_submb_ofst
was decremented to result in negative offsets.

Bug: 33351708
2016-12-28 12:35:44 -08:00
Harish Mahendrakar
d1896deaf1 Decoder: Fix in returning incomplete frame error
In case a slice start code is found and picture decode is not complete
and a non slice NAL is encountered, then mark the current pic as incomplete

Bug: 33250932
Bug: 33139050

Change-Id: I9db4446338b307310805dba90c60c8cbdeee0739
2016-12-28 12:35:25 -08:00