CONTRIBUTING.md 1.83 KB
Newer Older
1
# dav1d contribution guide
2 3 4 5

## CoC
The [VideoLAN Code of Conduct](https://wiki.videolan.org/CoC) applies to this project.

6 7 8 9
## ToDo

Todo list can be found [on the wiki](https://code.videolan.org/videolan/dav1d/wikis/task-list).

10 11 12 13 14 15
## Codebase language

The codebase is developed with the following assumptions:

For the library:
- C language with C99 version, without the VLA or the Complex (*\_\_STDC_NO_COMPLEX__*) features, and without compiler extension,
16 17
- x86 asm in .asm files, using the NASM syntax,
- arm/arm64 in .S files, using the GAS syntax limited to subset llvm 5.0's internal assembler supports,
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
- no C++ is allowed, whatever the version.

For the tools and utils:
- C *(see above for restrictions)*
- Rust
- C++ only for the MFT.

If you want to use *Threads* or *Atomic* features, please conform to the **C11**/**POSIX** semantic and use a wrapper for older compilers/platforms *(like done in VLC)*.

Please use modern standard POSIX functions *(strscpy, asprintf, tdestroy)*, and provide a compatibility fallback *(like done in VLC)*.

We will make reasonable efforts for compilers that are a bit older, but we won't support gcc 3 or MSVC 2012.

## Authorship

Please provide a correct authorship for your commit logs, with a name and a valid email.

We will reject anonymous contributions for now. As an exception, known pseudonyms from the multimedia community are accepted.

This project is respecting **Copyright** and **Droit d'auteur**. There is no copyright attribution or CLA.

## Commit logs

Please read [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/).

## Submit requests (WIP)

- Code
46
- Check [code style](https://code.videolan.org/videolan/dav1d/wikis/Coding-style)
47 48 49 50 51 52
- Test
- Try
- Submit patches

## Patent license

53
You need to read, understand, and agree to the [AV1 patents license](doc/PATENTS), before committing.