Commit graph

140 commits

Author SHA1 Message Date
Vivek R Jadhav
2542723ccc libhevcdec: Fix chroma deblocking QP derivation for YUV422 HBD
Some checks are pending
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
Include CHROMA_FMT_IDC_YUV422 in the check to bypass chroma QP mapping in HBD deblocking (both vertical and horizontal filters).
2026-08-13 01:17:59 +00:00
Vivek R Jadhav
51c80727c3 libhevcdec: Add initial support for YUV422 10 bit
Test: ./hevcdec
2026-08-13 01:17:59 +00:00
Harish Mahendrakar
0cc032d9ff Clean up HBD support before split
Some checks failed
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
2026-08-07 17:25:44 +00:00
Harish Mahendrakar
ac413106a1 [hbd] Fix OOB reads in HBD sao functions 2026-08-07 03:21:32 +00:00
Harish Mahendrakar
18fc8f6b52 Added support for 420 10-bit decoding.
This is the initial version and doesn't enable SIMD functions yet.
Has not been tested extensively yet.
This is not ready to be merged into main branch yet.
2026-08-07 03:21:32 +00:00
Sushant
9e7d8a24a3 libhevcdec: update assembly support for implicit RDPCM
Some checks failed
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
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (push) Has been cancelled
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdc0109200109042026
2026-08-05 14:37:42 +00:00
Vivek R Jadhav
d61070bafe libhevc: Update intrinsic for implicit RDPCM
Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdc0109200109042035
2026-08-05 14:37:42 +00:00
Sushant
b9239efd75 hevcdec: Add assemblies and intrinsics for intra prediction
TODO: SIMD acceleration
- chroma intra prediction modules for trans size 32
- chroma itrans recon for trans size 32
- all methods of ihevc_itrans_res.c
- ihevc_chroma_recon_nxn_ccp
- for neon, chroma padding needs fixing. The function assumes pad width
  80 always which does not hold for 444 chroma format idc. for 444, pad
  width is 160.
- ihevc_inter_pred_luma_horz_w16out_a9q causing bus error. This is seen
  when building with cmake on local setup and for arch 32. On Aosp tree
  this issue is not seen.
- format conversion routines added for 422 and 444
- implicit rdpcm allows disabling of filters for intra pred modes 10 and
  26. The C functions are updated to support this. simd functions
  requires updating.
TODO: au1_ref_sub_out array is on stack and this increased irrespective
of chroma format idc. Should this allocation make use of color format to
reduce stack size
TODO: check compliance for different sps range extension fields
TODO: enable deblocking support
TODO: enable sao support
TODO: enable slice and tile support
TODO: enable other 444 specific tool sets
TODO: add support for 422 for inter slices

Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdc0109200109052036
2026-08-05 14:37:42 +00:00
Harish Mahendrakar
dac3dc5e82 [common]Add new files for HBD 2026-08-05 13:27:29 +00:00
Vivek Jadhav
ce30a4b0e3 libhevcdec: Reapply deblocking assembly changes for YUV444 and YUV422
Some checks failed
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
Test: ./hevcdec

TODO: Add assemblies and intrinsics for deblocking 422

Change-Id: I40411c04ab00d7e23843eb1d033c4944e3ec66e9
2026-08-04 06:04:10 +00:00
Sushant
088f2c5319 hevcdec: assembly & intrincs for SAO
Some checks are pending
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
Test: ./hevcdec

Change-Id: I013e45e024258f2f84690fdcc01b4cd52f0fac52
2026-08-03 13:35:09 +00:00
Vivek R Jadhav
938dbd274d libhevcdec: Fix chroma padding in ARM and ARM64 NEON assembly to support 160-byte width
For the 444 chroma format, the chroma pad width is 160 bytes. However, the ARM and ARM64 NEON chroma padding assembly functions previously assumed a hardcoded pad size of 80 bytes (writing exactly 5 stores of 16 bytes), leaving the rest of the padding region uninitialized.

Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdc0109200119042135
2026-08-03 13:30:17 +00:00
Harish Mahendrakar
9f7b41b36c Update tests to run with atest
Some checks failed
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
Added Android.bp for the tests and updated them to ensure they run with atest.
2026-07-31 17:05:23 +00:00
Harish Mahendrakar
b8c9100658 Remove incorrect prefix from ihevcd_itrans_res_dc
Some checks are pending
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
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (push) Waiting to run
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Waiting to run
ihevcd_itrans_res_dc is defined in common folder but has a wrong prefix of ihevcd_.
This is now fixed to ihevc_.
2026-07-29 17:08:35 -07:00
Harish Mahendrakar
2358e96df3 Add few function selectors in common for modules defined in common.
This is needed to ensure that the tests in tests/common do not depend on
headers from decoder folder.

Decoder still has its own function selectors and those will be updated in subsequent
commits to use these common selectors to avoid code duplication.
2026-07-29 16:29:43 -07:00
Harish Mahendrakar
53f3deacd0 Remove redundant ihevc_func_selector.h 2026-07-29 15:59:08 -07:00
Harish Mahendrakar
8dffbdd2d0 Move IVD_ARCH_T and IVD_SOC_T to iv.h and rename as IV_ARCH_T and IV_SOC_T
This helps in decoupling unit tests in common from depending on ivd.h
2026-07-29 15:37:52 -07:00
Sushant
281bad69de hevcdec: undo changes made for chroma intra pred lut
changes were made to chroma intra pred look up tables in the
context frext profile support. The corresponding assembly
changes were not yet merged but the tables are. The table
changes are now reverted keeping lut and assemblies in sync.

This reverts commit f990e295bd.

Change-Id: I9a7d929621b423b3bdd8e5dcbd0eeacc036675ed
2026-06-19 22:37:43 -07:00
Sushant
a38474db72 hevcdec: revert armv7 and armv8 deblocking support for frext
Test: ./hevcdec

Change-Id: I7a469f57aa57b8f692c690b3ac46aca68c2e481d
2026-06-19 14:24:33 -07:00
Sushant
646ee99888 libhevc: Direct memcpy and memset calls to enable _FORTIFY_SOURCE
Some checks failed
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
Bypass wrappers functions for memcpy and memset, calling standard
C library functions directly. This allows _FORTIFY_SOURCE to
perform compile-time safety checks.

Bug: 514722372
Test: ./hevcdec

Change-Id: Id9faf0919ecedfd1833d40a7fbf6ddac454628b4
2026-06-18 06:44:56 -07:00
Vivek R Jadhav
e7d529d271 hevcdec: add support for chroma qp offset list
Test: ./hevcdec

Change-Id: I40411c04ab00d7e23843eb1d033c4943e3ec86e8
2026-06-18 06:42:01 -07:00
Sushant
343fd870f9 hevcdec: Update cabac context tables of cbcr_cbf trafo depth 4
When decoding YUV444 streams with QuadtreeTUMaxDepthIntra set to 5,
the chroma transform split depth can reach 4, since chroma TUs split
down to 4x4, matching luma. During parsing of cbf_cb and cbf_cr, the
context index is derived as IHEVC_CAB_CBCR_IDX + trafo_depth.

Since YUV420 limits max chroma trafo_depth to 3 (min chroma TU size 8x8),
only 4 contexts were allocated for IHEVC_CAB_CBCR_IDX (offsets 0-3).
When trafo_depth reaches 4, this caused an OOB access into the
neighboring IHEVC_CAB_TFM_SKIP0 context, corrupting CABAC state.

This change resolves the OOB access by:
1. Increasing the size of IHEVC_CAB_CBCR_IDX from 4 to 5 in the enum,
   so that IHEVC_CAB_TFM_SKIP0 starts at IHEVC_CAB_CBCR_IDX + 5.
2. Inserting the 5th init context value (initValue = 1) at index 40
   of each QP row in gau1_ihevc_cab_ctxts, across all 156 QP tables,
   as per the HEVC spec (ITU-T H.265 section 9.3.2.2).

Test: ./hevcdec -c test.cfg

Change-Id: Ib06dcd728c76e414710bb4865e100d979a34a308
2026-06-11 09:10:21 -07:00
Vivek R Jadhav
f990e295bd hevcdec: add support for frext profile
Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdc0109200109012026
2026-05-13 07:23:03 -07:00
Vivek R Jadhav
70ee4f3d29 libhevcdec: add support for deblock filter for yuv 444 format
Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdcc01b4cd56f0fbd19
2026-05-13 07:22:18 -07:00
Vivek R Jadhav
b6ad1290f0 hevcdec: update sao modules for chroma format idc 444
Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdcc01b4cd52f0fbd16
2026-05-08 08:16:51 -07:00
Rakesh Kumar
5da3d44aef libhevc: added BTI and PAC support in libhevc
Some checks failed
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (push) Has been cancelled
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
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: readelf -nw libhevcdec.a
Test: readelf -nW libhevcenc.a
Test: atest MctsMediaV2TestCases
      atest MctsMediaDecoderTestCases
      atest MctsMediaEncoderTestCases
      atest MctsMediaCodecTestCases
Test: hevc_dec_fuzzer
      hevc_enc_fuzzer
Bug: 485868924
Change-Id: I7eb3c915662654d649ba4aa5793f71afff8c47e7
2026-04-02 08:34:07 -07:00
Ram Mohan M
a960c019e0 hevcdec: add support for persistent rice adaptation flag
Some checks failed
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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: ./hevcdec
Change-Id: I835753e513b757330a4905ac29340422fc8d1590
2026-03-16 10:03:26 -07:00
Ram Mohan M
e0aec79c0d hevcdec: add support for explicit rdpcm
Some checks are pending
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
Test: ./hevcdec

Change-Id: I89365bb544c3a9dc6ffc25f86f3cbf568dd2ecf4
2026-03-06 14:33:49 -08:00
Ram Mohan M
e8624b5c8f hevcdec: add support for implicit rdpcm
Test: ./hevcdec

Change-Id: I703bdc92aaef2fed615fe1650249e6248768ddce
2026-03-06 14:33:49 -08:00
Ram Mohan M
87962d6818 hevcdec: add support for cross component prediction
Test: ./hevcdec

Change-Id: I84b76bdd7a8f0611be42fbe08bb0dca46bc40df7
2026-03-04 12:32:03 -08:00
Ram Mohan M
90f29517ee hevcdec: add support for transform_skip_rotation_enabled_flag
Test: ./hevcdec

Change-Id: Icc083c3bf08b23a6b91c230aace3aae148cb3ec9
2026-03-04 12:32:03 -08:00
Ram Mohan M
ad0a6d8688 hevcdec: add itrans residue functions
These functions are similar to ihevc_itrans_recon_* with the exception
that instead of computing recon directly they store residue to the
destination buffer. This helps with additional transformation of the
residue coefficients (rotation, rdpcm, ccp) before adding to the
prediction data to generate the final recon.

Test: Build
Change-Id: I9f84e66f5e9595162335cb152a6329a0f8d23337
2026-03-04 12:32:03 -08:00
Harish Mahendrakar
aea272ecb6 expose inter pred filter coefficients
Some checks failed
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
In subsequent commits, the unit tests will use these filter
coefficients instead of defining a copy.
2026-02-28 22:40:12 +05:30
Sushant
ab4dd06386 hevcdec: add support for scaling lists
Some checks are pending
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (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
Test: ./hevcdec
2026-02-27 08:33:45 -08:00
Rakesh Kumar
29611400fa hevcdec: add support for internal color format 444
Change-Id: I013e44e024258f2f84690fdcc01b4cd52f0fbd18
2026-02-23 10:59:08 -08:00
Ram Mohan M
546576fa3d hevcdec: fix incorrect error checks added in sps/pps parsing
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
range extension profile toolsets were guarded based on chroma format
information instead of profile. This is fixed.

Test: ./hevcdec -c test.cfg

Change-Id: I484b07f367d46a60112d3ef7c4a431bf72047e6e
2026-02-20 11:12:39 -08:00
Rakesh Kumar
50d6c2a175 hevcdec: update context tables for frext profile - 2
update context tables for parsing cross component prediction syntax elements.

Test: ./hevcdec

Change-Id: I759229b2796935c072c91630bd02383a587a9e4d
2026-02-17 09:26:00 -08:00
Rakesh Kumar
eb20a6ddbe hevcdec: update context tables for frext profile - 1
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
update context tables for parsing sig coeff flag when
transform_skip_context_enabled_flag is true.

Test: ./hevcdec
Change-Id: I7cae66ad84c7a1b6a8e1b43a3e2b917fc48175c9
2026-02-13 07:43:12 -08:00
Rakesh Kumar
c4245ca34c hevcdec: add intra pred chroma reference samples filtering functions
Test: ./hevcdec

Change-Id: I3972d5ccb09a087a173dfe264ff885a5e55d3118
2026-02-13 07:43:12 -08:00
Rakesh Kumar
464af74ef0 hevcdec: add 32x32 chroma inverse trans recon functions
Test: ./hevcdec
Change-Id: I6d02a519738727257392d7d13b187c998e8e82d5
2026-02-13 07:43:12 -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
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
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
b2b115e957 libhevc: move encoder SEI related code under a macro
Bug: 338446610
Test: ./hevcenc

Change-Id: I76fa9371aac6ef5fca3723425e0010cf1f13db1f
2024-05-09 07:40:11 -07:00
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
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
Rakesh Kumar
4fb6546448 Remove RESIDUE() macro usage
Replacing RESIDUE() macro usage in ihevc_resi_trans_8x8_neon()
with a for loop.

Bug: 183432854

Test: atest CtsMediaTestCases:VideoEncoderTest
Test: atest CtsMediaV2TestCases:CodecEncoderTest

Change-Id: I847b49150efe12ede38211f411f9b4842f2f3551
2021-10-21 21:42:59 +05:30
Ram Mohan M
fe26571326 libhevcenc: Update 32 bit chroma neon modules to avoid reading an extra byte
When processing V plane, an extra bytes is being read by forward trans
functions. Modules are now updated to avoid that extra byte read

Bug: 177433559
Bug: 183012467

Test: poc in bug
Test: atest CtsMediaTestCases:VideoEncoderTest
Test: atest CtsMediaV2TestCases:CodecEncoderTest
Test: atest VtsHalMediaC2V1_0TargetVideoEncTest
Change-Id: I555458d45719c11081e265824f83918c0126f599
2021-06-11 22:07:06 +00:00