libhevc-mirror/decoder
Harish Mahendrakar 1713ca27ea
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
decoder: Fix race condition and invalid CTB coordinates in slice headers
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
..
arm libhevcdec: Reapply deblocking assembly changes for YUV444 and YUV422 2026-08-04 06:04:10 +00:00
arm64 libhevcdec: Reapply deblocking assembly changes for YUV444 and YUV422 2026-08-04 06:04:10 +00:00
riscv64 Include ihevcd_defs.h and ihevcd_structs.h in risc function selector 2026-06-22 20:01:44 -07:00
x86 libhevcdec: Reapply deblocking assembly changes for YUV444 and YUV422 2026-08-04 06:04:10 +00:00
ihevcd_api.c Remove incorrect prefix from ihevcd_itrans_res_dc 2026-07-29 17:08:35 -07:00
ihevcd_bitstream.c use unsigned word type in ihevcd_bits_seek to avoid signed shift ub 2026-07-06 21:28:17 -07:00
ihevcd_bitstream.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_boundary_strength.c Few bug fixes in loop filter 2015-07-31 01:59:55 +00:00
ihevcd_boundary_strength.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_cabac.c hevcdec: add support for persistent rice adaptation flag 2026-03-16 10:03:26 -07:00
ihevcd_cabac.h hevcdec: add support for persistent rice adaptation flag 2026-03-16 10:03:26 -07:00
ihevcd_common_tables.c hevcdec: update lib for chroma format idc 422 2026-03-04 15:39:55 -08:00
ihevcd_common_tables.h hevcdec: update lib for chroma format idc 422 2026-03-04 15:39:55 -08:00
ihevcd_cxa.h libhevcdec: Add support for monochrome 2025-11-11 07:11:03 -08:00
ihevcd_deblk.c libhevcdec: update chroma deblocking masks and BS shifts for YUV422/YUV444 2026-06-03 09:40:02 -07:00
ihevcd_deblk.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_debug.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_decode.c updates to odd dimensions support - 2 2026-06-07 16:06:11 -07:00
ihevcd_decode.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_defs.h refactor: clean up SAO and ILF padding code 2026-05-24 10:11:19 -07:00
ihevcd_error.h hevcdec: fix incorrect error checks added in sps/pps parsing 2026-02-20 11:12:39 -08:00
ihevcd_fmt_conv.c hevcdec: update chroma subsample filter from neighbor to area 2026-07-02 10:09:50 -07:00
ihevcd_fmt_conv.h libhevcdec: Remove support for YUV422 ile, RGB565 and RGBA8888 output formats 2026-02-14 12:54:18 -08:00
ihevcd_func_types.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_function_selector.h hevcdec: Remove rext generic function pointer override for 422/444 2026-08-17 16:29:15 +00:00
ihevcd_function_selector_generic.c hevcdec: Remove rext generic function pointer override for 422/444 2026-08-17 16:29:15 +00:00
ihevcd_get_mv.c fix oob top-left pu-map read in ihevcd_get_mv_ctb 2026-07-14 07:25:34 -07:00
ihevcd_get_mv.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_ilf_padding.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_inter_pred.c libhevcdec: Add inter pred support for yuv422 format 2026-05-06 10:30:26 -07:00
ihevcd_inter_pred.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_intra_pred_mode_prediction.c libhevc: Direct memcpy and memset calls to enable _FORTIFY_SOURCE 2026-06-18 06:44:56 -07:00
ihevcd_intra_pred_mode_prediction.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_iquant_itrans_recon_ctb.c libhevcdec: Fix issues seen in 422 8 bit intra prediction 2026-08-28 04:50:23 +00:00
ihevcd_iquant_itrans_recon_ctb.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_itrans_recon_dc.c Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_itrans_recon_dc.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_ittiam_logo.h libhevcdec: Remove support for YUV422 ile, RGB565 and RGBA8888 output formats 2026-02-14 12:54:18 -08:00
ihevcd_job_queue.c Source files clean up 2014-07-12 15:09:24 -07:00
ihevcd_job_queue.h Source files clean up 2014-07-12 15:09:24 -07:00
ihevcd_mv_merge.c Reduced memory requirements 2015-10-09 11:44:26 -07:00
ihevcd_mv_merge.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_mv_pred.c Source files clean up 2014-07-12 15:09:24 -07:00
ihevcd_mv_pred.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_nal.c libhevc: move SEI related code under a macro 2024-05-07 10:07:49 -07:00
ihevcd_nal.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_parse_headers.c decoder: Fix race condition and invalid CTB coordinates in slice headers 2026-09-16 10:56:47 +05:30
ihevcd_parse_headers.h libhevc: move SEI related code under a macro 2024-05-07 10:07:49 -07:00
ihevcd_parse_residual.c hevcdec: fix statcoeff placement for persistent rice adaptation 2026-06-24 22:51:07 -07:00
ihevcd_parse_residual.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_parse_slice.c hevcdec: update chroma subsample filter from neighbor to area 2026-07-02 10:09:50 -07:00
ihevcd_parse_slice.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_parse_slice_header.c decoder: Fix race condition and invalid CTB coordinates in slice headers 2026-09-16 10:56:47 +05:30
ihevcd_parse_slice_header.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_process_slice.c refactor: clean up SAO and ILF padding code 2026-05-24 10:11:19 -07:00
ihevcd_process_slice.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_profile.h Source files clean up 2014-07-12 15:09:24 -07:00
ihevcd_ref_list.c Decoder: Fix integer-overflow sanitizer issues 2019-01-09 13:16:37 -08:00
ihevcd_ref_list.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_sao.c libhevcdec: Fix chroma SAO neighbor handling for CTB size 16 2026-08-28 04:50:37 +00:00
ihevcd_sao.h refactor: clean up SAO and ILF padding code 2026-05-24 10:11:19 -07:00
ihevcd_statistics.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_structs.h Move IVD_ARCH_T and IVD_SOC_T to iv.h and rename as IV_ARCH_T and IV_SOC_T 2026-07-29 15:37:52 -07:00
ihevcd_trace.h Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
ihevcd_utils.c decoder: Fix race condition and invalid CTB coordinates in slice headers 2026-09-16 10:56:47 +05:30
ihevcd_utils.h libhevcdec: disable simd optimizations during 422/444 decoding. 2026-05-07 07:00:35 -07:00
ihevcd_version.c Stop using __DATE__/__TIME__ on all builds 2019-08-27 19:45:01 -07:00
libhevcdec.cmake refactor: clean up SAO and ILF padding code 2026-05-24 10:11:19 -07:00