How to Submit Bug Reports and Patches to libdav1d
This article provides a clear guide on how community members can contribute to libdav1d, the open-source AV1 decoder. It covers the exact steps required to report software bugs, submit code patches, and engage with the development team using the project’s official platform and communication channels.
Step 1: Access the VideoLAN GitLab Platform
The libdav1d project is hosted on VideoLAN’s self-hosted GitLab instance. To report bugs or submit patches, you must first create an account on code.videolan.org.
Because of spam prevention measures, new account registrations may
require manual approval or email verification. Once your account is
active, navigate to the official repository at
code.videolan.org/videolan/dav1d.
Step 2: How to Submit a Bug Report
Before filing a new bug report, search the existing issues list on the GitLab repository to ensure the problem has not already been reported. If the issue is unique, follow these steps to file a report:
- Go to the Issues section of the libdav1d repository and click New issue.
- Select an issue template if one is available, or write a clear, descriptive title.
- In the description, include:
- The version of libdav1d you are using (or the specific Git commit hash).
- Your operating system, CPU architecture, and compiler details.
- Clear, step-by-step instructions to reproduce the bug.
- The expected behavior versus the actual behavior.
- Relevant log outputs, crash dumps, or sample AV1 files (if applicable and shareable).
Step 3: How to Submit Patches (Merge Requests)
The libdav1d project accepts code contributions through GitLab Merge Requests (MRs). To submit a patch:
Fork the Repository: Click the “Fork” button on the main libdav1d GitLab page to create a copy of the repository under your personal account.
Clone and Branch: Clone your fork locally and create a new Git branch for your changes:
git checkout -b my-fix-branchWrite and Test Code: Make your changes. Ensure your code complies with the project’s C programming style guidelines. Test your changes locally using the Meson build system:
meson test -C builddirCommit Changes: Write clear, concise commit messages. The first line should be a short summary of the change, followed by a blank line and a more detailed explanation if necessary.
Push and Open an MR: Push your branch to your GitLab fork and open a Merge Request targeting the
masterbranch of the mainvideolan/dav1drepository. The continuous integration (CI) system will automatically run tests on your submission.
Step 4: Discussion and Alternative Channels
For general development discussions, feedback on complex features, or quick help before submitting a patch, you can reach out to the developers via:
- Mailing List: Subscribe or post to the
dav1d-develmailing list hosted by VideoLAN. - IRC Channel: Join the
#dav1dchannel on the Libera.Chat IRC network to chat directly with active maintainers and community members.