Commit graph

74 commits

Author SHA1 Message Date
Ryan Foster d00068cb6c plugins: Update CMake minimum to 3.22
Since Ubuntu 22.04 is now our minimum supported Ubuntu version, and it
has CMake 3.22, let's make CMake 3.22 the minimum CMake version.
2023-08-05 16:45:46 -07:00
derrod edf2c8210c cmake,plugins,build-aux: Remove enc-amf 2023-07-22 18:06:26 -07:00
Kurt Kartaltepe c6b470de9a obs-qsv11: Add a Linux implementation
This adds a CMake module for finding the QSV SDK (libmfx/onevpl) and an
the required platform components to initialize QSV with the VA-API
platform.
2023-07-14 12:19:33 -04:00
Sean DuBois 851a8c216e obs-webrtc: Add WHIP output & service
This adds a WHIP output & associated service.
- Code inspiration from DDRBoxman
- Implemented by Sean DuBois & tt2468
- Various fixes and contributions by pkv.

Co-authored-by: tt2468 <tt2468@irltoolkit.com>
Co-authored-by: DDRBoxman <colin@recursivepenguin.com>
Co-authored-by: pkv <pkv@obsproject.com>
Signed-off-by: pkv <pkv@obsproject.com>
2023-06-09 20:20:49 -05:00
PatTheMav 158a2e10aa cmake: Skip plugin target setup when ENABLE_PLUGINS is not set 2023-04-08 16:33:18 -07:00
PatTheMav 349372b3b3 cmake: Add changes for CMake build framework 3.0
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
2023-03-26 18:20:38 -04:00
Georges Basile Stavracas Neto a1a98f9cfd plugins: Drop win-ivcam
Apparently this was a prototype from Intel that never really
properly launched. Remove the plugin.
2023-02-24 14:04:29 +01:00
Georges Basile Stavracas Neto 4ab9cd1005 plugins: Drop win-mf
The win-mf plugin is deprecated, and disabled by default. Let's drop
it entirely.
2023-02-24 13:22:52 +01:00
Jan Beich 0a257a71e8 plugins: Enable linux-pipewire on FreeBSD 2023-02-15 14:44:36 -05:00
tytan652 4ce3a729fd plugins: Make CMake fail if obs-websocket is not found 2022-07-30 17:34:36 -07:00
tt2468 a196fc7824 plugins: Add obs-websocket submodule
Adds obs-websocket as a submodule, to be included in future releases of
OBS Studio by default.
2022-07-28 12:36:17 -07:00
Matt Gajownik a7c3d94e4c obs-vst: Remove submodule in favour of direct merge 2/2
Please visit the submodule repo for blame history:
https://github.com/obsproject/obs-vst

This also replaces the obs-vst .clang-format with obs-studio's.

This commit depends on the previous commit, which removes the submodule
separately as Git complains otherwise.

Co-authored-by: Alex Anderson <anderson.john.alexander@gmail.com>
Co-authored-by: Anton <camotank12345@gmail.com>
Co-authored-by: Blue Cat Audio <support@bluecataudio.com>
Co-authored-by: Cephas Reis <c3r1c3@nevermindonline.com>
Co-authored-by: Colin Edwards <colin@recursivepenguin.com>
Co-authored-by: Florian Zwoch <fzwoch@gmail.com>
Co-authored-by: Fogmoon <i@fogmoon.com>
Co-authored-by: Gol-D-Ace <Gol-D-Ace@users.noreply.github.com>
Co-authored-by: Igor Bochkariov <ujifgc@gmail.com>
Co-authored-by: Jesse Chappell <jesse@sonosaurus.com>
Co-authored-by: Keen <523059842@qq.com>
Co-authored-by: Kurt Kartaltepe <kkartaltepe@gmail.com>
Co-authored-by: Matt Gajownik <matt@obsproject.com>
Co-authored-by: Matt Gajownik <matt@wizardcm.com>
Co-authored-by: Richard Stanway <notr1ch@users.noreply.github.com>
Co-authored-by: Ryan Foster <RytoEX@gmail.com>
Co-authored-by: follower <github@rancidbacon.com>
Co-authored-by: gxalpha <beckmann.sebastian@outlook.de>
Co-authored-by: jp9000 <obs.jim@gmail.com>
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
Co-authored-by: mntone <sd8@live.jp>
Co-authored-by: tytan652 <tytan652@tytanium.xyz>
Co-authored-by: wangshaohui <97082645@qq.com>
Co-authored-by: wangshaohui <wang.shaohui@navercorp.com>
2022-07-26 22:12:23 -04:00
Matt Gajownik 34ff76c0e7 obs-vst: Remove submodule in favour of direct merge 1/2
Please visit the submodule repo for blame history:
https://github.com/obsproject/obs-vst

NOTE: You may need to manually delete plugins/obs-vst to pull this diff.
2022-07-26 22:12:23 -04:00
gxalpha a129c953e8 cmake: Rename mac-vth264 plugin to mac-videotoolbox 2022-07-11 23:45:43 +02:00
PatTheMav aae3a6a466 cmake: Fix diverging prefix padding for OBS status outputs
Status output related to OBS configuration is prefixed with the string
"OBS" and added padding for enabled and disabled features. This padding
was not aligned between platforms.

By moving the padding and prefix decoration into its own function,
both elements are controlled in a single place. CMake scripts were
changed to use this new function `obs_status` instead of using CMake's
`message` function directly.
2022-03-26 09:44:23 -04:00
columbarius ebe8f6c72a linux-pipewire: Create new plugin
This plugin should contain different plugins importing and exporting
multimedia streams via PipeWire.
2022-03-20 20:53:39 -03:00
PatTheMav 49e9d49943
plugins: Update CMakeLists.txt for included plugins 2022-03-16 23:11:08 +01:00
Paul Hindt ce3ae8e423
aja: Capture and Output plugin for AJA Video Systems IO devices
* aja: Initial commit of AJA capture/output plugin

* aja: Fix clang-format on aja-output-ui code

* aja: Remove script used during dev/testing

* aja: Address pull request feedback from @RytoEX

* aja: Remove the SDK sources and update CMakeLists to point to new headers-only/static libs dependency distribution.

* aja: Only build AJA plugin on x64 on macOS for now

* aja: Remove the non-English placeholder locale files. The english strings/files will be produced via crowdin, according to @ddrboxman.

* aja: Add FindLibAJANTV2.cmake script to locate the ajantv2 headers and static libs in the OBS external deps package(s). Tested on Windows x64. macOS and Linux x64 TBD.

* aja: Add ajantv2/includes to FindLibAJANTV2 include search paths

* aja: Remove commented code from aja CMakeLists

* aja: Remove debug code and comments that are no longer needed.

* aja: Fix indentation

* aja: Remove disablement of clang-format in routing table and SDIWireFormat map

* aja: Use spaces for all indentation in widget crosspoint arrays where we disable clang-format

* aja: Address code style comments made by @RytoEX

* aja: Fix uneven indentation

* aja: More fixes to if/else placement and remove superfluous comments.

* aja: Rename 'dwns' to 'deactivateWhileNotShowing' for clarity. The DeckLink plugin still uses the variable name 'dwns' and should be changed, if desired, in a separate PR.

* aja: Remove X11Extras dependency from AJA Output frontend plugin

* aja: Add patch from Jim to find AJA release/debug libs

* aja: Improve AV sync of queued video/audio sent to the AJA card in the AJA Output plugin.
2021-11-23 20:31:11 -06:00
tytan652 029aee33c3 plugins: Set obs-vst as a default requirement
BUILD_VST option is added and set to ON by default.
If obs-vst is not present CMake will emit a fatal error.
2021-04-09 06:44:53 -07:00
tytan652 98ad4face2 plugins: Set obs-browser as a default requirement
BUILD_BROWSER is set to ON by default.
If obs-browser is not present CMake will emit a fatal error.
2021-04-09 06:44:53 -07:00
jp9000 c390bb950d cmake: Make mac vcam optional (enabled by default) 2021-01-11 16:16:25 -08:00
Vadim Zhukov 12719816fc
Add sndio support (#3715)
Add sndio support
2020-11-14 11:58:55 -08:00
John Boiles 2700db9ff9 Add virtualcam plugin to OBS codebase
Co-authored-by: lvsti <lvsti@users.noreply.github.com>
Co-authored-by: Sebastian Beckmann <beckmann.sebastian@outlook.de>
Co-authored-by: Stefan Huber <sh@signalwerk.ch>
Co-authored-by: Ryohei Ikegami <iofg2100@gmail.com>
Co-authored-by: Colin Dean <colin.dean@target.com>
Co-authored-by: Wolfgang Ladermann <extern.ladermann_wolfgang@allianz.de>
Co-authored-by: Simon Eves <simon.eves@omnisci.com>
Co-authored-by: Colin Nelson <colnnelson@google.com>
Co-authored-by: Yoshimasa Niwa <niw@niw.at>
Co-authored-by: Michael Karliner <mike@modern-industry.com>
Co-authored-by: Jason Grout <jgrout6@bloomberg.net>
Co-authored-by: Alfredo Inostroza <jadenguy@gmail.com>
Co-authored-by: Daniel Kennett <daniel@cascable.se>
Co-authored-by: Gary Ewan Park <gep13@gep13.co.uk>
Co-authored-by: José Carlos Cieni Júnior <cienijr@outlook.com>
2020-10-30 23:36:57 -07:00
Colin Edwards bfc2063b1a obs-vst: Compile the vst plugin on linux 2020-05-20 12:32:49 -05:00
Ka Ho Ng a5a8cc261c plugins: Add oss-audio plugin
This implements OSS audio input capturing support for OSS-capable OSes.
FreeBSD and DragonFly (not yet tested on) supports are added as a
starting point.
2020-05-02 17:38:27 +08:00
Ed Maste c989e22c57 vlc-video: Enable building the plugin on FreeBSD 2020-04-26 20:27:48 -04:00
Hans Petter Selasky 62a174ec39 plugins: Build ALSA plugin for FreeBSD
Signed-off-by: Hans Petter Selasky <hps@selasky.org>
2020-04-05 20:39:53 +02:00
Clayton Groeneveld 61aeaa5ca3 obs-browser: Enable Linux support
This requires CEF >= 3683
2020-02-25 22:38:12 -06:00
luz.paz d124e6402c docs/sphinx: Fix various typos
(This modifies UI, libobs, deps/obs-scripting, various cmake files)

Found using:
`codespell -q 3 -S *.ini,./UI/data/locale,./deps/w32-pthreads -L aci,dur,iff,mut,numer,uint`
2019-10-14 17:19:38 -07:00
jp9000 8b936a1575 cmake: Fix UI being dependent on browser plugin files
The UI currently is dependent on browser source files being present,
when in actuality the files may not have been fetched (i.e. not fetching
submodules).  This fixes that by using a macro to detect whether it's
available or not.

Closes obsproject/obs-studio#1490
2018-09-18 08:56:34 -07:00
Michael Fabian 'Xaymar' Dirks e7c2381651 enc-amf: Version 2.3.1
Code Changes:
- Removed flag BUILD_AMF_ENCODER.
- AMF SDK is now a submodule of the plugin, no longer requiring extra steps.

Plugin Changes:
- 'Bitrate.Target' has been renamed to 'bitrate' internally, improving support for "New Networking Code" and "Replay Buffer" which incorrectly rely on this value instead of taking the average bitrate of packets sent over the last second.
- Drivers with a runtime older than 1.4.6.0 are blacklisted now.
- All hidden and experimental options have been removed.
2017-12-13 23:14:54 +01:00
Ryan Foster 54ecfc8fe7 cmake: Add CMake option to disable building plugins
Closes jp9000/obs-studio#1070
2017-11-26 03:16:22 -08:00
Colin Edwards 94d4698c7f Add VST Plugin
Closes jp9000/obs-studio#750
2017-01-30 16:05:25 -08:00
jp9000 4c4025a242 win-ivcam: Add Intel RealSense plugin 2016-11-19 03:15:21 -08:00
jp9000 677ae3798d obs-browser: Add browser plugin as a submodule 2016-09-27 13:33:57 -07:00
Michael Fabian Dirks ed616ac593 enc-amf: Add AMD h.264 encoder
Closes jp9000/obs-studio#611
2016-09-20 09:08:21 -07:00
jp9000 34eb4cd409 obs-text: Add GDI+ text source 2016-09-14 16:59:46 -07:00
Cephas Reis 1ae46a2940 linux-jack: Allow jack support on OSX
Allows usage of jack on OSX (as well as windows later).

Closes jp9000/obs-studio#587
2016-08-20 13:08:02 -07:00
Timo Gurr a1ec0ecee3 vlc-video: Enable building the plugin on Linux 2016-07-07 16:24:09 +02:00
jp9000 d89299fc1a vlc-video: Add VLC video source
Adds the ability to add video playlists via libvlc instead of via the
media source.  This is mostly just being added as a secondary option to
the media source to reduce maintenance costs and save time.  Currently
libff cannot pause/unpause/seek, and isn't programmed to handle
playlists yet.

If VLC is installed on the computer (with the same architecture) it will
allow video playback via libVLC.  In the future, users should be able to
optionally download VLC libraries via the installer as well if they
don't want to necessarily install VLC to get the plugin working.

This plugin performs runtime linking instead of compile-time linking;
compiling VLC is not required, only its headers are required.  To
compile, clone the VLC repository and set the VLCPath cmake variable to
point to the VLC repository directory.
2016-06-06 23:53:59 -07:00
Seung-Woo Kim 3e4bcf06bc obs-qsv11: Add native obs-studio QSV encoder 2016-04-19 08:29:22 -07:00
Guillermo A. Amaral f6a940cce7 linux-alsa: Add ALSA audio input plugin (linux)
Closes jp9000/obs-studio#494
2016-04-08 02:53:21 -07:00
jp9000 4b781c7b04 obs-transitions: Implement fade transition
A basic fade transition that fades to/from a source via a simple cross
fade.
2016-01-26 11:49:45 -08:00
kc5nra 595f451eb7 mac-vth264: Add Apple H264 encoder
Adds a VideoToolbox based H264 encoder for OSX, which most notably
allows the use of hardware encoding (Quicksync).

NOTES:
- Hardware encoding is handled by Apple itself internally.  The plugin
  itself has little control over many details due to the way that Apple
  designed the VideoToolbox interface.  Generally however, quicksync is
  used if available on the CPU, and quicksync is almost always available
  due to the fact that macs are exclusively Intel.

- The VideoToolbox does not seem to implement CBR, so it won't be
  available.  These encoders are generally not recommended for
  streaming.
2015-09-16 16:43:53 -07:00
John R. Bradley 3ae747dd50 win-mf: Add Media Foundation AAC Encoder
Adds Microsoft Media Foundation AAC Encoder that supports
96k to 192k bitrates.  This plugin is only enabled on Microsoft
Windows 8+ due to performance issues found on Windows 7.
2015-07-07 23:05:44 -07:00
Palana 897fbcfe1c coreaudio-encoder: Make encoder available on windows 2015-06-07 04:22:24 +02:00
Palana df44e5c0ed Add CoreAudio AAC encoder 2015-06-07 04:22:24 +02:00
Kris Moore 88abdf7e51 cmake: Enable plugins on FreeBSD
Add a list of plugins to cmake that should be build when on FreeBSD.
2015-05-04 22:37:17 +02:00
jp9000 55534d5d8d obs-filters: Add async delay filter
Adds a filter for delaying asynchronous video/audio data, for example
from webcams, video devices, or media playback sources.  Mainly intended
to allow users to sync up their webcams to other devices.
2015-03-25 14:12:03 -07:00
Skyler Lipthay dd739d1e49 decklink: Add Windows DeckLink project
The code specific to Windows: helps convert `BSTR` instances to
`std::string`s; provides a Windows COM-specific implementation of
`CreateDeckLinkDiscoveryInstance`; aliases CFUUIDGetUUIDBytes,
CFUUIDBytes, and IUnknownUUID (the Linux SDK does this, but for some
reason the Windows SDK does not).
2015-03-21 16:43:16 -07:00