-
-
Notifications
You must be signed in to change notification settings - Fork 175
Getting Started with Cboard Development
Interested in contributing to Cboard? Thanks! There are plenty of ways you can help.
Please take a moment to review this document in order to make the contribution process easy and effective for everyone involved. Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features. Follow this guide to get up and running.
In order to contribute as a developer, you will need to have a basic understanding of React and probably Redux, you will also need to be familiar with Material-UI. It is highly recommended that you read Cboard Contributing guide so that you know code guidelines as well as what is required when you want to submit a change.
Our developer community is always helpful to new developers wanting to get their feet wet with Cboard programming. If you ever need help you can join the developer chat on Discord here: https://discord.gg/cboard
Check out the source code for Cboard from Github: https://github.com/cboard-org/cboard
git clone --recursive https://github.com/cboard-org/cboard.git
Don't forget the --recursive
argument to get all submodules.
The next step is to get the program building so that you can start making your modifications.
Cboard reference documentation can be found here: Cboard Architecture Reference
It's also recommended to examine some of the featured repositories to see how they interact with Cboard, specially the API repository, and the Mobile application repository, so you can begin to see how the different modules of code fit together.
Many user post ideas and suggestions for improvements to OBS on the OBS Ideas page. You can find the Ideas page (Fider) here: https://ideas.obsproject.com/
OBS Studio currently tracks bugs on GitHub Issues.
Feel free to explore ideas, issues, suggestions, and bugs, and if you feel so inclined, try your hand at implementing one!
Many people want to get into OBS Studio development in order to make a plugin, rather than alter core functionality. It turns out that OBS code is already pretty modular, and many features that are considered "core" features are actually plugins that just come bundled with OBS, so learning about OBS development really means learning about plugin development as well.
For more details on plugin development, check this page of the documentation: https://obsproject.com/docs/plugins.html
- Example source plugin: Color Source
- Example service plugin: Custom RTMP Service
- Example encoder plugin: x264 Encoder
- Example output plugin: FLV Output
Many people want to write modules for OBS, but are not familiar with C/C++, or don't want to go through the trouble of setting up a build environment. Fortunately, OBS is capable of running Lua and Python scripts via the bundled LuaJIT or your system's Python environment. These scripts are capable of accessing the OBS API and doing many of the same things you could do by writing OBS C/C++ code directly. In fact, you can even make new plugins with Lua (though not with Python).
For more details on scripting, check this page of the documentation: https://obsproject.com/docs/scripting.html
OBS Studio is an open source program licensed under the GPLv2. That means that if you create a plugin for OBS Studio or a modified version of OBS Studio and distribute it in binary form, you must give users a way to access the source code of your binary. Otherwise, you will be in violation of the license. The easiest way to do this is to have a public Github repository of your fork or plugin, and include a text file in your download for the binary containing a link to the repo. The relevant part of the license is under section 3 of the GPLv2.
Thanks for being willing to help out, and good luck!