3126 Commits

Author SHA1 Message Date
jp9000
e8d366f789 obs-ffmpeg/ffmpeg-mux: Allow codecs of any type
Allows the ability to mux with a codec which may not actually have an
encoder implementation within the current build of FFmpeg
2021-10-25 12:24:16 -07:00
jp9000
6534bf5834 obs-x264: Move options parser to its own lib 2021-10-25 12:24:16 -07:00
Jim
355eb4b8df
Merge pull request #5269 from jpark37/wasapi-cleanup
win-wasapi: WASAPISource improvements
2021-10-24 02:16:40 -07:00
Tommy Vercetti
31187d6997 obs-qsv11: Add ENABLE_QSV11 option 2021-10-24 02:13:04 -07:00
Tommy Vercetti
232c35cc22 obs-filters: Add libSpeexDSP guard to method
`method` should be used under the same condition as they were defined. That is when both `LIBRNNOISE_ENABLED` and  `LIBSPEEXDSP_ENABLED` are defined.
2021-10-24 02:02:53 -07:00
vishakh-h
c7f095ebd7 rtmp-services: add "Jio Games" 2021-10-24 00:46:33 -07:00
Aidan Delaney
f319556dc1 obs-qsv11: Add plain-text copy of QSV11 email chain
Add a plain-text copy of the email chain that clarifies Intel's
position on the license of the QSV11 code.
2021-10-24 00:39:09 -07:00
Aidan Delaney
134ffe924f obs-qsv11: Remove Intel NDA from qsv11 plugin
Intel committed an NDA disclaimer on each source file.  The stated
intention was that the NDA "added to OBS doesn't apply to open source
code once it's been accepted by the community. You can remove it for
your modifications".  This quote is from an email chain involving
Intel's legal team and developers.  The NDA in the source files
mistakenly triggers source code scanners that look for license
violations.  I have removed the comments that contain the NDA.
2021-10-24 00:39:09 -07:00
gxalpha
4a50e62120 mac-virtualcam: Remove unnecessary plugin version number 2021-10-24 00:22:53 -07:00
Norihiro Kamae
499af309b5 obs-ffmpeg: Fix unwritten audio-only output
When video is disabled, no audio was sent to the container so that the
audio was not saved. Prior to this change, all audio was discarded until
the first video packet arrives. This change limits to discard audio only
if video is available.
2021-10-24 00:02:32 -07:00
gxalpha
fab23d523b mac-virtualcam: Remove unneeded includes 2021-10-16 15:27:51 -07:00
Alexis King
08d4456339 v4l2: Ignore menu controls with no permissible values
At least one V4L2 device reports a menu control when queried with
QUERYCTRL yet does not report supporting a single value in its legal
range when queried with QUERYMENU. Such devices are arguably
ill-behaved, but the Linux UVC driver takes no special care to ignore
such pathological controls, so we have to do it ourselves.

Without this patch, a menu control with no valid values would cause
v4l2_control_changed to go into an infinite loop, since every S_CTRL
request on such pathological control properties would always fail,
triggering an additional modification event. By ignoring these
properties altogether, we avoid that problem, and the user benefits by
not having the UI cluttered by a confusing and useless menu control.
2021-10-16 15:24:20 -07:00
Ryan Foster
424128a825 clang-format: Commit file changes for clang-format 11 2021-10-13 20:00:04 +11:00
jpark37
c8d0597358 win-wasapi: Log settings 2021-10-10 19:53:27 -07:00
jpark37
ab7d370ada win-wasapi Improve default device handling
Remove lastNotifyTime throttle. Could ignore last device notification.
Will bring back if necessary, but seemed like overkill.

Make isInputDevice const for safety.

Make isDefaultDevice atomic. Allows it to be accessed simultaneously
from settings and notification callback threads. Race between setting
change in OBS and Windows is not a problem, a signal will be sent after
both to consolidate. Worst that should happen is a redundant reconnect
cycle.

Only read/write default_id from notification callback for thread safety.
2021-10-10 19:53:27 -07:00
jpark37
24d82062ae win-wasapi: Schedule work on real-time work queue
MS claims it can schedule audio better if we use their API.
2021-10-10 19:53:27 -07:00
jpark37
d1230c292e win-wasapi: Register capture thread with MMCSS
Ensure audio gets more priority to help prevent glitching.
2021-10-10 19:53:27 -07:00
jpark37
a995c305b7 win-wasapi: Remove bools and persist threads
This simplifies synchronization, and fixes several races.
2021-10-10 19:53:27 -07:00
jpark37
a504691af8 win-wasapi: Clean reset on initialization failure
Do not store IAudioClient and IAudioCaptureClient onto the source object
until initialization is almost complete, right before the capture thread
is created. We don't to retain objects from failed attempts. Also clear
them when stopping.
2021-10-10 19:53:26 -07:00
jpark37
b166b0488b win-wasapi: Remove unnecessary inline tags 2021-10-10 19:53:26 -07:00
jpark37
49aa9074f8 win-wasapi: Remove undefined function InitName 2021-10-10 19:53:26 -07:00
jpark37
88164affae win-wasapi: Rename InitRender to ClearBuffer
We no longer persist the render client.
2021-10-10 19:53:26 -07:00
jpark37
5a2e884d14 win-wasapi: Simplify sample rate logging 2021-10-10 19:53:26 -07:00
jpark37
4503c4fdac win-wasapi: Remove persistent references
Only need IMMDevice and IAudioRenderClient during initialization.
2021-10-10 19:53:26 -07:00
jpark37
15f9d37aef win-wasapi: Persist objects beyond Start/Stop
Initialize IMMNotificationClient and IMMDeviceEnumerator in constructor
to simplify cleanup and initializaiton. Both can survive a reset.
2021-10-10 19:53:26 -07:00
jpark37
12442c3e57 win-wasapi: Make InitDevice throw to log errors 2021-10-10 19:53:26 -07:00
jpark37
8f33e01b84 win-wasapi: Fix incorrect log strings 2021-10-10 19:53:26 -07:00
jpark37
5f2d0456bc win-wasapi: Mark GetWASAPIAudioDevices_ as static 2021-10-10 19:53:26 -07:00
jpark37
8ce1bb645f win-wasapi: Remove monitor invalidation code
The previous monitor recovery logic touches the source monitoring type,
resets the monitor even if the output device hasn't been invalidated,
and was susceptible to races. Monitor invalidation should live within
the monitor abstraction.
2021-10-10 19:22:35 -07:00
jpark37
cf6e106939 obs-outputs: Remove unnecessary header 2021-10-10 19:12:45 -07:00
jpark37
e581802812 obs-outputs: Remove WIN32_LEAN_AND_MEAN define
It should already be defined near the Windows.h include.
2021-10-10 19:12:45 -07:00
jpark37
d4bf7d4c23 coreaudio-encoder: Remove NO_MIN_MAX
Misspelled NOMINMAX is unnecessary.
2021-10-10 19:12:45 -07:00
jpark37
13d8f1127f obs-text: Update header for ARM64 compile 2021-10-10 19:12:45 -07:00
jpark37
7e854581a7 decklink: Make header self-sufficient 2021-10-10 19:12:45 -07:00
Matt Gajownik
c3d6e7a7c4 vlc-video: Improve logging with prefix & VLC version 2021-10-10 10:52:43 +11:00
jpark37
6a288b255a win-capture: Use DPI context for game capture
Fixes cursor position for windows unaware of DPI.

Only works on Windows 10 1607 and above.
2021-10-09 15:45:55 -07:00
jpark37
3706a21327 win-capture: Use DPI context for window BitBlt
Fixes GetClientRect and cursor position for windows unaware of DPI.

Only works on Windows 10 1607 and above.
2021-10-09 15:45:55 -07:00
jpark37
cadd83f786 obs-browser: Filter textures in linear space 2021-10-01 10:00:09 -07:00
jp9000
9deb8fe292 win-capture: Update graphics hook version to 1.7.1
Makes sure that OBS updates its graphics hook version
2021-09-28 10:08:55 -07:00
Kurt Kartaltepe
3e2ad118b9 linux-capture: Fail when libdrm missing
I forgot to extend the FATAL_ERROR messages to include libdrm.
2021-09-25 15:27:51 -07:00
Matt Gajownik
79f98f8fb8 obs-browser: Update translations from Crowdin 2021-09-25 17:31:24 +10:00
Matt Gajownik
cc2831e8b3 obs-browser: Update version to 2.16.2
Translate common SSL error codes on browser panel load failure
2021-09-25 09:27:41 +10:00
Vainock
11a690b038 Update translations from Crowdin 2021-09-24 09:42:08 -07:00
Kurt Kartaltepe
7384f6f061
linux-capture: Add libdrm dependency check (#5326)
We require libdrm for its header so add the cmake module and header path
to the build. We don't need to link libdrm though so we dont add it to
libraries.
2021-09-23 13:05:53 -05:00
columbarius
7bc06e0db6 linux-capture: Omit implicit modifier token when creating texture
DRM_FORMAT_MOD_INVALID is a token for implicit modifier. When importing
a DMA-BUF with implicit modifier we should call
gs_texture_create_from_dmabuf() without modifier.
2021-09-21 12:57:49 -03:00
Thomas Schnitzler
22f5e68121 win-dshow: Don't buffer Elgato Facecam device by default
Buffering should be disabled for Elgato Facecam in "Auto-detect" mode to
prevent latency changes over time
2021-09-20 18:42:36 -07:00
Georges Basile Stavracas Neto
ef0540c0d7 linux-capture: Lookup session handle without typechecks
g_variant_lookup() obligatorily receives the type of the variant to
lookup. This function is used when retrieving the session handle
from the portal's response, and the variant type passed is "s" (a
string).

However, xdg-desktop-portal had a bug: the documentation explicitly
mentions that the session handle is an object path (of variant type
"o"), but it passed a string (of variant type "s"). This mismatch
was fixed in the xdg-desktop-portal release 1.10 [1], but that broke
the PipeWire capture code, which was passing specifically the "s"
value to the variant lookup.

Fix this by not checking the variant type at all. Object paths ("o")
are simply strings with a few extra checks, and we don't actually need
to perform these checks.

This change probably broke other apps, and that makes me extremely sad :(

[1] https://github.com/flatpak/xdg-desktop-portal/pull/609
2021-09-17 08:36:56 -07:00
jpark37
40cea9ca50 win-capture: Remove dependency on psapi.lib 2021-09-12 14:10:36 -07:00
Tommy Vercetti
e075ad5bca obs-outputs: Add WIN32_LEAN_AND_MEAN to avoid symbol clash 2021-09-11 15:50:06 -07:00
kiwialec
dda48c99bc rtmp-services: Add Disciple Media 2021-09-08 06:58:25 -07:00