Commit graph

4621 commits

Author SHA1 Message Date
Kurt Kartaltepe 728cd56583 linux-v4l2: Expand packed values to 4 bytes
These days you might capture card a 175Hz monitor with a framerate
defined as 10000000/57143 that doesnt fit in a short. And reporting a
negative FPS in that case isnt very helpful.
2023-10-08 02:00:28 +02:00
artemmdev 5f8eff7ec1 rtmp-services: Update OnlyFans streaming service 2023-10-08 02:00:01 +02:00
derrod 5dde70ccff obs-ffmpeg: Readd OBS_ENCODER_CAP_DYN_BITRATE to AMF texture encoders 2023-10-05 16:55:21 -04:00
jpark37 e11e2133e2 libobs,obs-filters: Fix NAN when tonemapping
Can happen when colors are wider than Rec. 2020.
2023-10-04 19:33:54 -04:00
Ryan Foster 0866688953 obs-qsv11: Use translatable strings for target usage
For Target Usage, instead of doing string comparisons against long
descriptive strings, use translatable strings for descriptive UI text
and simple designations for values used for comparisons and storage.
This is similar to what we do for NVENC Presets.
2023-10-04 16:22:24 -04:00
Ryan Foster 9b1d6032e3 obs-qsv11: Remove D3D9 fallback
On Windows 10 and up, D3D11 should never fail, so the D3D9 code should
no longer be possible to hit. As far as I can tell, this code was mostly
for Windows 7/8/8.1 and it was part of the initial implementation. It
should no longer be needed.
2023-10-04 15:24:56 -04:00
Ryan Foster 53dee8f990 obs-qsv11: Remove D3D9 allocator
On Windows 10 and up, D3D11 should never fail, so the D3D9 code should
no longer be possible to hit and should no longer be needed.

Revert "obs-qsv11: Use d3d9 allocator on Win7"

This reverts commit b276b1633e.
2023-10-04 15:24:56 -04:00
Kurt Kartaltepe 9d4b916248 obs-qsv11: Redo session data releasing for Linux
This reverts the changes to Windows where Release() was called every
time, since we need share a single DX context across multiple encoders.

Instead introduce a ReleaseSessionData() function and some platform
specific session data that will be passed to it. We use this to track
the VA-API display and fd to release them at the right time. Leaking
displays will also lead to cache pollution in the intel-media-driver
crashing users so we cannot do that.

fixes #9611
2023-09-29 11:56:53 -04:00
gxalpha 23bfb625ce mac-capture: Don't crash when migrating unknown display IDs
The current code assumes that a display UUID can be created with the
stored ID, but that's not always the case, e.g. when the user doesn't
have the display connected. As such, we need to null check this, and
fall back to the invalid ID (0) when the ID cannot be migrated.

The current code also only migrates on source creation, which yields
weird behaviour where if the user opens properties and then cancels it
would still show the first display, but only for the session. This is
why the code was factored out of the creation function and now is always
used when an ID needs to be acquired from OBS Data settings, including
when the source is updated.
2023-09-28 14:25:55 -04:00
Matt Gajownik 857c42aaba obs-browser: Fix invalid comparison of integer types 2023-09-28 23:00:48 +10:00
Matt Gajownik 22cef2b8c4 obs-browser: Update version to 2.22.1
fc57db4 - More consistently return JSON types in browser client
8407dcc - Use CefParseJSON instead of V8 context for JS responses
2023-09-28 21:04:29 +10:00
PatTheMav b3949e6aef cmake: Update qrcodegen finder to match target names of CMake package
qrcodegen is built on obs-deps for macOS and Windows, with the
generated CMake package calling the dependency qrcodegen (not
libqrcoden) and associated target qrcodegen::qrcodegen.

This change updates the finder (required for Linux) to create the same
targets so consumers do not need to differentiate between different
variations of the same dependency on Linux.

Also updates obs-websocket to 5.3.1 to bring in associated CMake
changes.
2023-09-27 18:05:02 -04:00
Sean DuBois 2308414bcc obs-webrtc: Move libdatachannel code to C++ from C
libdatachannel is now built with MSVC instead of MinGW so we are able to
use C++ API instead.

The C++ is preferred by upstream and what the project is written in. The
C API provides a subset of features and has a performance penalty.
2023-09-19 15:03:11 -04:00
Neal Gompa 63f3b0d46c obs-qsv11: Add license declaration file 2023-09-19 13:35:49 -04:00
Neal Gompa dc50e11bc6 decklink: Add license declaration files 2023-09-19 13:35:49 -04:00
Ryan Foster 03b70f0672 obs-qsv11: Fix unusual CBR bitrate issues
For some reason, using MFX_SCENARIO_GAME_STREAMING causes the keyframe
quants to be higher than other frames, which is not desirable. In turn,
this causes bitrate to be higher than the target bitrate for a sustained
period of time after each keyframe.

Not setting the scenario removes this behavior and returns CBR to
somewhat reasonable levels of consistency.

Co-authored by: Chris (Flaeri) <flaeri@otterbro.com>
2023-09-18 13:04:04 -04:00
gxalpha e46c68726e obs-qsv11: Fix target usage migration string comparisons
Fixes problems with the astrcmpi logic, as well as a typo that said
"vertfast" instead "veryfast".
Also makes the method a void because it always returns true and isn't
checked anyways.
2023-09-16 14:33:09 -07:00
Lain 107416193c win-wasapi: Fix arithmetic for WAVEFORMATEX::cbSize
This arithmetic used the incorrect size for WAVEFORMATEX::cbSize, which
is supposed to be sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX).
2023-09-15 10:14:10 -07:00
Laurin Müller 3ac08303b5 rtmp-services: Rebranding Utreon to Playeur 2023-09-07 15:58:43 -07:00
derrod 0b75b433cd image-source: Fix slideshow audio rendering buffer overrun 2023-09-06 21:46:47 -07:00
Norihiro Kamae e5fe27a167 win-dshow: Log source name at error
When a user has multiple win-dshow inputs, it's hard to identify the
input outputting errors in a log file.
2023-09-06 11:46:19 -04:00
Service Checker 5ad60809a8 rtmp-services: Remove defunct servers/services 2023-09-06 06:57:54 +02:00
gxalpha 49ab01c898 obs-websocket: Update version to 5.3.0 2023-09-05 17:03:29 -04:00
Kurt Kartaltepe 543be8cf29 obs-qsv11: Ensure default devices are Intel devices 2023-09-05 15:34:37 -04:00
PatTheMav f8f2c6d989 mac-virtualcam: Switch pixel format of camera extension to BGRA
BGRA was used by default in Apple's example code and is also already
supported by OBS.
2023-09-05 10:41:41 -04:00
PatTheMav d0a8bbcc34 obs-outputs: Silence all warnings generated by the FTL SDK
The FTL SDK is vendored, outdated, and abandoned, so all these issues
will not be fixed anyway.
2023-08-31 17:52:08 -04:00
PatTheMav 4e488e2f1a text-freetype2: Fix warning about implicit integer downcast
Use Freetype2-specific types which match the types used internally and
returned by Freetype2 functions anyway.
2023-08-31 17:52:08 -04:00
PatTheMav 13a23f6471 plugins: Suppress warnings about implicit integer downcasts
Returned values are usually 64-bit in length but commonly stored in
16-bit integers anyway.
2023-08-31 17:52:08 -04:00
gxalpha 321829d932 mac-avcapture: Log if portrait or studio light effects are active
These effects can remain enabled between devices (so enabling it on one
device can mean it's later also enabled on another device), leading to
cases of capture cards getting blurred.
Logging that the effects are enabled should make it easier to spot this
in support.
2023-08-30 15:24:31 -04:00
pkv 78a33c7771 obs-ffmpeg: Fix broken mpegts output
This recent commit [1] broke SRT & RIST streaming because
obs_output_video now returns a NULL pointer for encoded outputs.
This fixes it by retrieving the pointer from the encoder.

[1] fb57eff212

Co-authored-by: tt2468 <tt2468@gmail.com>
Signed-off-by: pkv <pkv@obsproject.com>
2023-08-29 14:44:54 -04:00
PatTheMav 121fb8b2fd obs-outputs: Fix provision of CA certificates to mbedTLS on macOS 2023-08-28 10:39:21 -04:00
Norihiro Kamae e6d007b378 obs-ffmpeg: Do not include sys/timeb.h on non-Windows system
The struct timeb is used on Windows only.
2023-08-26 16:52:52 -07:00
Norihiro Kamae 2aa0e03bf0 obs-ffmpeg: Remove an unused static function 2023-08-26 16:52:35 -07:00
Norihiro Kamae 57170ba378 obs-outputs: Remove unused static functions 2023-08-26 16:52:35 -07:00
Norihiro Kamae 220bf8aeaa rtmp-services: Remove an unused static function 2023-08-26 16:52:35 -07:00
Norihiro Kamae f7b37b0832 mac-avcapture: Remove an unused static function 2023-08-26 16:52:35 -07:00
Norihiro Kamae d35583dcc8 linux-capture: Remove an unused static function 2023-08-26 16:52:35 -07:00
Richard Stanway d3ab68c5ca plugins: Quote program paths used in os_process_pipe_create
These end up being passed to CreateProcessW, so paths with spaces in the
name may be open to misinterpretation by the OS.
2023-08-26 16:44:53 -07:00
Kurt Kartaltepe 8e7b697447 obs-qsv11: Fixup session releasing for Linux 2023-08-26 16:40:46 -07:00
Kurt Kartaltepe 368082d6c0 obs-qsv11: Use device enumeration for choosing DRM device
Trying to use the display server as the QSV device was found to be
generally wrong in beta, so instead lets save defaults from the earlier
device enumeration similar to obs-ffmpeg-vaapi which is known to work
well.
2023-08-26 16:40:46 -07:00
Kurt Kartaltepe fc6a15e13a obs-qsv11: Mark internal functions static 2023-08-26 16:40:46 -07:00
Zhao Zhili 075f3c4020 obs-x264: refactor log callback
1. Remove limitation of message length.
2. Improve performance by remove the local copy.
3. Map x264 log level to obs.
2023-08-24 13:54:48 -07:00
Zhao Zhili 5c0a018628 obs-x264: Remove unused getparam() function 2023-08-24 13:54:48 -07:00
pkv 737b21230d obs-filters: Add a mutex when running NVIDIA Audio FX
This fixes a bug when swapping NVIDIA effects.
The update signal triggers a destruction of the previous effect, but the
effect would still run, potentially causing a crash.
The mutex added in the NVIDIA processing function prevents that.

Signed-off-by: pkv <pkv@obsproject.com>
2023-08-19 16:44:11 -07:00
Richard Stanway 609b1ab011 obs-qsv11: Fix crash in QSV test process
The code assumed MFXCreateSession would always succeed, but it fails on
systems with no QSV implementations, causing a crash when we call
MFXClose later. Additional success checks for the other API calls were
also added.
2023-08-18 17:55:00 -07:00
Service Checker 6640d973b3 rtmp-services: Remove defunct servers/services 2023-08-18 12:33:34 +02:00
Kurt Kartaltepe 32c07929b0 obs-qsv11: Drop Windows guards on LowPower settings
Setting AdaptiveCQM to ON when LowPower is OFF crashes the
intel-oneapi-gpu implementation on Linux when using the AV1 encoder.
But using the same LowPower settings as Windows works so lets drop the
current guards.
2023-08-17 10:27:16 -04:00
pkv 79232c3cec obs-filters: Update NVIDIA Effects SDK versions
We need to check for new versions of the NVIDIA Effects redistributables
because mismatched versions of the AUDIO and VIDEO sdk can have
different CUDA versions of the deps, which has caused crashes in obs.
It'd be way better that NVIDIA either ships a single installer with both
audio and video effects or that they auto-install with the drivers.
But meanwhile, we provide a warning to users which requires us to keep
in sync with what's released.

Signed-off-by: pkv <pkv@obsproject.com>
2023-08-17 03:37:30 -07:00
Kurt Kartaltepe b6b8f5b80a obs-qsv11: Fix VPL initialization on intel-mediaSDK
VPL does not have a consistent initialization process for the various
backends it dispatches to. So this resolves the new VPL dispatcher
failing to initialize the video session when it dispatches to
intel-mediaSDK backend. On the oneVPL-intel-gpu backend VA-API sessions
are correctly initialized so this wasnt noticed when tested on newer
hardware.
2023-08-16 15:40:02 -04:00
Kurt Kartaltepe 4d3f9323b5 obs-qsv11: Fix InitParams low power fallback 2023-08-16 15:40:02 -04:00
jpark37 4fd595efe9 decklink: Reset video capture on format change
Fixes black screen when toggling between 4K SDR and HDR on PS5.
2023-08-15 13:15:45 -07:00
jpark37 bb12fe9db5 decklink: Add HDR playback support 2023-08-15 13:15:45 -07:00
Penwywern 95e36878af image-source: Fix slideshow proc decl strings
Changes the decl strings of the slideshow source procedures to match
pre-existing conventions.
2023-08-14 13:17:46 -04:00
Translation Updater ecf914dd67 Update translations from Crowdin 2023-08-13 14:09:15 +00:00
tytan652 43ae532d2a sndio: Remove variable-length array usage 2023-08-12 16:18:32 -07:00
Jack Karamanian 21f2a7718e obs-ffmpeg: Set avg_frame_rate for AVStream outputs
This sets the framerate on container files when
recording using "Custom Output (FFmpeg)".
2023-08-11 18:15:46 -04:00
tytan652 7f4fd99f91 linux-pipewire: Replace dynamic arrays with allocations
Replace dynamic arrays added by 27630a8c0e
by allocations
2023-08-11 14:56:36 -03:00
PatTheMav 914392fcc0 mac-virtualcam: Fix crash on macOS when starting virtualcam output 2023-08-10 17:53:59 -04:00
PatTheMav 7628265099 Update .clang-format rules for ObjC files for version 16 2023-08-10 17:12:30 -04:00
Ryan Foster 64139a6bbd CI: Update to clang-format 16
This commit also modifies UI, libobs, and plugins.
2023-08-10 16:07:25 -04:00
aggresss c81f531edb obs-webrtc: Improve WHIP compliance
Location header is now required. Support relative and absolute URLs
2023-08-10 12:04:18 -05:00
aggresss 34e57a0496 obs-webrtc: Follow HTTP redirects 2023-08-10 12:04:18 -05:00
Ryan Foster 046560eadc obs-qsv11: Fix adapter enumeration in test app
MFXEnumImplementations expects the adapter index to be within a range of
valid Intel adapters produced by MFXLoad and the config filter. If a
system has one non-Intel high performance GPU and one Intel iGPU, OBS
and the test app will see the Intel iGPU as index 1 due to high
performance hints, but MFXEnumImplementations will expect only one valid
index, 0. In this scenario, passing a value of 1 to
MFXEnumImplementations will cause it to abort and return
MFX_ERR_NOT_FOUND (Provided index is out of possible range). This causes
subsequent capabilities testing to fail.

To avoid this, let's track how many non-Intel adapters we see and
subtract that number from adapterIdx to only pass valid index to
MFXEnumImplementations.
2023-08-10 11:47:15 -04:00
Ryan Foster 8b85ecbec1 Revert "obs-outputs: Enable HDR for HEVC over RTMP"
This reverts commit 8137eb5f56.
2023-08-09 21:47:30 -04:00
Amin Mahmoudi e77fc96cfa
rtmp-services: Add MasterStream.iR to ingest list (#9330) 2023-08-09 20:26:13 -05:00
Gale 550ccc63f2 obs-qsv11: Fix RepeatPPS bug 2023-08-09 18:12:47 -04:00
Gale 5bfc2e5150 obs-qsv11: Remove AVBR, QVBR, and VCM 2023-08-09 18:12:47 -04:00
Gale a790302dbd obs-qsv11: Refactor and tune Look-ahead settings
Enable Low Power Look-ahead (VDENC LA) after Intel Arc Graphics. Change
LA_DEPTH defaults (60 frames for normal latency and 30 frames for low
latency). Keep VME Look-ahead only for certain Intel platforms (ICL,
TGL, ADL, and RPL). Disable VME LA for HEVC
2023-08-09 18:12:47 -04:00
Gale 1d95575088 obs-qsv11: Update Target Usage options
Update target usage setting names from legacy names to VPL names.
2023-08-09 18:12:47 -04:00
Gale c9fd128d74 obs-qsv11: Fix bitstream bug
Fix InitBufferSize and BufferSize bug: change Bit to Byte.
2023-08-09 18:12:47 -04:00
Gale 6533b3e138 obs-qsv11: Adjust Gop and keyint_sec parameters
* Change GopPicSize default to 240
 * Remove GopOptFlag
 * Change keyint_sec default from 3 to 0
 * Reduce keyint_sec minimum value from 1 to 0 (for auto)
2023-08-09 18:12:47 -04:00
Gale 6dada921c9 obs-qsv11: Adjust Subjective Video Enhancements
Disable MBBRC (macro block level bitrate control) because it can reduce
objective quality metrics like VMAF.

Use AdaptiveCQM for CBR and VBR.
2023-08-09 18:12:47 -04:00
Gale 99c456b777 obs-qsv11: Add AV1 meta data
Enable content light meta data over the AV1 stream.
2023-08-09 18:12:47 -04:00
Gale 5b6967c359 obs-qsv11: Improve AV1 quality parameters
Enable B-frames for AV1 for Intel Arc Graphics and Meteor Lake Platform.
2023-08-09 18:12:47 -04:00
gxalpha 57cda30bd3 obs-browser: Disable Bluetooth support 2023-08-08 21:36:10 -04:00
Gale 61a3e4365b obs-qsv11: Remove MSDK headers 2023-08-07 13:23:26 -04:00
Gale dbbbcd8c57 obs-qsv11: Add VPL changes 2023-08-07 13:23:26 -04:00
Lain 796e2d5815
Merge pull request #9339 from tytan652/prevent_simde_contamination
Contain simde diagnostic pragmas and replace variable-length arrays
2023-08-05 17:10:33 -07:00
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
PatTheMav 57849bb0e7 obs-outputs: Refine certificate selection on macOS
Query for trusted and valid (based on datetime) certificates only.
2023-08-05 16:41:41 -07:00
tytan652 63a9d372bb mac-virtualcam: Replace variable-length arrays with NSMutableData
Co-authored-by: Patrick Heyer <PatTheMav@users.noreply.github.com>
2023-08-06 01:31:02 +02:00
tytan652 27630a8c0e linux-pipewire: Replace variable-length arrays with dynamic arrays
The in-tree simde is actually adding a pragma that makes -Wvla ignored
2023-08-06 01:31:02 +02:00
Lain 78cb2aa361 UI: Fix case where cef func may not be present
Due to a particular... plugin we all know and love, the new
QCefWidget::executeJavascript() function may not actually be present as
it should be. So, we have to verify that it's available, and only use it
in that case.
2023-08-05 04:35:31 -07:00
Lain 4af00587a6 obs-transitions: Fix stingers lingering on last frame
(This commit also modifies obs-ffmpeg)

This change was meant for track matte stingers to prevent the last frame
from having risk of flashing due to their transparent nature, but this
code had a negative side effect on normal stingers as well.

Fixes obsproject/obs-studio#8981
2023-08-04 11:13:31 -07:00
jpark37 b5c5f71cee graphics-hook: Handle VkImageViewUsageCreateInfo
Our solution for adding TRANSFER_SRC usage for imageless framebuffers
was triggering validation errors when combined with image view usage
overrides. Add TRANSFER_SRC onto usage overrides for swap chain image
views to fix mismatches.
2023-08-04 03:35:10 -07:00
Penwywern 182468b373 win-wasapi: Add hook signal and proc for process output capture 2023-07-30 14:06:53 -07:00
Penwywern 82beae249a win-capture: Add hook signal and proc for window capture 2023-07-30 14:06:53 -07:00
Penwywern 9d7a963386 win-capture: Add hook signal and proc for game capture 2023-07-30 14:06:53 -07:00
Penwywern e9c12b7d9d linux-capture: Add hook signal and proc for Xcomposite window capture 2023-07-30 14:06:53 -07:00
jpark37 f5f7ae3e7f decklink: Support 10-bit RGB capture
Don't drop to YUV if a pure RGB signal is available.
2023-07-29 16:41:31 -07:00
tytan652 c6ce50c9a3 deps,libobs,plugins: Remove in-tree Jansson
Jansson is provided by other means on any supported platform.
2023-07-29 16:37:14 -07:00
Norihiro Kamae 9ca55eea43 obs-qsv11: Downgrade minimum required CMake version 2023-07-29 16:07:54 -07:00
Norihiro Kamae df70743385 aja: Ignore return value from aja-common functions
The functions `aja::lower` and `aja::replace` overwrite the 1st argument
and just return the reference to the 1st argument. It is not necessary
to use the return value.
2023-07-29 16:04:16 -07:00
derrod 38d10934ee obs-outputs: Set videocodecid to HEVC/AV1 FourCC in E-RTMP 2023-07-26 05:13:43 -07:00
tytan652 cb5f65b529 obs-qsv11: Link against Libva on Linux 2023-07-25 15:29:52 -07:00
Carl Pédimina b12ed3008b win-capture: Fix leaking framebuffers data
The wrong linked list was used when removing framebuffer data.
Furthermore, a pointer referenced an object on the stack that
was no more valid.
2023-07-25 10:48:10 -07:00
James Hurley cca1cbf11b obs-outputs: Add log message on successful connection 2023-07-24 16:55:42 -07:00
James Hurley ba41613ab8 obs-outputs: Adopt Happy Eyeballs in RTMP
This commit adopts the happy eyeballs utility in the RTMP
output module, replacing the existing TCP connection logic.
2023-07-24 16:55:13 -07:00
Lain 93609e3e72 rtmp-services: Fix package.json not using correct ver.
Also bump the services.json version
2023-07-24 13:07:58 -07:00
E Jikan 6255267a4d
rtmp-services: Add "VStream" RTMP service (#9274) 2023-07-24 14:35:00 -05:00
derrod edf2c8210c cmake,plugins,build-aux: Remove enc-amf 2023-07-22 18:06:26 -07:00
Ryan Foster f7e6a5c8e7 obs-browser: Update version to 2.22.0
5292ff3 - Send events to all frames
5d74047 - Fix compilation on Windows and macOS
fbb9e84 - Remove obsolete translation RestartCEF
5e22a61 - Remove Qt 5 ifdef guards and code
72635d5 - Add JS interaction function, Fix "setStartupScript"
0f1ff75 - Replace json11 by Nlohmann JSON
2023-07-20 12:27:27 -04:00
gxalpha 9d611a064f cmake: Remove Qt version selection and Qt 5 support 2023-07-19 11:56:54 -04:00
pkv b15fc60d63 obs-ffmpeg: Fix rendezvous mode with SRT
Rendezvous mode with SRT protocol is used to punch through firewalls.
Although caller or listener mode are much more widespread, it is
sometimes in use. The rendezvous mode was broken in obs because we
would bind to the remote IP, instead of a local IP. This fixes the bug.
Note that there is also a bug in libsrt preventing our code to work.
But Version 1.5.2+ of libsrt fixes that.

Signed-off-by: pkv <pkv@obsproject.com>
2023-07-18 15:55:22 -04:00
nquah 8137eb5f56 obs-outputs: Enable HDR for HEVC over RTMP
Removes flag guard to enable HDR streaming for HEVC over Enhanced RTMP.
This functionality is currently only supported by YouTube.
See github.com/veovera/enhanced-rtmp for the Enhanced RTMP spec.
2023-07-18 14:43:32 -04:00
Paul Gregoire fc2f6e707f obs-webrtc: Add custom User-Agent and randomize SSRCs
Adds a custom User-Agent header to REST requests identifying OBS as the
client.

Randomizes SSRCs to avoid potential issues with servers that do not
rewrite them before forwarding.
2023-07-18 12:33:00 -04:00
CodeYan01 56b93c7601 obs-ffmpeg: Fix media source always STATE_ENDED
Previously would always end up with OBS_MEDIA_STATE_ENDED whether the
video reaches the end or the user stops the source (state is set to
STOPPED, but becomes ENDED right after). This fixes it so that if the
user stops the source, it will remain stopped.
2023-07-17 10:20:11 -07:00
gxalpha 8f4848a2b0 mac-capture: Set correct default type for application data 2023-07-16 02:00:39 +02:00
Georges Basile Stavracas Neto bdfead801e linux-pipewire: Explicitly handle NULL format strings
This is a workaround to the compiler complaining about directive
arguments being null.
2023-07-15 20:46:51 -03:00
Georges Basile Stavracas Neto 549c0f5850 linux-pipewire: Move portal signal subcription to portal.c
The D-Bus signal subscription is a very boring aspect of the
portals infrastructure that shouldn't really matter when reading
the code of pipewire.c.

Move it out to its natural place, portal.c.
2023-07-15 20:46:51 -03:00
columbarius 15b8c5b743 linux-pipewire: Add support for YUY2 2023-07-15 20:46:51 -03:00
columbarius 67f01c7a44 linux-pipewire: Add support for async sources
Cameras and audio streams will use the async output routines, but
not screencasting. This needs to be handled differently in the
processing callback.

As it is, the code is starting to get a bit messy, as we're now
dealing with two different frame processing approaches. Later on,
this code will be cleaned up and split in more logical pieces.

Co-authored-by: Georges Basile Stavracas Neto
<georges.stavracas@gmail.com>
2023-07-15 20:46:51 -03:00
Georges Basile Stavracas Neto c7e355e89c linux-pipewire: Store source when creating streams
We'll need to peek information about the source to determine how
to process frames, so store it for later usage.
2023-07-15 20:46:51 -03:00
columbarius 53ce8d5b65 linux-pipewire: Extend format_data
The media API requires it's own format (enum video_format) and
bytes per pixel (bpp).
2023-07-15 20:46:51 -03:00
Georges Basile Stavracas Neto 37fd856e91 linux-pipewire: Factor out format data in a struct
And use it instead of exhaustively open coding each field of
the anonymous struct into the arguments of the lookup function.
2023-07-15 20:46:51 -03:00
Georges Basile Stavracas Neto d40f5808f4 linux-pipewire: Move format info to streams
So far we've been treating format info on a per-connection basis,
but now that a single connection is capable of hosting multiple
streams, and each stream might negotiate a different format, it
is necessary to move format info to each stream individually.
2023-07-15 20:46:51 -03:00
Georges Basile Stavracas Neto 2f5c40b05b linux-pipewire: Track streams
Make obs_pipewire hold a list of streams created by itself, and
destroy these streams when closing the connection.
2023-07-15 20:46:51 -03:00
Georges Basile Stavracas Neto 330d54fada linux-pipewire: Separate PipeWire core and streams
Sorry, this is a painful commit to review :(

Until now, the only consumer of the PipeWire code is the screen
cast portal code. This portal code only ever has one PipeWire
connection, and one PipeWire stream, every time a monitor or a
window is selected. This is reflected on obs_pipewire, which only
handles a single stream for any given connection.

For cameras and audio, however, a single PipeWire connection can
and most likely always will provide multiple streams. For example,
computers with multiple webcams will have one PipeWire connection
reporting multiple PipeWire nodes, one node for each camera.

This commit breaks this one-stream-per-connection assumption, and
makes obs_pipewire_connect_stream() return an independent object
(obs_pipewire_stream) that represents a single stream.

The screencast portal code continues to only ever have one connection
and one stream.
2023-07-15 20:46:51 -03:00
Chensiyy 54568cb3bd win-wasapi: Fix PROPVARIANT variable has not be freed 2023-07-15 16:38:24 -07:00
Chris (Flaeri) e0293add61 obs-ffmpeg: Fix NVENC VBR maxBitRate set to avgBitrate
MaxBitrate gets correctly set during encoder init, and then promptly
overwritten by nvenc_update, which set max = (avg)bitrate
2023-07-15 16:31:19 -07:00
gxalpha 8fa84e874b mac-capture: Remove internal display settings from SCK Audio Capture 2023-07-15 16:19:02 -07:00
derrod 593664dcdb clang-format: Set AllowShortLambdasOnASingleLine to Inline 2023-07-15 16:14:55 -07:00
derrod dcc07cfe4e clang-format: Set AllowAllConstructorInitializersOnNextLine to false 2023-07-15 16:14:55 -07:00
derrod 1739272c44 clang-format: Set AllowAllArgumentsOnNextLine to false 2023-07-15 16:14:55 -07:00
Staacks 22ea121f7c win-dshow: Add support for grayscale MJPEG 2023-07-15 16:09:32 -07:00
Staacks 79d77ddf90 linux-v4l2: Add support for grayscale MJPEG 2023-07-15 16:09:32 -07:00
Kurt Kartaltepe b8ccaf5649 obs-qsv11: Add adapter checks for Linux
This moves the existing adapter checking into the platform layer and
moves the Windows implementation to its platform implementation and adds
a Linux implementation based on directly querying VA-API.

Unlike Windows, this check takes ~1ms so we have no need to spin out
another thread to perform the work. This also fixes up some of the CPP/C
mixing going on in common_utils."h" to allow us to call common functions
from C files.
2023-07-14 12:19:33 -04: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
derrod 578dc46a79 obs-ffmpeg: Remove legacy FFmpeg compatibility 2023-07-12 15:57:43 -04:00
derrod 46aea3fc70 win-dshow: Remove legacy FFmpeg compatibility 2023-07-12 15:57:43 -04:00
Norihiro Kamae 021826175b obs-ffmpeg: Remove outdated comment 2023-07-12 13:54:50 -04:00
PatTheMav a44d1b2dce obs-qsv11: Fix missing ENABLE_HEVC definition for test executable 2023-07-12 12:56:51 -04:00
Ryan Foster a167d7f916 obs-filters: Fix legacy CMake obs_status for RNNoise
Setting ENABLE_RNNOISE to OFF would result in SpeexDSP being logged as
disabled. Correct the CMake logging.
2023-07-12 12:10:20 -04:00
Ryan Foster b2405e465a obs-webrtc: Fix CMake 3.0 module disabled path
The CMake 3.0 path used the old syntax for logging if the module was
disabled. Update this to use target_disable to match the syntax in other
CMake 3.0 paths.
2023-07-12 11:42:17 -04:00
Ryan Foster 7cf7fd0117 obs-webrtc: Fix legacy CMake obs_status call
An additional stray comma resulted in an incorrectly formatted status
message in the CMake log.
2023-07-12 11:42:17 -04:00
Service Checker 7166115cde rtmp-services: Remove defunct servers/services 2023-07-09 01:21:10 +02:00
David Rosca 5fdda179ed obs-ffmpeg: Increase initial buffer fullness for VAAPI
Default ffmpeg initial buffer fullness (75%) is too low
and results in significantly lower video quality on AMD cards.

Changing it to 100% fixes the quality and also matches what
AMF encoder is doing.
2023-07-08 16:19:43 -07:00
derrod 046719f65a win-capture: Enable compatibility data updates by default 2023-07-09 09:14:31 +10:00
Kurt Kartaltepe dc2f2f157b obs-qsv11: Remove Windows references from common files
This cleans up the fairly arbitrary Windows includes and types and
unused functions from the common code and replaces them with platform
independent equivalents, or platform specific implementations in
common_utils.

This removes the Windows 8 support to avoid adding an additional
platform function to query this. OBS only supports Windows 10
officially, so it's about time we removed it.
2023-07-05 19:52:10 -04:00
Kurt Kartaltepe 6acb16840d obs-qsv11: Simplify tracking of which allocator is used
Replace the checks based on D3D11 and D3D9 to check a more informative
variable aptly named UseTexAlloc for which memory allocator should be
used within the encoder.
2023-07-05 19:52:10 -04:00
Kurt Kartaltepe f473f45e03 obs-qsv11: Avoid overwriting encoding parameters
The query being done will ovewrite ALL invalid parameters. This results
in invalid parameters that are not LowPower settings being overwritten
with 0 either introducing different errors or possibly different
behavior.
2023-07-05 19:52:10 -04:00
PatTheMav 914951a28d mac-virtualcam: Fix use of collection without explicit type
Swift 5.0 requires empty collections to carry explicit type definitions.
2023-07-04 15:41:12 +02:00
gxalpha 290570b819 mac-capture: Use error code constant instead of magic number 2023-07-03 16:52:50 +02:00
gxalpha e8602897d7 mac-capture: Add button to reactivate stopped capture 2023-07-03 15:35:04 +02:00
gxalpha 89124e223e mac-capture: Remove unneeded debug log
This log line was introduced in 239e9273d and looks like it was for
debugging purposes. It always prints an error message when an SCK audio
capture source was successfully created.
2023-07-02 23:57:48 +02:00
gxalpha 38f63473fc mac-capture: Mark CoreAudio output capture source as deprecated 2023-07-01 16:51:28 +02:00
Luke Strickland aedc3aa64b rtmp-services: Remove Glimesh service 2023-07-01 12:26:43 +02:00
Norihiro Kamae 97356de0e8 vlc-video: Define media file array type for function parameter lists
To avoid passing `struct darray *` type, which cannot hold the type
information, this commit defines array types and uses that types on the
function parameters.
2023-07-01 00:39:13 -07:00
Norihiro Kamae 4359489f81 image-source: Define image file array type for function parameter lists
To avoid passing `struct darray *` type, which cannot hold the type
information, this commit defines array types and uses that types on the
function parameters.
2023-07-01 00:39:13 -07:00
Norihiro Kamae 097e011194 obs-ffmpeg: Define DARRAY macro type
Passing struct darray type will loose the actual type of the contents.
Uses a defined type of `DARRAY(struct encoder_packet)` to carry the
type when crossing functions.
2023-07-01 00:39:13 -07:00
jcm 239e9273dc mac-capture: Add macOS Audio Capture 2023-06-30 23:59:20 +02:00
jcm 1152173742 mac-capture: Rename 'mac-screen-capture.m' 2023-06-30 23:59:20 +02:00
jcm ce5f391c73 mac-capture: Refactor macOS Screen Capture 2023-06-30 23:59:20 +02:00
PatTheMav 89625715fc cmake: Fix configuration errors with Windows legacy path
By default Windows builds use the legacy CMake code paths, which ideally
work as-is with existing build directories.
2023-06-30 11:56:57 -04:00
PatTheMav db895092ed 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-06-29 10:11:32 -04:00
PatTheMav 0a56e6f357 enc-amf: Update submodule to 2.8.0.1 2023-06-29 10:11:32 -04:00
Ruwen Hahn 526990d37c obs-ffmpeg: Enable GPU scaling for AMF texture encoder 2023-06-26 13:32:25 +02:00
Ruwen Hahn eb260cddc2 obs-qsv11: Allow GPU scaling for texture QSV encoder 2023-06-26 13:32:25 +02:00
Ruwen Hahn 4a5a2d1111 obs-ffmpeg: Allow GPU scaling for obs-nvenc 2023-06-26 13:32:25 +02:00
pkv ba92140f2b rtmp-services: Enforce encoder settings per protocol
For mpegts output, used in rtmp-custom service, encoder settings
require:
- ADTS with fdk-aac.
For all non-rtmp protocols, one also requires:
- video encoder header repetition;
This future proofs the code against protocol addition.

Additionally, I've added a check against NULL audio settings, which was
in my fork but that I forgot to add in the PR [1].

[1] https://github.com/obsproject/obs-studio/pull/6163

Signed-off-by: pkv <pkv@obsproject.com>
2023-06-24 17:11:33 -07:00
Yoshimasa Niwa 00c67e59e6 mac-capture: Improve various Objective-C code
Improve complicated Objective-C implementations in
mac-screen-capture implementation.

- Use `for` instead of overuse of block based iteration code.
- Use `YES` and `NO` for `BOOL` type instead of wrong `TRUE`, `FALSE`,
  `true`, `false`.
- Use `length` to check empty string, omit unnecessary `nil` checks.
2023-06-24 16:58:09 -07:00
Yoshimasa Niwa 36abf04afa mac-capture: Fix show hidden windows option
`screen_capture_build_content_list` or similar calls uses updated
`sc->show_hidden_windows` or similar flags, but these are not set
before calling these functions.
2023-06-24 16:56:40 -07:00
CodeYan01 69e8b73684 obs-ffmpeg: Fix media source playing when inactive 2023-06-24 16:55:41 -07:00
Mattias Landin b9dcbfb953 rtmp-services: Update Vindral servers 2023-06-24 16:11:03 -07:00
CodeYan01 d1a7070d10 obs-ffmpeg: Prevent media source restart
Some options do not require a media source restart. Saving source
unchanged source settings should also not trigger a restart.

I tried to also make it so speed changes do not require a restart by
manipulating the elapsed timestamp  for the source, but it sometimes
causes the first few milliseconds after saving settings to be rough or
slightly distorted. I am also unsure whether a/v frame buffers should be
cleared on a speed change (and how to) so I made it so restarts are
required for speed changes. Chiyo also mentioned that successive quick
speed changes will cause maximum audio buffering (which I was able to
reproduce once).

Nonlocal file playback is unaffected, and will cause the media source to
restart because I am not aware of the possible consequences and because
there's no restart button for it.

Changing "Apply alpha in linear space" is only visible after a few
milliseconds (when mp_media_next_video is called for new frames).

If `is_stinger` and `full_decode` are toggled during runtime, even
though it shouldn't be possible as they are not accessible in the UI,
a media restart will be triggered.
2023-06-23 04:39:52 -07:00
Norihiro Kamae dcb5b0785b linux-capture: Remove obsolete property swap_redblue
The implementation to swap red and blue by the property was removed by
9b6d39299e but the property was left.
2023-06-22 09:26:27 -03:00
Norihiro Kamae 43f7c8c928 text-freetype2: Fix not updating chat log mode property 2023-06-17 16:35:47 -07:00
田七不甜 038109fb1b rtmp-services: Update Bilibili Live 2023-06-17 16:28:04 -07:00
Norihiro Kamae 68cb7a31f1 obs-filters: Don't compile audio delay code in async-delay-filter 2023-06-17 16:15:33 -07:00
PatTheMav 0b325c0e34 cmake: Add separate function to set Xcode-based target properties 2023-06-17 12:23:33 -04:00
PatTheMav 59904a66a3 cmake: Update Framework link definition for macOS builds 2023-06-17 12:23:33 -04:00
PatTheMav 9805b706d1 cmake: Remove legacy files for macOS builds 2023-06-17 12:23:33 -04:00
PatTheMav 50a4e83251 cmake: Remove Info.plist template files for macOS builds
Creation of Info.plist files through Xcode is more canonical and
future-proof, as it will automatically pick up changes/updates
introduced by Apple. Non-standard keys can still be added via a
template file, which will then be extended by Xcode with the default
keys.
2023-06-17 12:23:33 -04:00
PatTheMav eb3d9963a0 cmake: Update macOS compiler configuration
Compiler extensions are disabled before the first `project` call to
force CMake into considering compilers to not support GNU extensions
(even though clang and gcc do).

Also sets common clang compiler options so they can be used across all
supported platforms.

`openmp-simd` support is enabled by default as there is no performance
penalty on x86_64 systems and intrinsics are enabled on arm64.

Also implements CMake's `CMAKE_COMPILE_WARNING_AS_ERROR` flag to
enable the desired behavior and configuration time.
2023-06-17 12:23:33 -04:00
gxalpha 1edd997c49 mac-syphon: Remove unused OBSSyphonKVObserver 2023-06-17 16:36:08 +02:00
gxalpha fc6bbb73f2 mac-capture: Fix wrong CFString to NSNumber cast 2023-06-17 16:35:13 +02:00
gxalpha 59b5b07400 mac-capture: Add SCStreamDelegate to stream to log capture errors 2023-06-17 16:33:52 +02:00
Huts, Roman 94d0b654f0 obs-ffmpeg: Fix logic in one of the AMF preset fallback checks 2023-06-16 18:37:07 -04:00
PatTheMav 3d78c23db8 obs-outputs: Silence all ftl-sdk warnings
The FTL SDK is outdated and not actively maintained - the warnings are
known and acknowledged, so there is no need to further pollute the
build output with them.
2023-06-16 14:12:58 -04:00
PatTheMav fffbf6c801 obs-outputs: Fix clang warnings about unreachable code 2023-06-16 14:12:58 -04:00
PatTheMav 0235ac2fb2 mac-virtualcam: Use explicit access to object members in async block 2023-06-16 14:12:58 -04:00
PatTheMav 53cfe5cb7f mac-videotoolbox: Remove unreachable code to fix clang warning 2023-06-16 14:12:58 -04:00
PatTheMav 4c4a4f9d9f mac-capture: Fix clang warning about unreachable code 2023-06-16 14:12:58 -04:00
PatTheMav 5a7b95cd8c obs-outputs: Silence clang warning about questionable use of comma 2023-06-16 14:12:58 -04:00
PatTheMav 3ca56fee84 libobs: Silence clang warnings for empty prototypes without void
clang expects an empty prototype to explicitly use `void`.

Also silences the warning in `libobs-opengl`, `obsglad`, `caption`,
`mac-syphon` and `obs-x264-test`.
2023-06-16 14:12:58 -04:00
Ryan Foster ced135a68e obs-websocket: Update version to 5.2.3 2023-06-15 21:01:09 -04:00
gxalpha 83be21a60d mac-syphon: Remove syphon-framework submodule 2023-06-15 13:08:41 -04:00
gxalpha 6e7e4acb93 mac-syphon: Update Syphon, use obs-deps framework
Updates the syphon to use the Syphon.framework from obs-deps instead of
the submodule.
The submodule however was not updated in 9 years and additionally had
custom patches, compared to the obs-deps release that's built on the
current git commit of Syphon, meaning that some code changes are
necessary. It would be nice to split the code and cmake changes into
multiple commits (where the first would update the submodule and contain
the plugin code changes, and the second switch the cmake away from the
submodule to the obs-deps release), but it really doesn't make sense to
update the submodule first if it gets removed anyways.

Adds a subclass for SyphonClientBase that is responsible for receiving
the frames. This has the advantage that it doesn't need an OpenGL
context like the existing SyphonOpenGLClient, and can just return an
IOSurface directly (without some kind of middleman).
2023-06-15 13:08:41 -04:00
PatTheMav f8e00d6071 clang-format: Update formatting of all ObjC and ObjC++ files 2023-06-11 14:56:45 +02:00
gxalpha 575c085f7a text-freetype2: Improve text/file properties UX 2023-06-10 23:50:57 -07:00
columbarius a2b8ff2e35 linux-pipewire: Skip processing video buffer if import failed
After a failed import we should signal buffer renegotiaten and then just
skip processing this videobuffer.
2023-06-10 17:03:19 -07:00
gxalpha 5cba879dd5 obs-webrtc: Use old obs_output functions
The obs-webrtc PR was merged before 79822a58c, but the PR of 79822a58c
was not rebased on latest master before being merged. As such, the
usages of the obs_output_*2 functions was not removed by that PR.
2023-06-10 16:52:56 -07:00
gxalpha 79822a58c3 libobs,plugins: Remove new obs_output_*2 functions
Effectively reverting parts of d314d47, this commit removes the new
functions that got added to remove the flags parameter. Instead, it just
marks the parameter as unused and documents this. Having what is
effectively an API break just to remove a parameter is a bit overkill.
The other parts of d314d47 which cleaned up the usage of the flags
parameter are untouched here.
2023-06-10 16:13:05 -07:00
gxalpha 2ea47bb65a mac-capture: Explicitly set clear background for SCK 2023-06-10 11:30:23 -07:00
Colin Edwards 8d387a3e68 More copyright/name updates 2023-06-10 13:23:51 -05:00
gxalpha a7dffb98a5 rtmp-services: Remove extraneous comma in schema 2023-06-09 22:36:51 -05: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
Sean DuBois ed577a05aa libobs: Add bearer token to obs_service_connect_info
This adds a new OBS_SERVICE_CONNECT_INFO_BEARER_TOKEN which is needed for WHIP output.

Signed-off-by: pkv <pkv@obsproject.com>
2023-06-09 20:20:49 -05:00
Chase Adams d61e802a34 rtmp-services: Add Livepeer Studio 2023-06-09 14:45:10 -07:00
Richard Stanway b756c78f44 win-capture: Skip compat helper matching if properties are null
Fixes compatibility messages appearing when no window is selected
in window capture properties.
2023-06-09 04:46:10 -07:00
Gol-D-Ace d3df414603 win-capture: Add Honkai: Star Rail to compatibility list 2023-06-09 04:45:26 -07:00
wangshaohui e6431af50b win-capture: Render nothing if window is iconic 2023-06-08 00:32:56 -07:00
rhutsAMD 4bfe291520 obs-ffmpeg: Consider requested throughput in AMF preset fallback 2023-06-06 18:27:56 -07:00
gxalpha abd472cd31 mac-capture: Use system CGDisplayStream.h header on macOS 14 and newer
ee3c2d0 introduced a local copy of the CGDisplayStream.h header as the
macOS 13.3 SDK erroneously declared functions as unavailable on older
systems. This has been fixed in the macOS 14 SDK with the functions
correctly being declared as available on 10.8, so we can use the system
header again, and in the future remove the local copy once our minimum
compile version is new enough.
2023-06-06 19:07:13 -04:00
Colerar eab9cb0e49
mac-capture: Sort SCK application and window lists alphabetically 2023-06-04 13:11:04 +02:00
Huts, Roman 275bb344d8 obs-ffmpeg: Fix AMF encoder reconfiguration
Must Flush() or Drain() before ReInit()
2023-06-03 14:37:57 -07:00
gxalpha ded9aba106 mac-videotoolbox: Remove encoder sorting 2023-06-03 13:48:47 -07:00
PatTheMav 2966c4030e libobs: Use static library for version string information
Switching to a static library that contains version information as
const char strings has multiple benefits:

* The version information provided externally via compiler definitions
  will fail compilation early if malformed
* An updated version string (which will happen with every commit) will
  not invalidate existing compilation units, because only the static
  library is affected by the change
* An update of the version change just requires a recompilation of the
  static library and a linker update
* An update of the version will _not_ infect the rest of the codebase
  (as it does currently, because everything includes obsconfig.h one
  way or another)
* Other modules which used the macro definition directly have been
  updated as much as possible to use the proper getter method from
  `libobs` instead (some Windows-specific modules use preprocessor
  string composition, the value has been added as a compiler definition
  directly in those cases)
* Because the impact of a version change due to a commit hash change
  is limited to the static library, ccache hit rates should be
  improved considerably
2023-05-27 16:48:24 -07:00
Norihiro Kamae 4fb2bc38de text-freetype2: Fix crash after reaching buffer size
The texbuf has a fixed size that won't expand. When a lot of multi-byte
characters has arrived, it overflow and src_glyph becomes NULL.
2023-05-27 16:28:48 -07:00
Vainock 177b3f5a0f linux-alsa: Make 2 strings translatable 2023-05-27 16:24:57 -07:00
gxalpha 2a4c8594a1 mac-virtualcam: Release pixel buffer pool for DAL as well
The pixel buffer pool is used to create pixel buffers with both the CMIO
extension and the DAL plugin. As such, it is created independent of
which camera type is used, and should be released independent of it as
well.
2023-05-27 17:37:11 +02:00
Richard Stanway 48a0e7822a
obs-outputs: Remove support for "RTMP Go Away" feature (#8959)
Meta have filed a patent application on the Go Away feature. This goes
against the spirit of free software and puts the use of this feature in
questionable legal status, so let's remove this code until the patent
situation is resolved.

This reverts commits a593fe6755 and
dada82fec1.
2023-05-26 13:55:48 -05:00
gxalpha 8151785c45 mac-virtualcam: Adjust admin privilege strings to use Apple terminology 2023-05-25 14:50:44 -04:00
gxalpha a874c19bef mac-virtualcam: Fix admin password locale string 2023-05-23 03:58:34 -07:00
CodeYan01 1d45881fcb obs-ffmpeg: Add option to disable settings logging
Allows plugins to disable the logging of settings every time the ffmpeg
source is updated, by passing "log_changes" as true in the settings.
2023-05-20 17:52:56 -07:00
Exeldro d9bb556c97 win-dshow: Set audio only active when there is audio 2023-05-20 17:21:40 -07:00
David Rosca 17cb966c62 obs-ffmpeg: Add FFmpeg Options for VA-API 2023-05-20 16:56:39 -07:00
PatTheMav fb9b5c829a mac-capture: Switch to UUID-based display management
Using UUIDs to store display references in obs-studio's settings file
allows us to "rediscover" devices even between restarts
(as CGDirectDisplayID changes between those) and select the same device.
2023-05-20 16:50:16 -07:00
tt2468 d314d4725d libobs, plugins: Deprecate obs_output_t functions with flag parameters
This deprecates the following functions, replacing them with new
versions:
- `obs_output_can_begin_data_capture()` - now `*capture2()`
- `obs_output_initialize_encoders()` - now `*encoders2()`
- `obs_output_begin_data_capture()` - now `*capture2()`

The flags parameter was initially designed to support audio-only or
video-only operation of an output which had the `OBS_OUTPUT_AV` flag,
however, full support for that was never implemented, and there are
likely fundamental issues with an implementation, mainly that most
outputs are programmed assuming that there will always be at least one
audio and one video track. This requires new flags specifying support
for optional audio/video, among other things.

An implementation to allow audio/video to be optional is best done
using the flag technique above, with audio/video enablement specified
by whether media (raw, `video_t/audio_t`) or encoder (`obs_encoder_t`)
objects are specified.

Since every implementation I could find always specifies `flags` as 0,
I was able to safely conclude that immediately removing the parameter's
functionality is safe to do.
2023-05-20 16:41:55 -07:00
gxalpha 47d6d7e943 mac-virtualcam: Omit enqueue result codes 2023-05-21 01:35:43 +02:00
Norihiro Kamae 1291461219 win-dshow: Remove obsolete translation
A commit f50aa5e01b added a translation ConfigureAudio but never used.
2023-05-20 16:35:05 -07:00
Norihiro Kamae 7a3486ba6d win-capture: Remove obsolete translation
A commit 80b4a65cd2 added a translation `Method.Auto` but the source
code uses `WindowCapture.Method.Auto` instead.
2023-05-20 16:35:05 -07:00
Norihiro Kamae 82ea5aaa48 obs-qsv11: Add missing translation 2023-05-20 16:35:05 -07:00
Norihiro Kamae e9b65d58bb obs-outputs: Add missing translations 2023-05-20 16:35:05 -07:00
Norihiro Kamae efa69ab0bd obs-filters: Remove obsolete translation in expander-filter
Expander.None was never used.
2023-05-20 16:35:05 -07:00
Norihiro Kamae 38b4cce99e obs-filters: Add missing translation in chroma-key-filter
A selection Custom for a property key_color_type was not translated.
Use the same translation key CustomColor as color-key-filter.
2023-05-20 16:35:05 -07:00
Norihiro Kamae d9c34eff8b obs-ffmpeg: Add missing translations
The name of the obs_output_t won't appear in usual operation but some
output types have the translation and others do not. Let's translate
them.
Also translate `FilePath` property name.
2023-05-20 16:35:05 -07:00
Norihiro Kamae abb92878f1 obs-ffmpeg: Add missing translations 2023-05-20 16:35:05 -07:00
Norihiro Kamae 4aaffe16ec obs-ffmpeg: Remove obsolete translations
A commit 4e140d2ff added AMF error messages but they were never used.
A commit 45d029b1f removed some code but a translation key "Advanced"
was left.
A commit 77fbfbe5c removed code to translate NVENC.TooManyBFrames but
the translation key was left.
A commit 6cc7cf3d5 removed the code to select codecs but the translation
was left.
2023-05-20 16:35:05 -07:00
Norihiro Kamae 9c7d535b13 mac-videotoolbox: Remove obsolete translation
A commit e461ec4be1 added a translation key "VTEncoder" but never used.
2023-05-20 16:35:05 -07:00
Norihiro Kamae fe626f444c mac-syphon: Remove obsolete translations
A commit f9cf458c1 removed syphon-inject but translations were left.
2023-05-20 16:35:05 -07:00
Norihiro Kamae 21144b7200 mac-avcapture: Add missing translation 2023-05-20 16:35:05 -07:00
Norihiro Kamae 05bc8c4ff1 linux-pulseaudio: Add missing translation 2023-05-20 16:35:05 -07:00
Norihiro Kamae 6815c09aba linux-capture: Remove obsolete translation
"LockX" was added by 15fb027647 and removed by later commit 1604400e4.
2023-05-20 16:35:05 -07:00
Norihiro Kamae 33f1f198fa linux-alsa: Add missing translations 2023-05-20 16:35:05 -07:00
Lain 106c7aa61f Update copyrights/names 2023-05-20 01:31:18 -07:00
gxalpha 0cc7ea7a2a mac-videotoolbox: Fix incorrect keyframe interval calculation 2023-05-18 18:28:53 -04:00
PatTheMav 3f85e447a8 mac-virtualcam: Add Camera Extension to main CMake plugin project
Camera Extensions require specific entitlements for the hosting app,
which also require a provisioning profile. To avoid breaking local
builds that do not require the camera extension, an additional
entitlements file that will not trigger the provisioning profile
requirement will be used if the virtualcam (but not the Camera
Extension) is configured.
2023-05-18 14:41:08 -04:00
gxalpha aae2f7e8ff mac-virtualcam: Update obs-plugin to support macOS camera extensions
Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
2023-05-18 14:41:08 -04:00
gxalpha 5c6e471a56 mac-virtualcam: Add macOS camera extension project
Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
2023-05-18 14:41:08 -04:00
columbarius 155fb8ad8f linux-pipewire: Support colour format GS_R10G10B10A2
PipeWire supports 10bit colour formats with little endian order.

Adding two new formats required increasing the buffer size for building
PipeWire buffers.

This formats are supported since PipeWire 0.3.41. To allow building
against
older PipeWire versions we will hide those formats. Complications when
running on a host with an older PipeWire version are not expected, since
format negotiation is only done via the numerical values.
2023-05-17 16:35:43 -03:00
tytan652 6e887f8158 obs-ffmpeg,cmake: Replace external folder by obs-deps headers 2023-05-13 17:06:39 -07:00
PatTheMav f7ec81ca12 obs-outputs: Fix keychain API deprecation warnings on macOS 2023-05-13 16:59:42 -07:00
PatTheMav 585152c566 mac-capture: Add option to hide OBS windows in desktop capture 2023-05-13 16:55:11 -07:00
Florian Zwoch 8b816eba8e obs-ffmpeg: Fix compilation when ENABLE_HEVC is not set
When ENABLE_HEVC is not set the 'bool hevc' function parameter
is not being used in this function causing a warning and aborting
compilation.
2023-05-13 16:12:25 -07:00
gxalpha d63ed016b4 obs-websocket: Update submodule to pull translations 2023-05-07 11:11:12 -07:00
gxalpha be42d97315 mac-syphon: Remove macOS 10.15-only code
The minimum version of macOS for OBS is 11.0 now, so this can be removed
2023-05-06 16:24:20 -07:00
PatTheMav f20f788d0b mac-capture: Fix possible division by zero error
Possibility of `mChannelsPerFrame` being 0 is not properly covered by
current code, which will result in a division-by-zero error.
2023-05-06 16:15:30 -07:00
Richard Stanway ba0c273846 obs-ffmpeg: Show error if trying to use AV1 fallback 2023-05-05 15:58:13 -04:00
Jim 8dbc4761a3 linux-pipewire: Reduce debug message verbosity 2023-05-02 01:50:13 -07:00