Commit graph

296 commits

Author SHA1 Message Date
Ray Essick
35ab7bdfa0 Merge "Fix in the case of MMCO 3 (long term reference idx)." 2017-03-01 20:54:06 +00:00
Ray Essick
8429840eec Merge "Bug fix for flush without valid frames" 2017-03-01 20:54:00 +00:00
Hamsalekha S
a3ab2caa43 Fixed bug in the case of resolution change.
Modified the way i4_header_decoded in decoder context
is used, to ensure that resolution change is detected
even if PPS has not been decoded.

Bug: 35583675
Test: ran POC, no longer hangs

Change-Id: Ibb3f8dfbeb66a999fd81720a7d2a02dd951a55c4
2017-02-21 12:20:06 -08:00
Hamsalekha S
d0ab5b06d7 Bug fix for flush without valid frames
We now return fail and get out of flush mode to accept bitstream in the next call.

Bug: 35585952
Test: test case does not hang

Change-Id: Id22cc98d4a47714475a67918990a181a805c4c9f
2017-02-21 12:18:44 -08:00
Hamsalekha S
6fa5df8811 Fix in the case of MMCO 3 (long term reference idx).
Increment number of long term reference buffers only when both top field
and bottom field have been set as long term.

Bug: 35584425
Test: ran POC - no hang, no segfault.

Change-Id: I94e3857944da675eda38f8e1a9bd887f48bff524
2017-02-21 12:17:02 -08:00
Marco Nelissen
ea8a5247fa resolve merge conflicts of 3654ad0 to mnc-dr-dev am: 37345554fe am: 33d9d00a3c am: 858542d83e am: 2e4b53cfb4 am: 7c50684ef0 am: 834462327b am: 1d999b7cdf am: 9e011993f4
am: 9855b0af5a

Change-Id: I2bbc1ef64bdcd1b2a57068210e563727d114290c
2017-02-14 23:47:57 +00:00
Marco Nelissen
9855b0af5a resolve merge conflicts of 3654ad0 to mnc-dr-dev am: 37345554fe am: 33d9d00a3c am: 858542d83e am: 2e4b53cfb4 am: 7c50684ef0 am: 834462327b am: 1d999b7cdf
am: 9e011993f4

Change-Id: Ie85c00c72d96663d6a228a18fb807aaaf89384dc
2017-02-14 23:24:24 +00:00
Marco Nelissen
7c50684ef0 resolve merge conflicts of 3654ad0 to mnc-dr-dev am: 37345554fe am: 33d9d00a3c am: 858542d83e
am: 2e4b53cfb4

Change-Id: I36252dfb66db49049efbc6fe9a8e59aaf90fae35
2017-02-14 23:03:32 +00:00
Marco Nelissen
2e4b53cfb4 resolve merge conflicts of 3654ad0 to mnc-dr-dev am: 37345554fe am: 33d9d00a3c
am: 858542d83e

Change-Id: I8376533d60ce908a6a08e260f57cb6163a7fa2dd
2017-02-14 23:01:52 +00:00
Marco Nelissen
37345554fe resolve merge conflicts of 3654ad0 to mnc-dr-dev
Bug: 33818508
Bug: 34013472
Change-Id: I2e99cbceba1c00555d624e8975522725e362362b
2017-02-14 13:49:16 -08:00
Marco Nelissen
3654ad0da5 Merge changes Iec2941f1,I38be0e4c into mnc-dev
* changes:
  Decoder: Add supported width check for MBaff streams
  Decoder: Added a check for unsupported resolutions
2017-02-14 21:30:39 +00:00
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
69b5191865 Decoder: Add supported width check for MBaff streams
In case of MBAff streams, decoder processes two rows at a time,
this limits maximum supported width to 1920 for MBAff streams.

Bug: 33818508
Bug: 34013472
Change-Id: Iec2941f116cf3c36b63013a930319960023a3b42
2017-02-13 15:30:57 -08:00
Harish Mahendrakar
9d60a0c5da Decoder: Added a check for unsupported resolutions
Decoder now returns an error for resolutions greater than 3840x2176

Bug: 24542936

Change-Id: I38be0e4c5cf2a980bfd4c781f3b49171f73b5ccb
2017-02-13 15:30:46 -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