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.

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

3. Code Review and CI