How to Contribute Code and Report Bugs in libaom?
This article provides a straightforward guide for developers looking
to contribute to the libaom repository, the reference
software codec library for AV1. It covers the essential steps for
setting up your environment, reporting bugs effectively, and submitting
code changes using the project’s official development workflow.
Reporting Bugs in libaom
If you encounter issues, performance regressions, or security
vulnerabilities while using libaom, you should report them
directly to the project’s issue tracker.
- Platform: The project utilizes the Alliance for Open Media (AOMedia) issue tracking system, currently hosted via Google’s Issue Tracker (issuetracker.google.com) under the AOMedia organization.
- What to Include: To ensure your bug gets resolved
quickly, provide a clear description of the issue, the exact
libaomversion or git commit hash you are using, your operating system/compiler details, and a minimal reproducible example (such as the specificaomencoraomdeccommand line arguments along with a sample input file if possible).
Setting Up the Development Workflow
The libaom project does not accept standard GitHub pull
requests. Instead, it relies on Gerrit, a web-based
code review tool, alongside Git.
1. Clone the Repository
The official source code is hosted on the AOMedia Git server. Clone the repository using the following command:
git clone https://aomedia.googlesource.com/aom
2. Register for Gerrit
To submit code, you must log into the AOMedia Gerrit review system
(aomedia-review.googlesource.com) using a Google account
and agree to the AOMedia Contributor License Agreement (CLA).
3. Install the Commit-Msg Hook
Gerrit requires a unique Change-Id in the footer of
every commit message. You can automate this by installing the standard
Gerrit commit-msg hook into your local repository:
gitdir=$(git rev-parse --git-dir); curl -Lo "$gitdir/hooks/commit-msg" https://gerrit-review.googlesource.com/tools/hooks/commit-msg; chmod +x "$gitdir/hooks/commit-msg"
Submitting Code Changes
Once your code modifications are complete and locally tested, you can push your changes to Gerrit for peer review.
1. Commit Your Changes
Write a concise commit message detailing your changes. The hook will
automatically append the required Change-Id.
2. Push to Gerrit
Push your local branch to the Gerrit code review server using the
refs/for/main (or appropriate branch) target:
git push origin HEAD:refs/for/main