Commit graph

199 commits

Author SHA1 Message Date
Harish Mahendrakar
816221d81e libhevcdec: Reset PPS scratch buffer and extension flags before parsing
When parsing PPS in ihevcd_parse_pps(), the scratch buffer
ps_codec->s_parse.ps_pps_base + MAX_PPS_CNT - 1 was not reset to zero,
unlike ihevcd_parse_sps(). In streams with concatenated sequences where
an earlier sequence set pps_extension_present_flag and range extension
flags, subsequent sequences without PPS extensions would retain the stale
flags. This caused the parser to attempt reading non-existent range
extension syntax, leading to bitstream parsing failure.

- In ihevcd_parse_pps(), reset the scratch PPS structure to zero upon
  entry while preserving pi2_scaling_mat and ps_tile pointers.
- In both ihevcd_parse_pps() and ihevcd_parse_sps(), explicitly zero all
  extension flags when pps_extension_present_flag / sps_extension_present_flag
  is 0.

Test: ./hevc_dec_tests
TAG=agy
CONV=476d1054-10ff-4f19-88d5-a1c8dae7b57f

(cherry picked from commit 4bf5819c62)
2026-09-17 12:25:17 -07:00
Harish Mahendrakar
1713ca27ea decoder: Fix race condition and invalid CTB coordinates in slice headers
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
In ihevcd_copy_slice_hdr(), copying the previous slice header for dependent
slices copied i2_ctb_x and i2_ctb_y. If parsing was aborted or delayed,
the incomplete slice header retained the previous slice's coordinates,
causing concurrent worker threads in ihevcd_slice_hdr_update() to prematurely
switch to the invalid slice header. Reset i2_ctb_x and i2_ctb_y to -1
after copying.

In ihevcd_parse_slice_header(), initialize i2_ctb_x and i2_ctb_y to -1
immediately following memset so that slices rejected prior to coordinate
parsing do not retain valid-looking (0, 0) coordinates.

In ihevcd_parse_pic_init(), only skip reinitializing slice header 1 if
the first slice was missing in the current picture.

Test: ./hevc_dec_tests
Test: ./hevc_dec_fuzzer /work/misc/oss-fuzz/build/out/libhevc/crash-b74b07ae377d7450614e4534c86155d1d2999e13
TAG=agy
CONV=cfdfe257-7362-41c9-b5be-18261f1c6a3d
2026-09-16 10:56:47 +05:30
StevenShen3641
b21f809576 Fix out-of-bounds read when an SEI payload exceeds the NAL
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
ihevcd_parse_sei() truncated the declared SEI payload size to the bytes
remaining with MIN() instead of rejecting it. The payload parsers do not
consult that size, so ihevcd_parse_mastering_disp_params_sei() read its
full 24-byte structure out of a one-byte payload and ran past the end of
the bitstream buffer.
2026-09-03 22:44:32 -07:00
Harish Mahendrakar
d42200d2f2 decoder: Fix OOB read in ihevcd_parse_sei_payload when no SPS is valid
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
When parsing SEI payloads before any valid SPS has been decoded,
ihevcd_parse_sei_payload scanned ps_codec->ps_sps_base using a loop
that could step past the array bounds and dereference an invalid pointer.

Initialize ps_sps to NULL, check each entry's validity within bounds,
and return safely if no valid SPS is present.
2026-09-02 12:58:11 +05:30
Rakesh Kumar
e3ce7e69cb hevcdec: Remove rext generic function pointer override for 422/444
Some checks failed
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, 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, 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
With SIMD optimizations updated and enabled for 422 and 444 chroma formats,
the fallback override in ihevcd_init_function_ptr_rext_generic is no longer
necessary.

Test: ./build
2026-08-17 16:29:15 +00:00
Vivek R Jadhav
6f423a375a libhevcdec: Enable architecture-specific SIMD optimizations for 422 and 444
Previously, when 422 or 444 chroma formats were encountered, all
function pointers were overridden to generic C implementations due to
lack of support in optimized assemblies/intrinsics for certain
components.

This change introduces `ihevcd_init_function_ptr_rext` which:
- First initializes all function pointers with architecture-optimized
versions.
- Explicitly overrides only the components not yet optimized for 422/444 formats (intra prediction, SAO, deblocking and chroma padding) to point
back to their C implementations.

This allows other fully-compatible modules (e.g: inter prediction modes, transform/reconstruction, format conversion) to benefit from SIMD
optimizations on 422/444 formats without degrading YUV 420 decoding.

Test: ./hevcdec

Change-Id: I013e44e024258f2f84690fdc0109200129042145
2026-08-03 13:29:07 +00:00
Harish Mahendrakar
86c57003fe Add required typecasts to fix warnings 2026-06-20 16:59:17 -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
Harish Mahendrakar
0d2132c3ac Revert "Revert "libhevcdec: allow YUV422 format for decoding""
This reverts commit 97c1736f2d.
2026-06-11 22:48:24 -07:00
Ram Mohan M
57d79be23a updates to odd dimensions support - 2
- reduce unused memory allocations
- revert unrequired alignments done to widths and height in format
  conversion leaf functions
- pass correct strides and base address to leaf functions

fixes oss-fuzz-520748344

Change-Id: I8b783d1dae8c53b68a6d3a32dbc3ffb16376851e
2026-06-07 16:06:11 -07:00
Harish Mahendrakar
97c1736f2d Revert "libhevcdec: allow YUV422 format for decoding"
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
This reverts commit a4a80bc48e.
2026-05-27 07:59:18 -07:00
Vivek R Jadhav
a4a80bc48e libhevcdec: allow YUV422 format for decoding
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: I40411c04ab00d7e23843eb1d033c4543e4ec63e9
2026-05-21 08:23:13 -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
944771fb1b libhevcdec: disable simd optimizations during 422/444 decoding.
Test: ./hevcdec

Change-Id: I40411c04ab00d7e23843eb1d033c4943e4ec86e5
2026-05-07 07:00:35 -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
38e622bf6a hevcdec: update lib for chroma format idc 422
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
- updated parser for 422 specific syntax elements
- updated iqitrecon module to handle 422 subtu's. Verified functionality
  for intra only slices
- add support 422 i/o
- restrict combinations of output chroma format and internal chroma
  format allowed. That is, for a given chroma format idc not all output
  color formats are supported. The output format can now be either same
  as internal color format or 420p.

Test: ./hevcdec
Change-Id: I9dbf5c141aceb8ffcbe063aa35856eeed11e3d4f
2026-03-04 15:39:55 -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
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
Ram Mohan M
e563dd60af hevcdec: add support for transform_skip_context_enabled_flag
Change-Id: I6655bb256d5de456a210b54d8b38a06c5ddeaee1
2026-02-23 10:59:08 -08:00
Ram Mohan M
934d05f42b hevcdec: add support for log2 max transform skip size
Change-Id: If72ce05af2c67dc1fbd81766cebcadfcb132983d
2026-02-23 10:59:08 -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
Ram Mohan M
4e7799d665 hevcdec: fix incorrect sampling factor used for 422
for 422 chroma format, the horizontal and vertical subsampling factors
chosen are incorrect. This is fixed.

Test: Build

Change-Id: Ie82c029da6e86225f202a366c41af447b7d76ab2
2026-02-20 10:28:18 -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
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
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
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
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
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
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
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
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
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
Harish Mahendrakar
61646846b3 decoder: Fix valid SPS check in parsing SEI
When parsing SEI, ensure there is at least one valid SPS.

Test: poc in bug
Bug: 134420911

Change-Id: If3aa142b7fac324f8416e647572dfb002f56e06d
2019-06-07 16:23:17 -07:00
Android Build Merger (Role)
8fb024bad3 [automerger] Add few more checks for invalid parameters in sps am: 2f30da4ca2 am: 59c1e4d23e am: 7dbf2eeb7f am: 4fd075fd4d am: e10f3d3c6d
Change-Id: I44b6ea6f4a0af681be55c893cb9241ef5e90ec4c
2019-05-07 20:47:48 +00:00
Android Build Merger (Role)
59c1e4d23e [automerger] Add few more checks for invalid parameters in sps am: 2f30da4ca2
Change-Id: I78d8b0b2a9e804f3af8fd090876fbd2750d1edf9
2019-05-07 20:47:43 +00:00
Harish Mahendrakar
2f30da4ca2 Add few more checks for invalid parameters in sps
Following elements didn't have a bound check in SPS as spec doesn't list
the bounds on these explicitly.

log2_min_coding_block_size_minus3, log2_diff_max_min_coding_block_size,
log2_min_transform_block_size_minus2 and log2_diff_max_min_transform_block_size

Added appopriate error checks on these fields

Bug: 129366952
Bug: 130023983
Test: vendor
Merged-In: I59d95f43c2ef98300132d664095e88df8e87a164
Change-Id: I59d95f43c2ef98300132d664095e88df8e87a164
2019-05-07 20:47:42 +00:00
Harish Mahendrakar
3d5a29afff Merge changes from topic "am-5b50c796-9c7d-4769-bc6c-f71bdac7c742" into oc-dev am: dce2f1a1a1 am: 7dd0807cdf am: cfebb9ec7d
am: 6b80fa9f71

Change-Id: I9a3853b7ca08ab2f10e2479721921dff59809449
2019-05-06 19:11:23 -07:00
Harish Mahendrakar
c34a29b7b5 [automerger] Add missing return check for short_term_ref_pic_set() am: 299cceb9e4 am: 2e8ae23656 am: 7ecb4083b9 am: 4fe71a567e am: 1561dc0fa9 am: 2b9fa38bb8 am: 6e96227190 am: cd5ac287ce
am: 0cdffda83f

Change-Id: I9086ab27ca823acc255239123cdeffe5671e3e18
2019-05-06 17:27:22 -07:00
TreeHugger Robot
dce2f1a1a1 Merge changes from topic "am-5b50c796-9c7d-4769-bc6c-f71bdac7c742" into oc-dev
* changes:
  [automerger] Add bounds check for tile dimensions am: 05f83e9458 am: 8ee7982e46 am: 7c6da2165b am: c11699b0f4 am: c0d441f4a7
  [automerger] Add bounds check for tile dimensions am: 05f83e9458 am: 8ee7982e46 am: 7c6da2165b am: c11699b0f4
  [automerger] Add bounds check for tile dimensions am: 05f83e9458 am: 8ee7982e46 am: 7c6da2165b
  [automerger] Add bounds check for tile dimensions am: 05f83e9458 am: 8ee7982e46
  [automerger] Add bounds check for tile dimensions am: 05f83e9458
  Add bounds check for tile dimensions
2019-05-07 00:16:35 +00:00
TreeHugger Robot
d683d78752 Merge changes from topic "am-5b50c796-9c7d-4769-bc6c-f71bdac7c742" into nyc-dr1-dev
* changes:
  [automerger] Add bounds check for tile dimensions am: 05f83e9458
  Add bounds check for tile dimensions
2019-05-07 00:16:35 +00:00
Harish Mahendrakar
8925a5b7fb Add few more checks for invalid parameters in sps
Following elements didn't have a bound check in SPS as spec doesn't list
the bounds on these explicitly.

log2_min_coding_block_size_minus3, log2_diff_max_min_coding_block_size,
log2_min_transform_block_size_minus2 and log2_diff_max_min_transform_block_size

Added appopriate error checks on these fields

Bug: 129366952
Bug: 130023983
Test: vendor
Change-Id: I59d95f43c2ef98300132d664095e88df8e87a164
2019-04-30 14:11:10 -07:00
Android Build Merger (Role)
2b9fa38bb8 [automerger] Add missing return check for short_term_ref_pic_set() am: 299cceb9e4 am: 2e8ae23656 am: 7ecb4083b9 am: 4fe71a567e am: 1561dc0fa9
Change-Id: I378a6e4f6f70931f36fd74acb02846096679e367
2019-04-23 22:29:03 +00:00
Android Build Merger (Role)
2e8ae23656 [automerger] Add missing return check for short_term_ref_pic_set() am: 299cceb9e4
Change-Id: I9c4d960ac4e58f57b637908524918558ae539ca4
2019-04-23 22:28:54 +00:00
Harish Mahendrakar
299cceb9e4 Add missing return check for short_term_ref_pic_set()
Bug: 129401104
Bug: 130025324
Test: vendor
Change-Id: I685dd29ec13cca0ced5de8eb3aea1d0da5952a62
2019-04-23 15:28:03 -07:00
Android Build Merger (Role)
adb9a9521f [automerger] Add bounds check for tile dimensions am: 05f83e9458 am: 8ee7982e46 am: 7c6da2165b am: c11699b0f4 am: c0d441f4a7
Change-Id: Id59eb1cae3db497e3b7d04abd207ff69819a2331
2019-04-23 22:07:43 +00:00