Commit graph

621 commits

Author SHA1 Message Date
Ashwin Natesan
b1636ac734
mvc: Fix for cases where PPS is replaced while still in use
Bug: 242417287
Test: fuzzer poc in bug
Change-Id: Icb2e9a8f3f815fe7ee271c57e334e13186665e9c
2022-08-19 21:08:41 +05:30
Treehugger Robot
5d36aabe47 Merge "mvc: Set minimum bitstream buffser size correctly" 2022-08-14 20:41:32 +00:00
Ashwin Natesan
eb3d11f42f
mvc: Set minimum bitstream buffser size correctly
Bug: 242303994
Test: fuzzer poc in bug
Change-Id: I7bc7fa05c46d9474db4fa8ee7761cf90fa6d8452
2022-08-13 12:09:58 +05:30
Ashwin Natesan
79dc65e023
mvc: Correct view id checks in SPS parsing
Corrected checks for number of views and view id
when parsing SPS in MVC decode

Bug: 241865791
Bug: 241867454
Test: fuzzer poc in the bugs
Change-Id: I8241de5c28ddbfebdb639852cf647df5e0a9487b
2022-08-12 12:13:16 +05:30
Treehugger Robot
d249d3642d Merge "Decoder: MVC decoding support added" 2022-08-08 14:53:05 +00:00
Ashwin Natesan
779bbfdb00 Decoder: MVC decoding support added
Added support for decoding 'Multiview High' profile, corresponding to
profile_idc of 118 in 'Rec. ITU-T H.264 (08/2021)'.

Bug: 232169767
Test: atest CtsMediaV2TestCases

Change-Id: I63256344a8a205e74f2bcebe555f5ba6cc3163d0
2022-08-06 05:51:31 +00:00
Harish Mahendrakar
2a238075dc Decoder: In case of no free buffers, release all buffers
When decoding erroneous streams, decoder may run out of all buffers
used to hold reference pictures and MV data. In such cases, ignore
all frames till the next IDR frame and then release all buffers while
decoding the IDR frame.

Bug: 236102268
Test: multiple seek on the clip in bug

Change-Id: I14d107a5fdaf5c8d2133e59f48c2b947a5fee5ff
2022-07-20 04:29:15 +00:00
Shivaansh Agrawal
0033e0fe5e Decoder: add support for QP and block_type map export in library
Bug: 175179303

Test: avcdec -c dec.cfg
Test: atest CtsMediaV2TestCases:CodecDecoderTest
Test: atest VtsHalMediaC2V1_0TargetVideoDecTest

Change-Id: I68f3a85aae1f4bca2c3e1eaad69d8eb7f23481b8
2022-05-17 09:55:20 +05:30
Treehugger Robot
a3721a6a8c Merge "Decoder: add support for KEEP_THREADS_ACTIVE" 2022-02-23 18:52:13 +00:00
Manisha Jajoo
d1e64cc366 Decoder: add support for KEEP_THREADS_ACTIVE
Current design of AVC Decoder creates new threads
to process each frame. This CL adds support to reuse
the threads across frames.

Test: avcdec -c dec.cfg
Bug: 191124963

Change-Id: I087699c4c7ce6aa59a1d8b078ae196a50dcf889c
2022-02-09 17:59:29 +05:30
Treehugger Robot
6ff3e24351 Merge "Builds: Modular cmake scripts added" 2022-02-09 06:02:27 +00:00
Ashwin Natesan
ca68f61641 Builds: Modular cmake scripts added
Cmake scripts are now modular. Separate scripts now handle
build specifications for each target and dependency.

Toolchain files have been added for armv7, armv8 builds.

Bug: 213579857
Test: Builds using cmake
Test: Builds in OSS-fuzz

Change-Id: Iac62b443c0a0de09a2ce6553a660db2c3d5dc846
2022-02-02 11:14:55 +05:30
Harish Mahendrakar
23247c8142 Move slice increments after completing header parsing
Slice increments are now done after completing header parse.
Earlier this was done before validating mmco related parameters
and calculating poc. In case there were errors that were detected
at this stage, slice increments were incorrect.

Bug: 199536974
Bug: 199733300
Bug: 205702093
Bug: oss-fuzz#38387
Bug: oss-fuzz#38482
Bug: oss-fuzz#40851
Test: ossfuzz generated poc in bug

Change-Id: I8569e9369e4ab6f6c69c81b937f111c299b7a134
(cherry picked from commit cd0385dc07)
(cherry picked from commit dc110841d6)
Merged-In:I8569e9369e4ab6f6c69c81b937f111c299b7a134
2021-12-15 00:01:15 +00:00
Bill Yi
75e53c541e Merge RQ3A.210905.001 to aosp-master - DO NOT MERGE
Merged-In: I52a5f915b9bb31f432c4ad55ae4117ff4ddceb54
Merged-In: If80dcc5d1e0a057c965631fc2d33e4e642d7eab9
Merged-In: If80dcc5d1e0a057c965631fc2d33e4e642d7eab9
Change-Id: Ia67df08355cf08f479df3c683a7f981402d27dcd
2021-09-08 17:57:06 -07:00
Rakesh Kumar
fa13b30876 Decoder: Update check for increment u2_cur_slice_num
Increment u2_cur_slice_num only if current slice had atleast
one MB of memory left.

Test: clusterfuzz generated poc in bug
Bug: b/182152757
Bug: b/179938345
Bug: b/185112718

Change-Id: Ic5eb07e961bccb7fde954bcfd791fd879804e335
(cherry picked from commit a88e0683a4)
2021-06-30 23:58:27 +00:00
Rakesh Kumar
4a22b5d105 Decoder: Update check for increment u2_cur_slice_num
Increment u2_cur_slice_num only if current slice had atleast
one MB of memory left.

Test: clusterfuzz generated poc in bug
Bug: b/182152757
Bug: b/179938345
Bug: b/185112718

Change-Id: Ic5eb07e961bccb7fde954bcfd791fd879804e335
2021-05-06 16:41:46 -07:00
Shivaansh Agrawal
2205f2da33 Decoder: add support to use ih264d instead of ivd structures
Bug: 175759733
Test: avcdec -c dec.cfg
Change-Id: I410bb2213cb375c5eabcb3e23499d6ad43cf1c96
2021-02-25 05:31:40 +00:00
Bill Yi
bd550e880a Merge RQ1A.210205.004 to aosp-master - DO NOT MERGE
Merged-In: I91cbfe74165d1a8f7b7d95edabb10be208ec54a2
Merged-In: I88c74ba5e0cce51e7106bf410744afbc74a7cd5c
Change-Id: Iea197441bcaba9503d1bdcb6f3771e76403bb137
2021-02-03 17:01:27 -08:00
Harish Mahendrakar
fd7e28588f decoder: Update check for first mb in slice
first_mb_in_slice shouldn't be >= mbs in the picture.

Test: poc in bugs
Bug: b/174238784
Bug: b/174507022
Bug: oss-fuzz:27856
Bug: oss-fuzz:28039
Change-Id: Id3a41c8c2ddf814910fc2d5dd4f57bdd84d28fec
(cherry picked from commit 7e06940dce)
2020-12-15 21:45:29 +00:00
Harish Mahendrakar
82e6bc3fd0 decoder: Update check for first mb in slice am: 7e06940dce am: 4fb26568a9 am: 2bf6790f63 am: 5f4f6e2ecf am: 640eda280b am: d6c30aa7da
Original change: 13171299

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I02be4ad3b7142d81f9513539746984e0f4b64909
2020-12-09 03:15:39 +00:00
Harish Mahendrakar
640eda280b decoder: Update check for first mb in slice am: 7e06940dce am: 4fb26568a9 am: 2bf6790f63 am: 5f4f6e2ecf
Original change: 13171299

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I255ad3b9709afceb4cc8b31298bf3a9071ef4b3a
2020-12-09 02:21:19 +00:00
Harish Mahendrakar
5f4f6e2ecf decoder: Update check for first mb in slice am: 7e06940dce am: 4fb26568a9 am: 2bf6790f63
Original change: 13171299

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I99b30e4b2ac5f7b0fdeac9adbce15e92d2b36c8f
2020-12-09 01:48:37 +00:00
Harish Mahendrakar
2bf6790f63 decoder: Update check for first mb in slice am: 7e06940dce am: 4fb26568a9
Original change: 13171299

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I062c47998e23df0fe4d9c18ad9622aa55eb7ec96
2020-12-09 01:33:06 +00:00
Harish Mahendrakar
7e06940dce decoder: Update check for first mb in slice
first_mb_in_slice shouldn't be >= mbs in the picture.

Test: poc in bugs
Bug: b/174238784
Bug: b/174507022
Bug: oss-fuzz:27856
Bug: oss-fuzz:28039
Change-Id: Id3a41c8c2ddf814910fc2d5dd4f57bdd84d28fec
2020-12-04 16:09:10 -08:00
Xin Li
f59c3864fe Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855
Bug: 172690556
Merged-In: I829eb4215ea9aa15adf66e8bbdb37ec88a9bb6a4
Change-Id: I2e739d3606ba9f0938ebc2363cb9443ec3dec912
2020-11-23 13:14:11 -08:00
Shivaansh Agrawal
6efeedf063 Decoder: Fix integer overflow in parse slice
Bug: 165976727
Test: POC in bug description
Change-Id: Ia2c8ad5fe6e212d3910a9c91cda52c19f3fac120
2020-11-17 23:34:54 +05:30
Ray Essick
e76f029dc4 Merge "Decoder: Fix integer overflow when scaling motion vectors" 2020-10-11 05:09:38 +00:00
Treehugger Robot
f7225b7fa5 Merge "Decoder: Fix unsigned integer overflow" 2020-10-09 20:06:04 +00:00
Hamsalekha S
3fe5adf3ad Decoder: Fix heap buffer overflow. am: 0b601e1a4f
Original change: 12266630

Change-Id: I829eb4215ea9aa15adf66e8bbdb37ec88a9bb6a4
2020-09-27 17:43:42 +00:00
Neelkamal Semwal
fcf0c2774c Decoder: Fix integer overflow when scaling motion vectors
Typecast to 64-bits for valid overflowing arithmetic operations

Bug: 143791664
Bug: 150044751

Test: poc in bug description

Change-Id: I1b938c7c2d4d817979fff65ab271a42f6bdc3e89
2020-09-18 22:59:16 +05:30
Shivaansh Agrawal
2a28c97cd6 Decoder: Fix NPD issue in mmco function
Skip mmco buffer operations if mmco error in sequence

Bug: 168426116
Bug: 168426117
Test: POC in bug description
Change-Id: Ia4f3f48137152e211322ed97f2fafab2f45cb2c3
2020-09-16 17:07:13 +05:30
Manisha Jajoo
8217d22de9 Decoder: Fix unsigned integer overflow
Fix integer overflow issues in parse functions

Test: poc in bug

Bug: 143791646
Bug: 150045816

Change-Id: Ie0bde7a5cf266fe327b1d5e43fffe28f6e402188
2020-08-28 15:02:17 +05:30
Xin Li
70bf1e5994 Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Bug: 166295507
Merged-In: I49c82ad516931b8a7c90dc446a5df5e6ee52e56f
Change-Id: I609894770235673dc005d118062b9f8b4af08ba8
2020-08-27 10:16:27 -07:00
Treehugger Robot
2baef25896 Merge "Decoder: Integer overflow fixes in parsing Qp and weights" 2020-08-20 15:24:02 +00:00
Ray Essick
adfbdd6c41 Merge "decoder: Update reorder depth to account for display latency" 2020-08-17 05:21:00 +00:00
Harish Mahendrakar
f792904577 decoder: Update reorder depth to account for display latency
Decoder returns output with an additional latency of 2.
reorder depth retured is now updated to account for this extra latency

Also move reorder_depth initialization to parse_sps()
Instead of initializing reorder_depth after decoding first picture,
initialize it in parse_sps().

Bug: 163127030
Test: poc in bug
Test: atest android.mediav2.cts

Change-Id: I94b35b2c5df5c910d0159548b168617946a19cc2
2020-08-13 19:23:26 -07:00
Harish Mahendrakar
08b77b2351 Decoder: Integer overflow fixes in parsing Qp and weights
Error checks for syntax elements related to QP,
luma and chroma prediction weights have been modified
to fix overflow

Bug: 136568141
Bug: 143801227
Bug: 143791288

Test: POC in bug description

Change-Id: I88e886ba4bcda69079f1b0a8344005fe1aa51366
2020-08-06 23:10:15 -07:00
Ray Essick
159799b4d4 Merge "Decoder: Fix integer overflow in poc calculation" 2020-08-04 20:57:51 +00:00
Shivaansh Agrawal
dfd1f2ff70 Decoder: Fix integer overflow in poc calculation
Passed error and standard compliance tests with integer and address sanitizers.

Bug: 143791063
Test: POC in bug description
Change-Id: Idbba64cfb397b8af3ccd5770ce115fadd0d9112c
2020-08-04 12:16:57 +05:30
Hamsalekha S
0b601e1a4f Decoder: Fix heap buffer overflow.
Fix bitstream buffer overflow in the function
ih264d_parse_sei_message

Bug: 152895390

Test: POC in bug

Change-Id: I41ff1f7b2834c2d09e546b8e3d37e4cd4abfa28d
2020-07-29 23:47:11 +00:00
Ray Essick
2c7af2702b Merge "decoder: fix integer overflow when setting i4_prev_max_display_seq" 2020-07-29 21:29:42 +00:00
Shivaansh Agrawal
358b09305a decoder: fix integer overflow when setting i4_prev_max_display_seq
reset ps_dec->i4_prev_max_display_seq if out of int32 range
to avoid overflow

Bug: 143791121
Bug: 143791161
Test: POC in bug description
Change-Id: I3d8df556b003a7c739716bb33262ab3a6ca7b2d9
2020-07-29 04:39:31 +00:00
Harish Mahendrakar
487d9e6e24 decoder: Allow stride to be smaller than decode width am: a0036e742b am: e4649d8d3f
Original change: 1358387

Change-Id: I49c82ad516931b8a7c90dc446a5df5e6ee52e56f
2020-07-09 23:29:53 +00:00
Harish Mahendrakar
a0036e742b decoder: Allow stride to be smaller than decode width
When cropping is enabled, application can request a stride that
is larger than display width but smaller than decode width.

Bug: 160397536
Test: stagefright -sS <clip in bug>

Change-Id: I453b2de0474f3ae4d021084729c33d52fc1090dc
2020-07-09 17:59:47 +00:00
Aasaipriya Chandran
623f5587d7 Decoder: Fix Null dereference am: 083b9fc086 am: 5365d9ad7f
Original change: 1328476

Change-Id: I1e8275497a20105f4c1545ac4022569005191367
2020-07-01 05:20:11 +00:00
Aasaipriya Chandran
083b9fc086 Decoder: Fix Null dereference
Add checks to validate long term index and
max long term index parsed in MMCO commands.

Bug: 140358770
Bug: 140680655
Bug: 148772548
Bug: 152148135
Bug: 152434373
Bug: 152550528

Test: poc in bug
Change-Id: I9052ce7721491fdd5fb4807ec33e399cee8c70cf
2020-06-12 17:21:26 +05:30
Harish Mahendrakar
e0ad0016f0 Revert "decoder: set u4_frame_decoded to true only after both fields are decoded"
This reverts commit f76370c671.

Reason: This breaks interlaced clips which are sent one field at a time

C2 plugin for avc decoder is now updated to appropriately handle both
types of interlaced content, i.e. sent as one field per one input buffer
and sent as two fields per one input

Bug: 135146280
Bug: 152087140
Test: poc in bugs
Test: atest android.media.cts.DecoderTest

Change-Id: Ic79d13a4bd93573767c86ed31264e8780da8d9a5
2020-04-06 15:33:53 -07:00
TreeHugger Robot
66556bc9a3 Merge "decoder: Fix lt_ref increment in ih264d_fix_error_in_dpb" into qt-qpr1-dev am: 280902e61f
Change-Id: I3a0e050d5e7f17f8233dd7203d0a382c86a70971
2020-03-20 02:39:03 +00:00
Harish Mahendrakar
c0215b1b3d decoder: Fix in detecting dangling fields am: 6dd54b9e18
Change-Id: I61076f4526feeb891a5f866d6f965211e9e65edc
2020-03-20 02:38:56 +00:00
TreeHugger Robot
7286f5f021 Merge "decoder: Fix lt_ref increment in ih264d_fix_error_in_dpb" into qt-qpr1-dev am: 280902e61f
Change-Id: I3f9e5f1019b7759e83a2cc7f2848766f52bcdfed
2020-03-20 02:38:53 +00:00