CONTRIBUTING.rst 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. Contributing
  2. ============
  3. Quick Links for Contributing
  4. ----------------------------
  5. - Compiling and building OBS Studio:
  6. https://github.com/jp9000/obs-studio/wiki/Install-Instructions
  7. - Our bug tracker (linked to forum accounts):
  8. https://obsproject.com/mantis/
  9. - Development IRC channel: #obs-dev on QuakeNet
  10. - Development forum:
  11. https://obsproject.com/forum/list/general-development.21/
  12. - To contribute language translations, do not make pull requests.
  13. Instead, use crowdin. Read here for more information:
  14. https://obsproject.com/forum/threads/how-to-contribute-translations-for-obs.16327/
  15. Coding Guidelines
  16. -----------------
  17. - OBS Studio uses kernel normal form (linux variant), for more
  18. information, please read here:
  19. https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst
  20. - Avoid trailing spaces. To view trailing spaces before making a
  21. commit, use "git diff" on your changes. If colors are enabled for
  22. git in the command prompt, it will show you any whitespace issues
  23. marked with red.
  24. - Tabs for indentation, spaces for alignment. Tabs are treated as 8
  25. columns wide.
  26. - 80 columns max
  27. Commit Guidlines
  28. ----------------
  29. - OBS Studio uses the 50/72 standard for commits. 50 characters max
  30. for the title (excluding module prefix), an empty line, and then a
  31. full description of the commit, wrapped to 72 columns max. See this
  32. link for more information: http://chris.beams.io/posts/git-commit/
  33. - Make sure commit titles are always in present tense, and are not
  34. followed by punctuation.
  35. - Prefix commit titles with the module name, followed by a colon and a
  36. space (unless modifying a file in the base directory). When
  37. modifying cmake modules, prefix with "cmake". So for example, if you
  38. are modifying the obs-ffmpeg plugin::
  39. obs-ffmpeg: Fix bug with audio output
  40. Or for libobs::
  41. libobs: Fix source not displaying
  42. - If you still need examples, please view the commit history.
  43. Headers
  44. -------
  45. There's no formal documentation as of yet, so it's recommended to read
  46. the headers (which are heavily commented) to learn the API.
  47. Here are the most important headers to check out::
  48. libobs/obs.h Main header
  49. libobs/obs-module.h Main header for plugin modules
  50. libobs/obs-source.h Creating video/audio sources
  51. libobs/obs-output.h Creating outputs
  52. libobs/obs-encoder.h Implementing encoders
  53. libobs/obs-service.h Implementing custom streaming services
  54. libobs/graphics/graphics.h Graphics API
  55. UI/obs-frontend-api/obs-frontend-api.h
  56. Front-end API
  57. If you would like to learn from example, examine the default plugins
  58. (in the <plugins> subdirectory). All features of OBS Studio are
  59. implemented as plugins.