Commit graph

503 commits

Author SHA1 Message Date
Harish Mahendrakar
f47d8da8ab decoder: Clean up scaling_mat_offset access
Test: atest android.media.cts.DecoderTest
Bug: 148412960

Change-Id: I90baa7482c0e8df183ccbb01d2eec68fcc513a1d
2024-02-20 00:47:28 +00:00
Vivek Jadhav
d819e51e11 decoder: Handle incomplete slice received during decoding
If a partial or incomplete slice is received it
sets prev_slice_incomplete_flag and i4_slice_error and returns
back with IHEVCD_IGNORE_SLICE

Bug: oss-fuzz:61331
Test: ./hevc_dec_fuzzer
2023-10-25 22:24:22 -07:00
Srujan Vandrangi
3c03b2bcf7 decoder: add check for luma height while parsing sps
Bug: oss-fuzz:60439
Test: ./hevc_dec_fuzzer
2023-10-25 06:56:55 -07:00
srujan vandrangi
90aefb438b decoder: join threads in flush mode
Test: hevcdec
2023-09-25 08:48:17 -07:00
Harish Mahendrakar
a3a680224d Revert "decoder: fix bytes consumed in case slice in header mode error"
This reverts commit d7b7ccc4cd.

Reason for revert: This breaks decoding using hevcdec binary
2023-08-06 15:38:38 -07:00
Harish Mahendrakar
72558e3be0 decoder: join threads in reset()
Test: hevc_dec_fuzzer
2023-07-23 22:40:57 -07:00
Srujan Vandrangi
4cd4edc0f6 decoder: replace KEEP_THREADS_ACTIVE macro with hevc struct variable
Bug: 289097296
Test: Build
2023-07-21 13:18:21 -07:00
Srujan Vandrangi
d7b7ccc4cd decoder: fix bytes consumed in case slice in header mode error
Bug: oss-fuzz:23200
Test: hevc_dec_fuzzer
2023-07-04 18:23:30 -07:00
Harish Mahendrakar
e4b160c9e5 decoder: cleanup MULTICORE macro 2023-05-26 16:13:41 +05:30
Srujan Vandrangi
42f5600e24 decoder: adding out of boundary check while parsing slice header
Bug: oss-fuzz:17070
Test: hevc_dec_fuzzer
2023-05-26 01:49:21 -07:00
Harish Mahendrakar
8fd281b28c decoder: Fix OOB read from stack in intra pred modules
Bug: 263910597
Test: hevc_dec_fuzzer
Test: test hevcdec for standard test clips
2023-04-10 11:35:42 +05:30
Harish Mahendrakar
be899d6a6b Fix cmake build for arm 2023-03-27 20:53:41 -07:00
Colin Cross
96b43f1aee Add riscv64 to libhevc
Add riscv64 to libhevc using the C functions.

Test: lunch aosp_riscv64-userdebug && mmma external/libhevc
Change-Id: I19c9b230e746e41d0d33ba185f1e0b940d80c9a7
2023-01-26 05:00:55 +00:00
Harish Mahendrakar
959f60d8b9 Remove mips specific files
Test: Builds
Bug: 261484694

Change-Id: Iff216d988b3ec0954897ad96baa338d4c7a614c2
2022-12-06 05:12:35 +05:30
Shivaansh Agrawal
f6dcd29208 Decoder: add support for QP and block_type map export in library
Bug: 176469524

Test: hevcdec -c test.cfg
Test: atest -c android.mediav2.cts.CodecDecoderTest
Test: atest VtsHalMediaC2V1_0TargetVideoDecTest

Change-Id: I75aebd3c4121d3b8cb5a2a947f643abbff41810d
2022-08-04 11:40:43 +05:30
Treehugger Robot
104da7c893 Merge "Decoder: add support to use ihevcd instead of ivd structures" 2022-07-06 04:19:49 +00:00
Neelkamal Semwal
1c2342b48e decoder: Fix integer overflow in ihevcd_parse_pred_wt_ofst
Bug: 228326749

Test: poc in bug
Test: atest CtsMediaTestCases:VideoDecoderTest
Test: atest CtsMediaV2TestCases:CodecDecoderTest
Test: atest VtsHalMediaC2V1_0TargetVideoDecTest

Change-Id: Ifd63a964bc66c615d151877abbf06c1eeef0fc63
2022-05-19 12:01:00 +05:30
Shivaansh Agrawal
46a37119ac Decoder: add support to use ihevcd instead of ivd structures
Bug: 176411924

Test: hevcdec -c test.cfg
Test: atest -c android.mediav2.cts.CodecDecoderTest
Test: atest VtsHalMediaC2V1_0TargetVideoDecTest

Change-Id: Iacfc73fe4bc5b755ccc1f36d9bdc12ec3c0aae21
2022-05-05 11:45:55 +05:30
Neelkamal Semwal
21da565ddf Builds: Modular cmake scripts added
Add modular Cmake scripts. Separate scripts now handle
build specifications for each target and dependency.

Toolchain files have been added for armv7, armv8 builds.

Bug: 210759503

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

Change-Id: I5f522d3904907b33a39df52fc06f047be1f21834
2022-02-14 09:45:38 +05:30
Harish Mahendrakar
b10161aba2 decoder: Ignore RASL NALs after flush
After flush, if the first slice NAL sent to decoder is a CRA
picture, then it may have associated RASL NALs that need to
be skipped as they may contain references to pictures that
are not present in the bitstream that is fed to the decoder.

Currently decoder was handling this case only at the start
of decode and after receiving an EOS NAL. Now it is updated
to ignore such RASL NALs associated with CRA after flush as
well.

This is needed to handle seek in clips, where CRA NALS are
marked as sync points.

Bug: 194768162
Test: poc in bug
Test: atest VtsHalMediaC2V1_0TargetVideoDecTest
Test: atest CtsMediaV2TestCases:CodecDecoderTest

Change-Id: If5f38b0689c98c4d2a2a720b81d7e28593be5732
2021-09-29 17:20:50 -07:00
Xin Li
c238d1ba0a DO NOT MERGE - Merge RQ1A.201205.011
Bug: 172690556
Merged-In: I83e89056be52b96760d95f5826c2bfdcfd3962e2
Change-Id: I345273990b9c456d5264ba7b79256f8a52392399
2020-12-07 00:39:41 -08:00
Manisha Jajoo
663b9fd803 decoder: Fix memory uninitialized issue in ihevcd_sao_shift_ctb
Test: poc in bug
Bug: 158484516

Change-Id: I83e89056be52b96760d95f5826c2bfdcfd3962e2
(cherry picked from commit dcef8335b7)
2020-10-13 01:06:14 +00:00
Ray Essick
57d4fdc39b Merge "Decoder: add support for KEEP_THREADS_ACTIVE" 2020-10-09 22:23:38 +00:00
Manisha Jajoo
c57a80373a Decoder: add support for KEEP_THREADS_ACTIVE
Current design of HEVC Decoder creates new threads
to process each frame. This CL adds support to reuse
the threads across frames.

Test: manual
Bug: 167126301

Change-Id: Ic57133b25203dae9ed5d3d974e6137a733531da7
2020-08-31 22:00:10 +05:30
TreeHugger Robot
8dd5785494 Merge "common: Fix unintialized reads in intra pred sse functions" into qt-qpr1-dev am: c48a54d368
Change-Id: I7ece0c32b535b885bc8d605e5b26a09c94fd58dc
2020-03-20 04:25:25 +00:00
TreeHugger Robot
c48a54d368 Merge "common: Fix unintialized reads in intra pred sse functions" into qt-qpr1-dev 2020-03-20 04:12:56 +00:00
TreeHugger Robot
7d3d14afcf Merge "decoder: Fix integer overflow while parsing num_long_term_pics" into qt-qpr1-dev am: 1e1b2c7f1e
Change-Id: Id3954a471692be4b737fd1409fcb0515f7fd6c03
2020-03-20 02:58:38 +00:00
TreeHugger Robot
c5053a6a46 Merge "decoder: Return error if first slice decoded in a frame is dependent slice" into qt-qpr1-dev am: bab21d5cb9
Change-Id: I0820b88370622fa3e379032ba7717dbea1834c6f
2020-03-20 02:58:26 +00:00
TreeHugger Robot
bab21d5cb9 Merge "decoder: Return error if first slice decoded in a frame is dependent slice" into qt-qpr1-dev 2020-03-20 02:54:35 +00:00
TreeHugger Robot
92608dc644 Merge "decoder: Fix integer overflow while parsing num_long_term_pics" into qt-qpr1-dev am: 1e1b2c7f1e
Change-Id: Ibb3dd89a6e9990eadaeae8d2cadf847cbb59e757
2020-03-20 02:32:12 +00:00
TreeHugger Robot
1e1b2c7f1e Merge "decoder: Fix integer overflow while parsing num_long_term_pics" into qt-qpr1-dev 2020-03-20 02:31:08 +00:00
TreeHugger Robot
6540e973f8 Merge "Fix DoS in NAL search" into qt-qpr1-dev am: 1b481aebd6
Change-Id: I6b4644c57d3f2ebc356255a0ae8713175c219115
2020-03-19 18:49:27 +00:00
TreeHugger Robot
1b481aebd6 Merge "Fix DoS in NAL search" into qt-qpr1-dev 2020-03-19 18:39:44 +00:00
Automerger Merge Worker
1d5e937ff8 Do not call SIMD format conversion for width < 32 am: 75db1b8e48
Change-Id: Ib16bf887c1f3a1e0118e2872a39eb1de8cddfb29
2020-02-12 23:43:20 +00:00
Harish Mahendrakar
fa84ffd2c7 common: Fix unintialized reads in intra pred sse functions
Bug: 144686961
Bug: 137565646
Bug: 137228292
Test: poc in bug
Change-Id: I2830a30230cf566b17dca77a68136c9c4bd82215
(cherry picked from commit 406fb2aa0e)
2020-02-12 17:18:48 +00:00
Harish Mahendrakar
7dcf82ada4 decoder: Fix integer overflow while parsing num_long_term_pics
Bug: 143826590
Test: poc in bug
Change-Id: I190a8e27a400f686cba88edd5c8721404e53b9cb
2020-02-11 16:23:38 -08:00
Harish Mahendrakar
ae695cd67e decoder: Return error if first slice decoded in a frame is dependent slice
Dependent slice copies slice header from a previously decoded slice.
In case of errors, when the first slice is missing and subsequent slice to
be decoded is a dependent slice, it has no valid slice header to copy
from. Ignore such slices.

Bug: 141688974
Test: poc in bug
Change-Id: Idc1bed45ab37aeee4d373deb00e1b465ca84cfeb
(cherry picked from commit 40dbcab01b)
2020-02-04 19:39:47 +00:00
Harish Mahendrakar
75db1b8e48 Do not call SIMD format conversion for width < 32
Neon SIMD functions do not support width < 32.

Bug: 143464314
Test: poc in bug

Change-Id: I2445c3d98c0b1afbb1ef480403bbc67add629cac
(cherry picked from commit 6219b83299)
2020-02-04 19:31:27 +00:00
Harish Mahendrakar
196e72450a Fix DoS in NAL search
Bug: 139939283
Test: poc in bug
Change-Id: I345232790e2d351d82e9dc6973a5ef86ce513ef3
(cherry picked from commit e52410163e)
2020-02-04 05:09:05 +00:00
Automerger Merge Worker
468df916ac libhevcdec: iquant-itrans issue in chroma planes am: 445e0d8d5e am: bc614efab5 am: a17ed8aea7
Change-Id: I709937cf73009a6c37261f20a53ad2d514dc3969
2020-01-29 02:50:19 +00:00
Akshata Jadhav
445e0d8d5e libhevcdec: iquant-itrans issue in chroma planes
Misplaced local array on stack is resulting in color artifacts in
decoded yuv. It worked so far, because the array luma_nbr_flags_4x4[]
was always allocated on the same address and thus preserved values from
previous iteration.

Bug: 148157334
Test: atest android.media.cts.HeifWriterTest
Change-Id: Ic2b1964895bf26101508ff2ac82a94192b7b74f8
2020-01-28 04:56:13 +00:00
TreeHugger Robot
4622685ea4 Merge "Do not call SIMD format conversion for width < 32" 2019-12-04 00:15:53 +00:00
Harish Mahendrakar
6219b83299 Do not call SIMD format conversion for width < 32
Neon SIMD functions do not support width < 32.

Bug: 143464314
Test: poc in bug

Change-Id: I2445c3d98c0b1afbb1ef480403bbc67add629cac
2019-12-01 13:44:59 -08:00
Harish Mahendrakar
40dbcab01b decoder: Return error if first slice decoded in a frame is dependent slice
Dependent slice copies slice header from a previously decoded slice.
In case of errors, when the first slice is missing and subsequent slice to
be decoded is a dependent slice, it has no valid slice header to copy
from. Ignore such slices.

Bug: 141688974
Test: poc in bug
Change-Id: Idc1bed45ab37aeee4d373deb00e1b465ca84cfeb
2019-12-01 13:30:58 -08:00
Harish Mahendrakar
e52410163e Fix DoS in NAL search
Bug: 139939283
Test: poc in bug
Change-Id: I345232790e2d351d82e9dc6973a5ef86ce513ef3
2019-10-21 21:27:04 -07:00
Harish Mahendrakar
b5b07b5539 Merge "decoder: Reset slice header at start of slice header decode" into oc-dev am: 930597cb2e am: 588f78b7d7 am: 7b1140f957 am: 399938e52e am: 7aa6102559 am: 8bfa119917 am: 60f9768c9e
am: 3ef502bf64

Change-Id: I1092b88bb7903ae932a58c7ba71b869fc31e381e
2019-09-28 09:53:32 -07:00
Harish Mahendrakar
3ef502bf64 Merge "decoder: Reset slice header at start of slice header decode" into oc-dev am: 930597cb2e am: 588f78b7d7 am: 7b1140f957 am: 399938e52e am: 7aa6102559 am: 8bfa119917
am: 60f9768c9e

Change-Id: I2616ea213ca2d2790e597fcaa302b05118a0213b
2019-09-28 09:47:47 -07:00
Harish Mahendrakar
75d1ac1026 Merge "decoder: Reset slice header at start of slice header decode" into oc-dev am: 930597cb2e am: 588f78b7d7 am: 7b1140f957 am: 399938e52e am: 7aa6102559
am: 8bfa119917

Change-Id: I03efa8acbeeed1e82a49ac632a78a777b3419452
2019-09-28 09:41:58 -07:00
Harish Mahendrakar
60f9768c9e Merge "decoder: Reset slice header at start of slice header decode" into oc-dev am: 930597cb2e am: 588f78b7d7 am: 7b1140f957 am: 399938e52e am: 7aa6102559
am: 8bfa119917

Change-Id: Iec721bd520b328bb7d81d51106733715ea0105c8
2019-09-28 09:41:58 -07:00
Harish Mahendrakar
7aa6102559 Merge "decoder: Reset slice header at start of slice header decode" into oc-dev am: 930597cb2e am: 588f78b7d7 am: 7b1140f957
am: 399938e52e

Change-Id: I3107c7d7a21921561cbf1a9ebb34a8645011094d
2019-09-28 09:30:23 -07:00