Commit graph

486 commits

Author SHA1 Message Date
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
TreeHugger Robot
930597cb2e Merge "decoder: Reset slice header at start of slice header decode" into oc-dev 2019-09-28 14:09:32 +00:00
Harish Mahendrakar
10bda93c03 Check change in CTB size when decoding multiple SPS with same id am: 70940fbabd am: a9fc115a23 am: a368569d61
am: 06aa42bdc7

Change-Id: I653fc906cffc10f57e7183b6696c4df4e77b44dc
2019-09-27 14:45:22 -07:00
Harish Mahendrakar
06aa42bdc7 Check change in CTB size when decoding multiple SPS with same id am: 70940fbabd am: a9fc115a23
am: a368569d61

Change-Id: I8b9eae557279323378b728e6452550f2547610c6
2019-09-27 14:37:21 -07:00
Harish Mahendrakar
12ef0d291b Check change in CTB size when decoding multiple SPS with same id am: 70940fbabd
am: a9fc115a23

Change-Id: I5b9cbfb2e9c11d1b66c22cc52aef64f9e263ad62
2019-09-27 14:30:47 -07:00
Harish Mahendrakar
a368569d61 Check change in CTB size when decoding multiple SPS with same id am: 70940fbabd
am: a9fc115a23

Change-Id: I962ca2ef87273ec6082d10abb1ee32b16a0c8118
2019-09-27 14:30:46 -07:00
Harish Mahendrakar
072f9084f4 Check change in CTB size when decoding multiple SPS with same id
If an SPS is being overwritten, ensure CTB size remains same.
If not, return from decoder and reset the decoder state in the
subsequent decode call.

Bug: 140322595
Test: poc in bug
Change-Id: Ie1a18b18704d6ef099535149fe21a1921bcbeeaf
Merged-In: I5f1e52d3bd2b48874a088ab32054f5a89e62eeb5
2019-09-19 21:34:52 -07:00
Harish Mahendrakar
70940fbabd Check change in CTB size when decoding multiple SPS with same id
If an SPS is being overwritten, ensure CTB size remains same.
If not, return from decoder and reset the decoder state in the
subsequent decode call.

Bug: 140322595
Test: poc in bug

Change-Id: I5f1e52d3bd2b48874a088ab32054f5a89e62eeb5
2019-09-19 21:17:50 -07:00
Harish Mahendrakar
42f70ae4ef decoder: Reset slice header at start of slice header decode
Reset slice header to zero, to avoid using invalid slice header
contents from prior headers parsed.

Bug: 140692129
Test: poc in bug
Change-Id: Ib2b7c006069b0226b5f2d741f9da7b681be26f82
2019-09-19 08:43:56 -07:00
Harish Mahendrakar
d23ca4b695 Decoder: Add support for returning reorder_depth and display index am: c7bf85f8ae
am: c9634afbf8

Change-Id: Ia627d30993c35d38b2e6c2f5b2b3c798f8885080
2019-09-12 11:20:30 -07:00
Harish Mahendrakar
c9634afbf8 Decoder: Add support for returning reorder_depth and display index
am: c7bf85f8ae

Change-Id: Idc4cf03240921d539946863e0395ed7e6cf27a59
2019-09-12 11:11:27 -07:00
Harish Mahendrakar
c7bf85f8ae Decoder: Add support for returning reorder_depth and display index
Bug: 138627015
Test: Verify reorder depth for few clips

Change-Id: Idea3ae794e1a54e630e6ee1ca8a4594978a3c8a2
2019-09-11 00:25:25 -07:00
Dan Willemsen
871711a4ce Stop using __DATE__/__TIME__ on all builds am: 4517537400 am: e0b810f1ac am: fa79eaab37 am: 2fc2323a51
am: 7d0bd44a9f

Change-Id: I23df03a0e5669eb6ef60dcd8708603179df369ed
2019-08-28 20:08:11 -07:00
Dan Willemsen
e0b810f1ac Stop using __DATE__/__TIME__ on all builds
am: 4517537400

Change-Id: I18b87b747af44aea683d4a1b8528cb770fb358fd
2019-08-28 19:32:06 -07:00
Dan Willemsen
4517537400 Stop using __DATE__/__TIME__ on all builds
We're beginning to use remote caches with Android builds, so I'm turning
on -Werror=date-time so that host builds are also reproducible.

Test: treehugger
Test: mmma external/libhevc
Change-Id: I7fa1099d68cced587af46ad4d76cab5af4366e1e
2019-08-27 19:45:01 -07:00
Harish Mahendrakar
406fb2aa0e common: Fix unintialized reads in intra pred sse functions
Bug: 137565646
Bug: 137228292
Test: poc in bug
Change-Id: I2830a30230cf566b17dca77a68136c9c4bd82215
2019-08-05 12:01:35 -07:00
Harish Mahendrakar
cf80d4f83c decoder: Fix integer overflow while parsing slice_qp_delta
Test: poc in bug
Bug: 136568826
Change-Id: Id1371249e80cb5858b1f93b5b25c8e4a43dbde04
2019-07-17 14:14:25 -07:00
Harish Mahendrakar
9fcd94f316 decoder: Fix valid SPS check in parsing SEI am: 61646846b3 am: 7f5da9039c am: e4237f852d
am: 824c19e4ca

Change-Id: I7b0970d485940b1c4c8eeea8f9cd316a84d1ac89
2019-06-20 21:20:00 -07:00