Commit graph

55 commits

Author SHA1 Message Date
Marco Nelissen
628056c0ed Merge "Decoder: Updated error check while parsing num_ref_idx_lx_active." into mnc-dev
am: 224824ba17

Change-Id: Id5366922a8312c3fc99f5dc42c64e4bfdf11795b
2017-09-13 05:51:32 +00:00
Hamsalekha S
208c74d62a Decoder: Updated error check while parsing num_ref_idx_lx_active.
Added an error check on the lower limit of u1_num_ref_idx_lx_active,
while parsing slice header. The minimum possible value is 1.

Bug: 64836894

Change-Id: I57056851fc135ed00f7a10af5c81eb560e9e12de
2017-09-11 20:16:47 +00:00
Hamsalekha S
a925a6b539 Decoder: Fixed allocation of pv_map_ref_idx_to_poc_buf.
Increased allocation to include reference list1 also by
default. In the case of error, we could get B_SLICES
even in BASE_PROFILE. The initialization in the
dec_slice_struct_t slice structure has also been
modified accordingly.

Test: run poc with and without this patch
Bug: 38496660
Change-Id: I3451d79bbcd9f0d7a80981a9897f877b7f0812bd
2017-07-13 17:49:14 +00:00
Marco Nelissen
d98f1cf41b Merge "Initializing reference list for every P/B slice." into mnc-dev
am: 3477b8e0d7

Change-Id: I0ccb9c141c7e7e1b8be6e8e6ddc1c333c10a8662
2017-06-06 20:27:41 +00:00
Hamsalekha S
f9d3f9af8f Initializing reference list for every P/B slice.
Reference list needs to be initialized for every P/B
slice, to ensure colocated picture always points to a
valid picture buffer, even in the case of error.

Bug: 36279112

Change-Id: I051d7e725b0af209cc7bb333db8da3518adf78a0
2017-06-02 10:22:52 -07:00
Hamsalekha S
65077f6cfe Merge "Decoder: Fix end of bitstream error." into mnc-dev
am: 810356f4de

Change-Id: Ibca3bfa3cd3dc50a53c02a2d972cf41b10ac5848
2017-05-16 20:49:45 +00:00
Hamsalekha S
2e01924cd6 Decoder: Fix end of bitstream error.
The end of bistream error check was fixed for
odd number of macroblocks in Mbaff frames.

Bug: 37008096
Test: Ittiam-verified
Change-Id: I058d74a3c1d1511968c2b36802dfc5c102947919
2017-05-11 17:11:25 -07:00
Ray Essick
ba33452066 Merge "Decoder: Fixes in accessing mbaff flag in error cases" into mnc-dev
am: 7ace2f5ca2

Change-Id: I5dde0d284cb06fa2faddae483900df1102d9bc52
2017-04-05 23:36:35 +00:00
Harish Mahendrakar
0f2f2b5fde 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
(cherry picked from commit 3f6937a003)
2017-03-23 23:46:33 +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
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
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
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
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
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
274529d8aa Decoder: Fix in checking first_mb_in_slice
am: ef27433ca8

Change-Id: Ic27ccbbcad3d991862b7e680595ab0ae4fd23eb0
2017-01-18 18:18:24 +00: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
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
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
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
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
fab0729908 Decoder: Fixes in handling errors in Mbaff clips.
am: 6676aeb419

Change-Id: If83edf15d904c166661b3ab6065c5230269231dd
2016-10-18 23:36:38 +00:00
Marco Nelissen
23d5bc6405 Merge "Decoder: Fixes in handling errors in Mbaff clips." into mnc-dev 2016-10-18 23:33:12 +00:00
Harish Mahendrakar
6676aeb419 Decoder: Fixes in handling errors in Mbaff clips.
Fixes mb_x, mb_y and first_mb_in_slice for Mbaff error streams

Bug: 30481714

Change-Id: Ie99f3b57e48a620a4bc7aee88031955a2e1b6753
2016-10-18 12:19:18 -07:00
Harish Mahendrakar
02f663b3c2 Decoder: Fixes for handling errors in multi-slice MB Aff streams
am: bc71ad2d43

Change-Id: Ibcbdbb3c4473b3199abff8d47444e59416589695
2016-09-22 18:19:55 +00:00
Harish Mahendrakar
bc71ad2d43 Decoder: Fixes for handling errors in multi-slice MB Aff streams
Initialize default reference buffer for erroneous interlaced clips
Pick slice_type from decode thread slice structure
Call start_of_pic only once

Bug: 30822755
Change-Id: I553c646446d99a626d62351aa1b385355191cdc3
2016-09-22 08:29:34 -07:00
Harish Mahendrakar
ff7ccdab0c Fix in the case of invalid SPS PPS
am: c2e8ffe451

Change-Id: Iaf266c5ff2187ba980737b699884e3ebebe87bd0
2016-09-21 20:38:58 +00:00
Harish Mahendrakar
c2e8ffe451 Fix in the case of invalid SPS PPS
Bug: 31092462
Change-Id: I0e2ab5a1088717bbf36f6b0cf859b5a6e0f59c5d
2016-09-21 09:50:06 -07:00
Harish Mahendrakar
d75185f90e Merge \"Decoder: Fix slice number increment for error clips\" into mnc-dev
am: 2e88a2aa67

Change-Id: I791c029e3b39202db3f49f13fbb511904b5e8fef
2016-06-10 21:31:13 +00:00
Marco Nelissen
2e88a2aa67 Merge "Decoder: Fix slice number increment for error clips" into mnc-dev 2016-06-10 21:21:44 +00:00
Harish Mahendrakar
5e4f64c074 Decoder: Fix slice number increment for error clips
Bug: 28673410
2016-06-09 08:31:55 -07:00
Harish Mahendrakar
2c9d67ffaf Fix slice params for interlaced video
Bug: 28165661
Change-Id: I912a86bd78ebf0617fd2bc6eb2b5a61afc17bf53
2016-05-25 20:06:08 +00:00
Harish Mahendrakar
cdfd7573ec Fix slice params for interlaced video
Bug: 28165661
Change-Id: I912a86bd78ebf0617fd2bc6eb2b5a61afc17bf53
2016-05-25 02:25:00 +00:00
Harish Mahendrakar
4e5762ce4b Decoder: Set u1_long_term_reference_flag to 0 for error concealment
am: eacafb943c

* commit 'eacafb943c':
  Decoder: Set u1_long_term_reference_flag to 0 for error concealment

Change-Id: I8836bf700a7b77deff062d9d1737b903583ad6b2
2016-05-24 00:28:43 +00:00
Harish Mahendrakar
eacafb943c Decoder: Set u1_long_term_reference_flag to 0 for error concealment
For MBs which are in error, set u1_long_term_reference_flag to zero.
This ensures latest frame is used for concealment

Bug: 28470138
Change-Id: I58eab5bc1da277823f3dbb4103ba50867f8935dc
2016-05-23 21:26:38 +00:00
Harish Mahendrakar
129a6006b4 Decoder: Initialize slice parameters before concealing error MBs
am: 33db7a0f4e

* commit '33db7a0f4e':
  Decoder: Initialize slice parameters before concealing error MBs

Change-Id: I91b5e507d6871e523add85ed774c5de2b85fcf18
2016-05-23 18:34:43 +00:00
Harish Mahendrakar
33db7a0f4e Decoder: Initialize slice parameters before concealing error MBs
Also memset ps_dec_op structure to zero.
For error input, this ensures dimensions are initialized to zero

Bug: 28165661
Change-Id: I66eb2ddc5e02e74b7ff04da5f749443920f37141
2016-05-20 15:27:35 -07:00
Naveen Kumar Ponnusamy
64112d21e3 Return error when there are more mmco params than allocated size
am: 943323f1d9

* commit '943323f1d9':
  Return error when there are more mmco params than allocated size
2016-01-15 02:10:55 +00:00
Naveen Kumar Ponnusamy
943323f1d9 Return error when there are more mmco params than allocated size
Bug: 25818142

Change-Id: I5c1b23985eeca5192b42703c627ca3d060e4e13d
2016-01-13 21:18:46 +00:00
Harish Mahendrakar
608fc7f4ae Decoder Update mb count after mb map is set.
am: 4a524d3a8a

* commit '4a524d3a8a':
  Decoder Update mb count after mb map is set.
2016-01-07 21:07:40 +00:00
Harish Mahendrakar
4a524d3a8a Decoder Update mb count after mb map is set.
Bug: 25928803

Change-Id: Iccc58a7dd1c5c6ea656dfca332cfb8dddba4de37
2016-01-07 11:08:06 -08:00
Harish Mahendrakar
e023fbb28c Decoder: Once all the MBs in a picture are decoded ignore remaining bytes
Once all the MBs are decoded, simply break from decode loops and do not signal an error
This will handle cases where there may be extra bytes at the end of picture data

Change-Id: I6d8ec918df5375f135e60f85b9a56ab2a5313a64
2015-10-16 20:09:34 +00:00