Skip to content

HEVC sample entry parsing, LHEVC support, and build-system modernisation#61

Merged
podborski merged 21 commits intomasterfrom
config_records
Feb 10, 2026
Merged

HEVC sample entry parsing, LHEVC support, and build-system modernisation#61
podborski merged 21 commits intomasterfrom
config_records

Conversation

@podborski
Copy link
Copy Markdown
Member

@podborski podborski commented Apr 17, 2025

This PR introduces comprehensive improvements to HEVC handling and modernises the build configuration.

Functional changes

  • Add full parsing and dumping of all hvcC syntax elements.
  • Introduce lhvC support, including parsing and NAL unit extraction.
  • Add ISOGetHEVCNALUs() API to extract all HEVC NAL units in Annex B format, with selectable extraction modes (hvcC, lhvC, or both).
  • Update examples to use unified NAL extraction instead of manual VPS/SPS/PPS handling.
  • Fix HEVC configuration parsing details (NAL unit counts, non-VCL unit count, field naming consistency).
  • Rename and generalise ISOGetRESVOriginalFormat to ISOGetOriginalFormat and extend support to encv/resv.

Build and infrastructure

  • Raise minimum required CMake version to 3.16.
  • Add ISOBMFF_BUILD_LIB_ONLY option to allow library-only builds without tools, tests, or submodules.
  • Add SET_CUSTOM_OUTPUT_DIRS option (default OFF) to align with modern CMake output directory practices.
  • Introduce LIBISOMEDIAFILE_STRICT_WARNINGS option (ON by default).
  • Update CI workflows and test paths to match new build layout.
  • Ensure Linux, macOS, and Windows builds remain functional.

Maintenance

  • Code cleanups, reordering, clang-format runs.
  • Fix headers, C99 conformance, and minor correctness issues.
  • Update documentation to reflect new options and behaviour.

@podborski podborski changed the title lhvC and and ISOGetHEVCNALUs API call to get all NALUs out of sample entry (including layered one) Adding API to handle HEVC Sample entries correctly Apr 17, 2025
@podborski podborski requested a review from cconcolato November 24, 2025 20:00
  - Add ISOBMFF_BUILD_LIB_ONLY option (default OFF for backward compatibility)
  - Skip submodule checks and tool builds when building library only
  - Enables fast integration without HM/DRC dependencies (~30s vs 5-10min)
BREAKING CHANGE: Build artifacts now go to build directory by default instead of source tree (lib/, bin/)

  - Better aligns with CMake best practices and modern workflows
  - Cleaner integration when used as a subproject via add_subdirectory()
  - Prevents source tree pollution with build artifacts
  - Use -DSET_CUSTOM_OUTPUT_DIRS=ON to restore previous behavior
@podborski podborski requested a review from jeanlf January 26, 2026 18:43
@podborski
Copy link
Copy Markdown
Member Author

Hi @jeanlf , Cyril recommended to check with you. Are you ok with the changes proposed in this PR?

@podborski podborski changed the title Adding API to handle HEVC Sample entries correctly HEVC sample entry parsing, LHEVC support, and build-system modernisation Jan 26, 2026
@podborski podborski merged commit 689ac09 into master Feb 10, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant