Commit graph

283 commits

Author SHA1 Message Date
Harish Mahendrakar
1e548ffb1e Decoder: Fixed initialization of first_slice_in_pic am: 0b23c81c3d am: 16fa990ce1 am: ab79eb3973 am: a37d120eb2 am: c011eeade7 am: 94e17dc822 am: 9117d918dd am: f837a7796b am: b1bbfa5320
am: d84e9b64e1

Change-Id: I465194d700ed38caac788eab0e1084b7aa4b0592
2017-02-14 17:29:59 +00:00
Harish Mahendrakar
9e037f09bb Merge "Decoder: Moved end of pic processing to end of decode call am: 494561291a am: ba7f9e2aed am: 26bb8b98ee am: 89fa016b5f am: df2fa01c9e am: 7944003371 am: fd5c8e352a am: 9432beb534 am: 7f690f1ada" into nyc-mr2-dev-plus-aosp
am: de7e809c2e

Change-Id: I4627374bb2bc59efdb51c38b6c465a970e17b6b6
2017-02-14 17:29:31 +00:00
Harish Mahendrakar
68b86555e4 Decoder: Moved end of pic processing to end of decode call am: 494561291a am: ba7f9e2aed am: 26bb8b98ee am: 89fa016b5f am: df2fa01c9e am: 7944003371 am: fd5c8e352a am: 9432beb534
am: 7f690f1ada

Change-Id: Ibacaae4dd46de8f63ed5a94cd850fd870c18be59
2017-02-14 17:18:48 +00:00
Harish Mahendrakar
b1bbfa5320 Decoder: Fixed initialization of first_slice_in_pic am: 0b23c81c3d am: 16fa990ce1 am: ab79eb3973 am: a37d120eb2 am: c011eeade7 am: 94e17dc822 am: 9117d918dd
am: f837a7796b

Change-Id: Ic4d24cc5d546abf49a2cef788226ff3a3ab92720
2017-02-14 17:18:39 +00:00
Harish Mahendrakar
20c2cfbc12 Decoder: Moved end of pic processing to end of decode call am: 494561291a am: ba7f9e2aed am: 26bb8b98ee am: 89fa016b5f am: df2fa01c9e am: 7944003371 am: fd5c8e352a
am: 9432beb534

Change-Id: Icd9bf9c1786a5758cf8ec4f6a5b4b6a96daef1dd
2017-02-14 17:16:16 +00:00
Harish Mahendrakar
94e17dc822 Decoder: Fixed initialization of first_slice_in_pic am: 0b23c81c3d am: 16fa990ce1 am: ab79eb3973 am: a37d120eb2
am: c011eeade7

Change-Id: I3f850497c864277c2b2524fab07d14a249e48afc
2017-02-14 17:11:38 +00:00
Harish Mahendrakar
7944003371 Decoder: Moved end of pic processing to end of decode call am: 494561291a am: ba7f9e2aed am: 26bb8b98ee am: 89fa016b5f
am: df2fa01c9e

Change-Id: Ifc329cbccad01c70ff1fea0d483cb155b15b3cc1
2017-02-14 17:08:45 +00:00
Harish Mahendrakar
c011eeade7 Decoder: Fixed initialization of first_slice_in_pic am: 0b23c81c3d am: 16fa990ce1 am: ab79eb3973
am: a37d120eb2

Change-Id: Ib3eb4da620fc964a15a35d8e862b91e55a611bd4
2017-02-14 17:08:36 +00:00
Harish Mahendrakar
b19aa035f6 Decoder: Treat first slice in a picture as part of new picture always am: 8b5fd8f24e am: 8b75cdae9b am: fb68ae8960 am: a8a3dc84b0
am: 3007985473

Change-Id: I2570766293b1d7fae490523607390873ed0016f0
2017-02-14 17:08:36 +00:00
Harish Mahendrakar
df2fa01c9e Decoder: Moved end of pic processing to end of decode call am: 494561291a am: ba7f9e2aed am: 26bb8b98ee
am: 89fa016b5f

Change-Id: Ib8de0752f0e90dfea59d9e8380d2006dd9643312
2017-02-14 17:07:16 +00:00
Harish Mahendrakar
3007985473 Decoder: Treat first slice in a picture as part of new picture always am: 8b5fd8f24e am: 8b75cdae9b am: fb68ae8960
am: a8a3dc84b0

Change-Id: I172945f3e9d84d77ae21d1f737258851529f94c7
2017-02-14 17:07:07 +00:00
Harish Mahendrakar
16fa990ce1 Decoder: Fixed initialization of first_slice_in_pic
am: 0b23c81c3d

Change-Id: I55e49ca9616a151456342bad7673d0986098b448
2017-02-14 17:03:06 +00:00
Harish Mahendrakar
ba7f9e2aed Decoder: Moved end of pic processing to end of decode call
am: 494561291a

Change-Id: Id3867f5dd0788f12f6827ed311a309d1fa58c535
2017-02-14 17:00:16 +00:00
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
0b23c81c3d Decoder: Fixed initialization of first_slice_in_pic
To handle some errors, first_slice_in_pic was being set to 2.
This is now cleaned up and first_slice_in_pic is set to 1 only once per pic.
This will ensure picture level initializations are done only once even in case
of error clips

Bug: 33717589
Bug: 33551775
Bug: 33716442
Bug: 33677995

Change-Id: If341436b3cbaa724017eedddd88c2e6fac36d8ba
2017-02-14 16:59:09 +00:00
Harish Mahendrakar
494561291a Decoder: Moved end of pic processing to end of decode call
ih264d_end_of_pic() was called after parsing slice of a new picture.
This is now being done at the end of decode of the current picture.
decode_gaps_in_frame_num which needs frame_num of new slice is now
done after decoding frame_num in new slice.

This helps in handling errors in picaff streams with gaps in frames

Bug: 33588051
Bug: 33641588
Bug: 34097231
Change-Id: I1a26e611aaa2c19e2043e05a210849bd21b22220
2017-02-14 16:58: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
3f6937a003 Decoder: Fixes in accessing mbaff flag in error cases
ps_dec->ps_cur_slice->u1_mbaff_frame_flag is updated in ih264d_start_of_pic().
So updated value should be used after calling ih264d_start_of_pic()

Bug: 33974623
Test: ran POC from bug
Change-Id: I0f1ff5e01ed39767f493f197791e51b0da74952f
2017-02-13 15:55:01 -08: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
dcf38ce3f3 Merge "Merge "Decoder: Return correct error code for slice header errors" into mnc-dev am: 51ecbcabfb am: cf05624312 am: f0bcc3dfaa am: 3780d87265 am: 933d00bfdc am: 6cca81eabe am: 3549c33934 am: 948453a948 am: 1322b7dca8" into nyc-mr2-dev-plus-aosp
am: e8cf9ee414

Change-Id: I58992e22f98e45eb97b1c71c612fcae9e9159913
2017-02-13 19:49:04 +00:00
Ray Essick
f28b7fc9bb Merge "Merge "Decoder: Initialize default reference buffers for all pictures" into mnc-dev am: d61abc5195 am: 16306f7347 am: 0fbfecd7ce am: 6fe876a014 am: ec93be1ae9 am: 82beabb7d1 am: 988a35fe4e am: 05852a7ac4 am: 8a23930b71" into nyc-mr2-dev-plus-aosp
am: dc66a0f70b

Change-Id: I3963785abcc9837cc22c1e072f1fa2cbc034f7aa
2017-02-13 19:48:36 +00:00
Harish Mahendrakar
a1a404d679 Fix in returning end of bitstream error for MBAFF am: 7950bf47b6 am: 73f74a84e1 am: f23ebcfab1 am: c8b03b10df am: 2785504d50 am: 20ae3a04eb am: 700fa812a9 am: 0b36e00924 am: 722ec096b0
am: af102c0976

Change-Id: I0b9e46cd7331ac636bf4b89c92f26b6de3c37ae0
2017-02-13 19:47:50 +00:00
Ray Essick
1322b7dca8 Merge "Decoder: Return correct error code for slice header errors" into mnc-dev am: 51ecbcabfb am: cf05624312 am: f0bcc3dfaa am: 3780d87265 am: 933d00bfdc am: 6cca81eabe am: 3549c33934
am: 948453a948

Change-Id: I145f65c221efd5bc3e61d4ec71698b69d145e7e2
2017-02-13 19:40:36 +00:00
Ray Essick
8a23930b71 Merge "Decoder: Initialize default reference buffers for all pictures" into mnc-dev am: d61abc5195 am: 16306f7347 am: 0fbfecd7ce am: 6fe876a014 am: ec93be1ae9 am: 82beabb7d1 am: 988a35fe4e
am: 05852a7ac4

Change-Id: I8beda225f8e4b7384de6aedf53723002fec2a596
2017-02-13 19:40:27 +00:00
Harish Mahendrakar
722ec096b0 Fix in returning end of bitstream error for MBAFF am: 7950bf47b6 am: 73f74a84e1 am: f23ebcfab1 am: c8b03b10df am: 2785504d50 am: 20ae3a04eb am: 700fa812a9
am: 0b36e00924

Change-Id: I82be319b000386c83fa93932a1fd9d1ceaa6c7e3
2017-02-13 19:40:19 +00:00
Ray Essick
6cca81eabe Merge "Decoder: Return correct error code for slice header errors" into mnc-dev am: 51ecbcabfb am: cf05624312 am: f0bcc3dfaa am: 3780d87265
am: 933d00bfdc

Change-Id: Ice5f2769a590372b949ed4dc48472c43ec281b34
2017-02-13 19:32:07 +00:00
Ray Essick
82beabb7d1 Merge "Decoder: Initialize default reference buffers for all pictures" into mnc-dev am: d61abc5195 am: 16306f7347 am: 0fbfecd7ce am: 6fe876a014
am: ec93be1ae9

Change-Id: I2172b6b17616562c4031babf9fc8b8c8b3b80925
2017-02-13 19:31:58 +00:00
Harish Mahendrakar
20ae3a04eb Fix in returning end of bitstream error for MBAFF am: 7950bf47b6 am: 73f74a84e1 am: f23ebcfab1 am: c8b03b10df
am: 2785504d50

Change-Id: Ib2a3100e8ddbf947a3b2634d63f72104af8a22d1
2017-02-13 19:31:50 +00:00
Ray Essick
933d00bfdc Merge "Decoder: Return correct error code for slice header errors" into mnc-dev am: 51ecbcabfb am: cf05624312 am: f0bcc3dfaa
am: 3780d87265

Change-Id: I16d98f94966bbcdc80205cb838b2c8b6ae37fa4e
2017-02-13 19:29:08 +00:00
Ray Essick
ec93be1ae9 Merge "Decoder: Initialize default reference buffers for all pictures" into mnc-dev am: d61abc5195 am: 16306f7347 am: 0fbfecd7ce
am: 6fe876a014

Change-Id: I43344486e8b3b0bc1f7a905969d9f9bed133822b
2017-02-13 19:28:57 +00:00
Harish Mahendrakar
2785504d50 Fix in returning end of bitstream error for MBAFF am: 7950bf47b6 am: 73f74a84e1 am: f23ebcfab1
am: c8b03b10df

Change-Id: Ife3b0ade038472f264b21298313614f01d3fcd59
2017-02-13 19:28:49 +00: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
b5a151fde9 Decoder: Fixes an out of bound write in bitstream buffer am: 33ef7de9dd am: 0aab4958fb am: 9f72b6eca1 am: 73a3e320d8 am: 89377f2acf am: 9801d7e8d5 am: 109509aeb0 am: cb36e15c72
am: 7b4dc14d83

Change-Id: I0201c20831a768a0e62054ef4d32c4e80044bb37
2017-02-13 19:04:17 +00:00
Harish Mahendrakar
7b4dc14d83 Decoder: Fixes an out of bound write in bitstream buffer am: 33ef7de9dd am: 0aab4958fb am: 9f72b6eca1 am: 73a3e320d8 am: 89377f2acf am: 9801d7e8d5 am: 109509aeb0
am: cb36e15c72

Change-Id: Ide9a6a1c78573941d4611f295622d8d8afa4ea9d
2017-02-13 19:01:46 +00:00
Harish Mahendrakar
d24b4a2fca Decoder: Fixes an out of bound write in bitstream buffer am: 33ef7de9dd am: 0aab4958fb am: 9f72b6eca1 am: 73a3e320d8 am: 89377f2acf am: 9801d7e8d5
am: 109509aeb0

Change-Id: I5d0e3112f87665bc116966c963b2b60bbdc586d7
2017-02-13 18:59:47 +00:00
Harish Mahendrakar
89377f2acf Decoder: Fixes an out of bound write in bitstream buffer am: 33ef7de9dd am: 0aab4958fb am: 9f72b6eca1
am: 73a3e320d8

Change-Id: Id06cfbad9824a7921e4eb082417f14aa842bcfab
2017-02-13 18:52:16 +00:00
Harish Mahendrakar
73a3e320d8 Decoder: Fixes an out of bound write in bitstream buffer am: 33ef7de9dd am: 0aab4958fb
am: 9f72b6eca1

Change-Id: I3f25b86b4ad13ad3b7e9a85e51789145d4b1b0ab
2017-02-13 18:49:46 +00:00
Harish Mahendrakar
57f60a16d5 Decoder: Fixed error handling for dangling fields
In case of dangling fields with gaps in frames enabled,
field pic in cur_slice was wrongly set to 0.

This would cause dangling field to be concealed as a frame, which would
result in a number of MB mismatch and hence a hang.

Bug: 34097672
Change-Id: Ia9b7f72c4676188c45790b2dfbb4fe2c2d2c01f8
2017-02-08 22:40:36 +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
3fd5753edd Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases am: 1d5640f2f9 am: 5a26569fa3 am: 18a58ec2b6 am: 575fdb281f am: f8b3e57266 am: afbbd8f654 am: d41032215c am: 1695a11ad9
am: ef33c8152b

Change-Id: I0706e82ceda5f4aace005932add112b4cac55b62
2017-01-18 21:27:43 +00:00
Harish Mahendrakar
b8110924ae Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases am: 1d5640f2f9 am: 5a26569fa3 am: 18a58ec2b6 am: 575fdb281f am: f8b3e57266 am: afbbd8f654 am: d41032215c
am: 1695a11ad9

Change-Id: I2d04a0c85cba2f9eb2cfc5a625efe7e7de8172cd
2017-01-18 21:25:42 +00:00
Harish Mahendrakar
afbbd8f654 Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases am: 1d5640f2f9 am: 5a26569fa3 am: 18a58ec2b6 am: 575fdb281f
am: f8b3e57266

Change-Id: I7600f4b34e8e40d5118d04fdafed6f3a5b589c66
2017-01-18 21:20:13 +00:00
Harish Mahendrakar
f8b3e57266 Decoder: Initialize ps_cur_slice->u1_mbaff_frame_flag correctly for error cases am: 1d5640f2f9 am: 5a26569fa3 am: 18a58ec2b6
am: 575fdb281f

Change-Id: I735691b67ab0b41a8560b0bdd9aaaa5a3947b5d7
2017-01-18 21:17:41 +00:00