Commit graph

517 commits

Author SHA1 Message Date
Rakesh Kumar
464af74ef0 hevcdec: add 32x32 chroma inverse trans recon functions
Test: ./hevcdec
Change-Id: I6d02a519738727257392d7d13b187c998e8e82d5
2026-02-13 07:43:12 -08:00
Ram Mohan M
09bc53ec53 hevcdec: fix white spacing and other cosmetic changes
Some checks failed
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Has been cancelled
Test: Build
2026-02-11 12:14:51 -08:00
Rakesh Kumar
fa39f45858 hevcdec: update intra pred ref filtering function
Some checks are pending
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Waiting to run
Updated intra pred ref filtering function to pass intra smoothing flag
also.

Test: ./hevcdec

Change-Id: Ia1178f2ebf0867cbb55a9d0216c21427af79c824
2026-02-10 07:14:13 -08:00
Rakesh Kumar
789320b76c hevcdec: add support for parsing "extension present" fields of sps and pps
Added support for parsing "extension present" fileds for sps and pps
for yuv color format 444.

Test: ./hevcdec

Change-Id: I42bc18ede7d75350784c7fc2546045019cd8171d
2026-02-10 07:14:13 -08:00
Rakesh Kumar
c684b4fd98 hevcdec: add 444 specific yuv color space conversion functions
Added 444 specific yuv color conversion functions. This change
only include function definition, call to these functions are
not enabled.

Test: ./hevcdec

Change-Id: I26a727d5e24c22c31f8188b38b980bd545251187
2026-02-10 07:14:13 -08:00
Vivek Jadhav
fde75babbc hevcdec: Updated memory allocation for monochrome
Some checks are pending
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Waiting to run
Updated library to allocate memory only for luma in case of monochrome
profile.

Bug:
Test: ./hevcdec

Change-Id: I5649bbd94e10d2c19fa7548b2380db598c9ff2b6
2026-02-09 15:05:07 -08:00
Vivek Jadhav
e38e75d666 hevcdec: add support for parsing "extension present" fields of sps and pps for monochrome
Bug:
Test: ./hevcdec

Change-Id: I944c539000f26898d5985cd6806f2968d4865f61
2026-02-09 13:02:30 -08:00
Rakesh Kumar
25a7fafb00 libhevcdec: Fix monochrome ouput for 420sp
Some checks failed
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Has been cancelled
Monochrome decode with output chroma format 420sp was missing in format
conversion, so added support for it.

Bug: 382315082
Test: ./hevcdec
2026-01-28 07:26:51 -08:00
Vivek Jadhav
45340a66f0 libhevcdec: Add support for monochrome
Some checks failed
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Has been cancelled
Bug: 382315082
Test: ./hevcdec

Change-Id: I944c539000f26898d5985cd5809f2958d4865f71
2025-11-11 07:11:03 -08:00
Suyog Pawar
45c10b2003 libhevc: Enable support for MacOS
Test: ./hevcenc
Test: ./hevcdec

Change-Id: Iafd43c61d80ddc46807441bcda97bb72edd76850
2024-10-01 06:37:42 -07:00
srujan vandrangi
5fa218d639 libhevc: fix codec SEI related code while disabling SEI
Bug: 338446610
Test: ./hevcenc
Test: ./hevcdec
2024-06-06 22:27:43 -07:00
srujan vandrangi
a88affe6f1 libhevc: do not disable sei code in hevc decoder application
Bug: 338446610
Test: ./hevcdec
2024-06-06 21:24:32 -07:00
Srujan Vandrangi
dc225332d0 libhevc: move SEI related code under a macro
Bug: 338446610
Test: ./hevcdec
2024-05-07 10:07:49 -07:00
Haripriya Deshmukh
d0897deaf8 libhevc: Add dynamic color aspects support
Bug: 325468696
Test: atest android.mediav2.cts.DecoderDynamicColorAspectTest

Change-Id: I01dc043dfdae5646818c3cbea8ae0415183eb69d
2024-04-22 23:50:43 -07:00
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