Monday, October 12, 2015

Thank you for adding me to the OBS Community!

Thank you for adding me to the OBS Community!

I am still learning and working on my implementation.  I was wondering if there is any documentation for building OBS Multi-Platform plugins?  I assume they need to be written in C?

9 comments:

  1. Welcome to the forum! And thanks for starting off with an easy question! :-)
    https://obsproject.com/forum/#resources.23 and https://obsproject.com/forum/#development.19 should do it, but that is one of the greatest forums around, and people will help out all over there.

    ReplyDelete
  2. Thanks Terry Leigh Britton I must have totally missed these in my searching.  I appreciate it!

    ReplyDelete
  3. Curtis Thornton Welcome to the community.  I'm going to have to keep my eye on you (talkin' about writing plugins for OBS MP!).
    Finding stuff on the OBS forums can be challenging.  There's a lot of good stuff there but the indexing doesn't seem to bring them to the surface consistently.  Maybe it's my counter-intuitive search terms that are to blame.  Hopefully you can get some answers here too.

    ReplyDelete
  4. Thanks John Brown! I am currently looking into building a MP IRC plugin. I didn't see one yet and it's the first task for my streaming set up. Any suggestions or info from others that have gone down this path would be great.

    I am a developer by trade and comfortable working with C++ or C#. Is there a community preference in terms of language I should be writing my plugins in?

    ReplyDelete
  5. Plugins can be written in any C-compatible native language at the moment.  A Python plugin framework is also in the works.

    Proper documentation is currently majorly lacking, but it's something I will be working on for the next patch.

    Currently most of the documentation is written in the comments in the headers:

    * libobs/obs.h is the "main" header, has all major functions and is the main header for front-ends
    * libobs/obs-source.h is for writing input sources (audio/video input)
    * libobs/obs-output.h is for writing outputs
    * libobs/obs-encoder.h is for writing encoder implementations
    * libobs/obs-service.h is for writing custom service implementations
    * libobs/obs-module.h is the "module" header for plugin modules (includes obs.h and all the module headers).  There are a few key macros in here that are required for writing plugin modules.

    All the plugins in the "plugins" directory can be considered examples of how plugins are written though, and also there are some more simple examples in the "test" directory.

    If you want to make a third-party plugin, we have a cmake framework specifically for third-party plugins recently written, though needs a bit more testing:  they're the files in the cmake/external directory.

    0.13.0 is intended to be a patch very much focused on improving API and docs, just as a note.

    ReplyDelete
  6. Hugh Bailey
    Thanks a million or two for weighing in here with this vital information!

    ReplyDelete