How to Report Bugs and Contribute to SVT-AV1

This guide provides a straightforward, step-by-step overview of how to officially report bugs and contribute code patches to the upstream SVT-AV1 (libsvtav1) project. SVT-AV1 is an open-source AV1 encoder and decoder library managed by the Alliance for Open Media (AOMedia), and all development, bug tracking, and code contributions are hosted on their official GitLab repository.

How to Report a Bug

To report a bug in SVT-AV1, you must submit an issue through the official GitLab repository.

  1. Visit the Repository: Navigate to the official SVT-AV1 GitLab Repository.
  2. Search Existing Issues: Go to the Issues section and search for your problem to ensure it has not already been reported or resolved.
  3. Create a New Issue: If the bug is new, click the New issue button.
  4. Fill Out the Template: Provide as much detail as possible to help developers reproduce the issue:
    • SVT-AV1 Version: Specify the exact version or Git commit hash you are using.
    • Operating System: List your OS and CPU architecture (e.g., Ubuntu 22.04, x86_64).
    • Reproduction Steps: Provide the exact command line used to run the encoder.
    • Expected vs. Actual Behavior: Explain what should have happened versus what actually occurred (include error logs if applicable).

How to Contribute a Code Patch

SVT-AV1 welcomes community contributions. Code patches are submitted and reviewed using GitLab Merge Requests (MRs).

1. Sign the Contributor License Agreement (CLA)

Before your code can be accepted, you must sign the Alliance for Open Media (AOMedia) Contributor License Agreement. This is typically done electronically when you submit your first Merge Request, or by following the instructions in the repository’s CONTRIBUTING.md file.

2. Set Up Your Environment

  1. Create a GitLab account.

  2. Fork the official SVT-AV1 Repository to your personal GitLab account.

  3. Clone your forked repository to your local machine:

    git clone https://gitlab.com/your-username/SVT-AV1.git
    cd SVT-AV1

3. Implement Your Changes

  1. Create a new branch for your feature or bug fix:

    git checkout -b feature/my-contribution
  2. Write your code, ensuring you follow the project’s coding style guidelines (detailed in the repository documentation).

  3. Test your changes thoroughly to ensure no regressions are introduced.

4. Commit and Push

  1. Commit your changes with a clear, descriptive commit message:

    git commit -m "Fix memory leak in encoder initialization"
  2. Push the branch to your GitLab fork:

    git push origin feature/my-contribution

5. Open a Merge Request

  1. Navigate to your fork on GitLab.
  2. Click the Create merge request button next to your recently pushed branch.
  3. Set the target branch to the upstream master branch of AOMediaCodec/SVT-AV1.
  4. Provide a detailed description of your changes and reference any related issue numbers.
  5. Submit the Merge Request. The project maintainers will review your code, run automated tests, and provide feedback before merging.