- Bazelisk:
iamf-tools
uses the Bazel build system, via bazelisk. See Bazelisk installation instructions. For further information on Bazel, see Getting started. - CMake: required to build some dependencies. See CMake's Download page to install.
- Clang 13+ or GCC 10+ for Linux-like systems or MSVC for Windows.
Windows requires some additional prerequisites:
-
MSYS32: See msys2.org for installation instructions.
-
MSCV: Follow Bazel's Build on Windows for installation instructions.
-
Address long path issues by adding the following to
iamf-tools/.bazelrc
or another custom .bazelrc file:startup --output_user_root=C:/tmp
Building the encoder binary:
bazelisk build -c opt //iamf/cli:encoder_main
Running built-in tests:
bazelisk test -c opt //iamf/...
iamf/cli/testdata covers a wide variety of IAMF
features. These samples can be used as encoder input. After encoding the
resultant .iamf
files can be used to assist in testing or debugging an
IAMF-compliant decoder.
See the separate README.md for further documentation.
<root>
- Project-level files like the license, README (this file), and BUILD files.iamf/
common/
- Common utility files.tests/
- Unit tests for files undercommon/
.
cli/
- Files related to the command line interface (CLI) to generate and write an IA Sequence.adm_to_user_metadata/
- Components to convert ADM files to protocol buffers which can be used for input to the encoder.codec/
- Files that encode or decode substreams with codec-specific libraries.tests/
- Unit tests for files undercodec/
.
obu_to_proto/
- Components to convert classes underiamf/obu
to protocol buffers.proto/
- Protocol buffers defining the data scheme for the input files underiamf/cli/testdata/
or user-created ones.proto_to_obu/
- Components to convert protocol buffers to classes underiamf/obu
.testdata/
- Sample input files to the encoder. See also Test Suite.tests/
- Unit tests for files underiamf/cli/
.user_metadata_builder/
- Files to help build aUserMetadata
.
obu/
- Files relating to IAMF Open Bitstream Units (OBU)s.decoder_config/
- Files relating codec-specific decoder configs.tests/
- Unit tests for files underdecoder_config/
.
tests/
- Unit tests for files underobu/
.
external/
- Custom*.BUILD
files for external dependencies.docs/
- Documentation.
If you have improvements or fixes, we would love to have your contributions. See CONTRIBUTING.md for details.