Commit graph

59 commits

Author SHA1 Message Date
Hamsalekha S
252ca18add Merge "Fix resolution change within a decode call." into mnc-dev
am: 7fc42b801c

Change-Id: Ib6f3680beb6e5d837f2140eed3107a23491f99f6
2017-06-06 17:39:59 +00:00
TreeHugger Robot
7fc42b801c Merge "Fix resolution change within a decode call." into mnc-dev 2017-06-06 17:32:41 +00:00
Hamsalekha S
fe18375850 Fix resolution change within a decode call.
If resolution changes within a decode call,due to multiple
sps, the decoder hangs as the the application will
give the same data again in the next decode call. This
results in a hang. Fixed this by flaging an error,
when sps/resoultion changes within a process call.

Bug: 38487564
Test: ran POC on patched O-based system w/o hanging
Change-Id: I30095b2e8bf573c1a58a316a23b1a5e6a4af589b
2017-06-05 13:28:44 -07:00
TreeHugger Robot
0a91df5eca Merge "DO NOT MERGE Decoder: Fixed allocation size of pred info buffer" into mnc-dev 2017-06-02 18:40:21 +00:00
Marco Nelissen
db8f1ae73f Merge "Decoder: Fix allocation for Mbaff weight matrix" into mnc-dr-dev 2017-05-16 15:22:17 +00:00
Hamsalekha S
9a5c62841e Merge "Decoder: Fixed flag u1_top_bottom_decoded." into mnc-dev
am: cc07eaa5d2

Change-Id: Ie410da29e20aed95d674aaaeddd683e1f616c448
2017-05-12 22:51:00 +00:00
Hamsalekha S
07db35ad5a Decoder: Fix allocation for Mbaff weight matrix
Increased the allocation size for Mbaff weight
matrix buffer

Bug: 36996978

Change-Id: I21cf2cb1010abdc6346f743f5237ae1730c4bf41
2017-05-12 14:11:10 -07:00
Hamsalekha S
7703822731 Decoder: Fixed flag u1_top_bottom_decoded.
Fixed initialization of flag u1_top_bottom_decoded
in decoder context. This flag indicates if top
field and botton field is decoded.

Bug: 36993291
Test: avcdec --input poc.h264 --output /dev/null
Change-Id: I9f8a2620683abd8b15e4780d76d4849394710716
2017-05-12 20:14:46 +00:00
Hamsalekha S
6a5cb80068 DO NOT MERGE Decoder: Fixed allocation size of pred info buffer
Buffer allocation size for pred info was increased
in the case number reference frames equal to 1.

Bug: 36998372
Change-Id: I1f84a16703422109d40bed8436f35d0c2069c088
2017-05-11 15:09:57 -07: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
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
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
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
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
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
2c71fb1941 Call ih264d_deblock_display only for valid process calls
am: 318368435f

Change-Id: I210dfb1eaf04b3ddceffa041c43e25e52023090d
2017-01-09 17:03:46 +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
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
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
ff54ee6115 Fixed error concealment when no MBs are decoded in the current pic
am: b926905ee2

Change-Id: I8a0a6fc068b543a4431b085c9335301e89ef2e14
2016-07-14 01:22:44 +00:00
Harish Mahendrakar
b926905ee2 Fixed error concealment when no MBs are decoded in the current pic
Bug: 29493002
Change-Id: I3fae547ddb0616b4e6579580985232bd3d65881e
2016-07-13 17:32:27 -07:00
Harish Mahendrakar
c73e000665 Merge \"Decoder: Initialize first_pb_nal_in_pic for error slices\" into mnc-dev
am: b9d7cba8bf

Change-Id: I62f9c45eea70968942198b20f47c158dede39d8d
2016-06-21 18:53:18 +00:00
Robert Shih
b9d7cba8bf Merge "Decoder: Initialize first_pb_nal_in_pic for error slices" into mnc-dev 2016-06-21 18:47:11 +00:00
Harish Mahendrakar
48b182db5d Decoder: Do not conceal slices with invalid SPS/PPS
am: 3a419eac8d

Change-Id: I09e962ab090f890a149cb967f2b04fd95a7d76d7
2016-06-21 17:35:49 +00:00
Harish Mahendrakar
7a54468cf8 Decoder: Initialize first_pb_nal_in_pic for error slices
first_pb_nal_in_pic was uninitialized for error clips

Bug: 29023649

Change-Id: Ie4e0a94059c5f675bf619e31534846e2c2ca58ae
2016-06-16 17:28:19 -07:00
Harish Mahendrakar
3a419eac8d Decoder: Do not conceal slices with invalid SPS/PPS
Bug: 28835995
2016-06-14 13:43:54 -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
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
Harish Mahendrakar
370bd8625d Decoder: Memset few structures to zero to handle error clips
Bug: 27907656
Change-Id: I671d135dd5c324c39b4ede990b7225d52ba882cd
2016-05-11 09:20:48 -07:00
Harish Mahendrakar
43a1cf620f DO NOT MERGE. AVC decoder: init structures
Memset few structures to zero to handle error clips

Bug: 27907656
Change-Id: I517841fc8b6d674f7e4e3ebaf60dd2e42f1152ae
2016-05-11 08:18:59 -07:00
Harish Mahendrakar
1284f0c297 Ensure ih264d_start_of_pic() is not repeated in ih264d_mark_err_slice_skip()
am: c7a1cf4e0b

* commit 'c7a1cf4e0b':
  Ensure ih264d_start_of_pic() is not repeated in ih264d_mark_err_slice_skip()
2016-02-23 02:25:36 +00:00
Harish Mahendrakar
c7a1cf4e0b Ensure ih264d_start_of_pic() is not repeated in ih264d_mark_err_slice_skip()
In case of error in handling MMCO commpands/reference list creation,
ih264d_start_of_pic() was called again in ih264d_mark_err_slice_skip() resulting in
leaking a picture or an MV buffer in buffer manager.

To fix this, ensure prev_slice_err is set to 1 only if u4_pic_buf_got is zero, before
calling ih264d_mark_err_slice_skip() at the end of picture decode.
This will ensure ih264d_start_of_pic() is not repeated

Bug: 25818142

Change-Id: I7d5a9179533581eec663bc6a19a2901e7cce6af3
2016-02-22 14:27:52 -08:00
Dan Willemsen
1c01bc10a9 Remove __DATE__/__TIME__ from Android builds
This removes unnecessary changes from build to build.

Bug: 24204119
Change-Id: I25258314fe56ea186d38d756fb5fb04aa689a812
(cherry picked from commit f197ccb756)
2015-10-30 21:54:53 +00:00
Harish Mahendrakar
7ba9f34a49 Decoder: Memset 8 extra bytes at the end of internal bitstream buffer
Decoder may read 8 extra bytes at the end of this buffer, though it will never be used
Setting it to zero will ensure unitialized reads are avoided

Change-Id: I724239861cb9fa64f3a70cb5450e094cb3afa20c
2015-10-16 20:12:42 +00:00
Harish Mahendrakar
e027a11e31 Decoder: Exit gracefully in case of allocation failure
Skip error concealment when allocation fails for decoder buffers

Change-Id: I785f31cad5dca52c8c67cba78cdd330b7b4539e1
2015-10-16 19:29:43 +00:00