- Compiling and building OBS Studio: https://github.com/jp9000/obs-studio/wiki/Install-Instructions
- Our bug tracker (linked to forum accounts): https://obsproject.com/mantis/
- Development IRC channel: #obs-dev on QuakeNet
- Development forum: https://obsproject.com/forum/list/general-development.21/
- To contribute language translations, do not make pull requests. Instead, use crowdin. Read here for more information: https://obsproject.com/forum/threads/how-to-contribute-translations-for-obs.16327/
- OBS Studio uses kernel normal form (linux variant), for more information, please read here: https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst
- Avoid trailing spaces. To view trailing spaces before making a commit, use "git diff" on your changes. If colors are enabled for git in the command prompt, it will show you any whitespace issues marked with red.
- Tabs for indentation, spaces for alignment. Tabs are treated as 8 columns wide.
- 80 columns max
OBS Studio uses the 50/72 standard for commits. 50 characters max for the title (excluding module prefix), an empty line, and then a full description of the commit, wrapped to 72 columns max. See this link for more information: http://chris.beams.io/posts/git-commit/
Make sure commit titles are always in present tense, and are not followed by punctuation.
Prefix commit titles with the module name, followed by a colon and a space (unless modifying a file in the base directory). When modifying cmake modules, prefix with "cmake". So for example, if you are modifying the obs-ffmpeg plugin:
obs-ffmpeg: Fix bug with audio outputOr for libobs:
libobs: Fix source not displayingIf you still need examples, please view the commit history.
There's no formal documentation as of yet, so it's recommended to read the headers (which are heavily commented) to learn the API.
Here are the most important headers to check out:
libobs/obs.h Main header libobs/obs-module.h Main header for plugin modules libobs/obs-source.h Creating video/audio sources libobs/obs-output.h Creating outputs libobs/obs-encoder.h Implementing encoders libobs/obs-service.h Implementing custom streaming services libobs/graphics/graphics.h Graphics API UI/obs-frontend-api/obs-frontend-api.h Front-end APIIf you would like to learn from example, examine the default plugins (in the <plugins> subdirectory). All features of OBS Studio are implemented as plugins.