Commit graph

9014 commits

Author SHA1 Message Date
Justin Bull 940a07e62f image-source: Add webp to file filter 2020-12-29 00:39:22 -08:00
PatTheMav 20fb235b8f CI: Remove jack, speex and fdk-aac from default builds for macOS 2020-12-22 04:36:12 -08:00
Richard Stanway e5c6839904 libobs, obs-ffmpeg: Use correct value for EINVAL error check
FFmpeg functions such as av_interleaved_write_frame return negative
on error, so all errno values are negated.
2020-12-21 18:37:49 +01:00
Richard Stanway 2678d351f5 UI/updater: Increase number of download workers
Request / response latency dominates the download time of small
files and patches, especially the locale files. Increasing this to
4 doesn't consume many more resources and basically doubles the
download speed, especially on higher latency connections.
2020-12-21 18:32:39 +01:00
Richard Stanway f0ed8c337e UI/updater: Enable HTTP2 and TLS 1.3
Unfortunately WinHTTP doesn't support multiplexing with HTTP2, but there
is still some minor benefit to enabling it. Windows 10 21H1 will enable
TLS 1.3 client support in Schannel, so let's get ready for it.
2020-12-21 18:32:39 +01:00
Gol-D-Ace 513e95d0f6
UI: Fix name of kab-KAB locale 2020-12-21 16:04:27 +01:00
Rodney 60fed63d68
Merge pull request #3877 from derrod/purge-services
UI/rtmp-services: Remove Smashcast
2020-12-21 09:46:53 +01:00
Colin Edwards 8285141ba5 decklink: Fix automatic pixel format detection 2020-12-20 14:44:14 -08:00
PatTheMav 20bb465047 CI: Fix macOS 10.13 crashes due to unsupported library symbols 2020-12-19 18:48:38 -08:00
Richard Stanway 6b2830b16f UI/installer: Add additional VS2019 DLL check 2020-12-20 02:57:15 +01:00
pkv c8155d491d UI: Enable HW acceleration switch for browser sources on Mac
This enables in Settings the checkbox for hardware acceleration for
Browser Sources in MacOs.
2020-12-18 18:13:35 +01:00
PatTheMav 61ea6e0247
libobs: Add texture sharing support for macOS/OpenGL 2020-12-18 17:44:03 +01:00
SCG82 c7b89fa36b mac-virtualcam: Fix file mode 2020-12-18 00:11:00 -08:00
Jim ddc5af2e08
Merge pull request #3805 from PatTheMav/macos-cef-4183
CI: Add necessary changes for CEF 4183
2020-12-18 00:10:17 -08:00
Theodore Dubois fb938c186f CI: Run make with -j$(nproc)
Moar threads for moar cores
2020-12-17 23:58:21 -08:00
Colin Edwards 7f622d907a
Merge pull request #3917 from RytoEX/cleanup-ci-files
CI: Remove obsolete and unused files
2020-12-17 10:40:49 -06:00
Ryan Foster 2ca1521f72 CI: Remove obsolete and unused files
All of these files have been relocated or replaced, so they should be
safe to remove now.
2020-12-17 02:05:49 -05:00
PatTheMav c85bf0fcba
libobs: Add texture sharing support for macOS/OpenGL 2020-12-16 12:56:43 +01:00
PatTheMav ad1b98351c
CI: Add necessary changes for CEF 4183 2020-12-16 12:56:42 +01:00
Richard Stanway 9201390a46 UI/updater: Move in-use files away before writing
On a modern Windows OS, you can rename an in-use file despite not being
able to write to it. With the introduction of the virtual camera, it is
now quite common that users will have in-use files when updating. This
commit renames in-use files, allowing the new version to be installed.
Upon a reboot, the previously in-use file will be deleted.
2020-12-15 21:11:47 +01:00
Richard Stanway c0d7602b64 UI/updater: Always clean up temporary files
If an update failed to install, it would leave a single temporary file
behind for that particular patch / file.
2020-12-15 21:11:35 +01:00
Richard Stanway 38ad3ba18f UI: Add deferred function to update context bar
With the queued connection in d68484e7, the "Deselect" signal for
sources which are being deleted is never fired, as the object is gone by
the time the queued signal is processed. This results in the context bar
not updating.

This commit adds a new UpdateContextBarDeferred function, allowing
queuing of only the context bar update instead of the whole signal
handler.
2020-12-14 11:53:01 -08:00
jp9000 580eecda01 UI: Fix installer/updater check for vs2019 32bit
VS2019 32bit redist does not have/use vcruntime140_1.dll, so remove
those checks from the installer and auto-updater.
2020-12-13 21:59:21 -08:00
derrod a605770a2b UI: Remove Smashcast from AutoConfig 2020-12-14 05:04:40 +01:00
derrod 47ba751e24 rtmp-services: Remove Smashcast 2020-12-14 04:45:54 +01:00
Gol-D-Ace 7368a2c7cc Update translations from Crowdin 2020-12-14 00:29:44 +01:00
Gol-D-Ace 81b5f3ee8d
Merge pull request #3855 from Linnun/update-steam-rtmp
rtmp-services: Update Steam
2020-12-13 19:17:52 +01:00
jp9000 00f0d5eb4e Revert #3856
It's a bit too close to release, so revert #3856 for now until there's
an open PR window instead.
2020-12-12 12:28:02 -08:00
Hector Martin a602fa8797 linux-jack: fix timestamp calculation
The previous calculation was completely broken, returning offset
timestamps in the best case, and complete insanity in the worst case
(e.g. if an xrun occurs or JACK otherwise has a glitch).
2020-12-12 12:05:28 -08:00
Hector Martin b7567f23fb linux-jack: fix deadlock when closing the client
This lock causes a deadlock when freeing the JACK client while a
process callback is pending:

deactivate_jack -> locks mutex
   JACK thread -> calls jack_process_callback
   jack_process_callback -> blocks on mutex
jack_client_close -> joins JACK thread
(deadlock as the process callback never returns)

Instead, just don't lock the mutex. This is only mutexing on
creation/destruction of the JACK client. This is not necessary: the
process callback will only run after jack_activate (which is right
before the mutex is released in jack_init()), and will stop running
by the time jack_client_close returns. We don't actually need to
unregister any ports, so just call jack_client_close first thing in
deactivate_jack, which will guarantee the process callback has
completed before returning.

In fact, jack_process_callback isn't allowed to lock any mutexes or
allocate any memory at all, so this plug-in is still broken in this way
as obs_source_output_audio does that. This can cause audio xruns, as
realtime guarantees are violated. This is something that should be
fixed in the future, but at least it's not a deadlock.
2020-12-12 12:05:28 -08:00
Hector Martin a5439d29d0 linux-jack: mark ports as JackPortIsTerminal
Ports which do not feed audio back into JACK should be marked as terminal.
This allows latency compensation to work properly.
2020-12-12 12:05:28 -08:00
Hector Martin a5d08e347e linux-pulseaudio: fix race conditions
PulseAudio code needs to be called with the PA lock held. This chiefly
fixes multiple races during stream shutdown:

* If the functions are called without the lock held, deferred event
  handling races end up with PA infinite looping on the mainloop, or
  asserting, or other badness, as the reentrant calls cause data
  structure corruption on the PA side.
* If we don't reset our callbacks, PA might call us even after we
  request stream disconnection (since the stream actually getting fully
  shut down is asynchronous), and then we dereference NULL pointers from
  our userdata etc. PA will keep its data structures alive until necessary
  via reference counting, but not ours.

The lock around pa_stream_begin_write doesn't result from any issues I
experienced, but it looks correct; PA doesn't say anywhere that that
function is thread-safe.
2020-12-12 12:05:12 -08:00
jp9000 f17ea5d1bc obs-browser: Add obsExit event 2020-12-11 18:49:00 -08:00
Richard Stanway a53c59e8c7 UI: Determine rate control after creating encoders
If the user hasn't specifically set a rate control and left OBS at the
default of CBR, the settings loaded by GetDataFromJsonFile will not have
a rate_control parameter present. This causes the replay buffer to think
the user is in VBR mode and use the wrong settings for determining
maximum buffer size. Fixes #2516.
2020-12-12 02:43:35 +01:00
Exeldro d68484e7b7 UI: Handle (de)select scene items queued
The (de)select signal can come from a obs_scene_enum_items
which locks the scene. The Qt::QueuedConnection makes sure
the (de)select is handled outside of that lock.
Fixes the deadlock from #3673
2020-12-11 17:05:38 -08:00
Ben Torell 3a1af9cb8a
Merge pull request #3868 from PatTheMav/ci-macos-deps-update
CI: Update macOS to Qt 5.15.2 and deps 2020-12-11
2020-12-11 15:40:59 -05:00
PatTheMav d609e60039
CI: Update macOS to Qt 5.15.2 and deps 2020-12-11 2020-12-11 20:51:22 +01:00
Hector Martin df4eb8219c libobs: fix the pending stop trick
Regression introduced by dc4e20500: while the stop detection is pending,
it should still return false so the rest of the discard code can run.
Otherwise, the source audio will remain in the buffer, lagging the
source and triggering audio buffering increases until max audio
buffering is reached.
2020-12-10 03:15:13 -08:00
jp9000 13ee86ab7f UI/updater: Fix dll check 2020-12-09 22:25:49 -08:00
jp9000 a01d3e77b1 UI: Remove jansson requirement from UI and updater
Use json11 instead.
2020-12-09 22:23:03 -08:00
jp9000 9cc5aa5629 UI/updater: Update redist checks to VS2019 2020-12-09 22:23:03 -08:00
jp9000 0ab2b038e8 deps/json11: Update to most recent version 2020-12-09 22:23:03 -08:00
Linnun cc15ada06e rtmp-services: Update Steam
Steam now automatically selects the closest available server
2020-12-09 21:43:13 +01:00
jp9000 3c6b356208 libobs: Update version to 26.1.0 2020-12-09 02:34:15 -08:00
Kurt Kartaltepe f80421a76d sndio: remove strerror_l
Replace it with the typical strerror for platforms that dont have full
posix support (freebsd/clang).

fixes #3835
2020-12-08 14:21:20 +11:00
jp9000 ebc0d6a500 UI: Fix weird spacing in adv output FFmpeg recording 2020-12-07 19:15:16 -08:00
stump eac6604a83 linux-v4l2: Fix bashism in v4l2loopback module detection
When /bin/sh isn't bash, the previous line always appears to succeed,
and modinfo's output is not redirected, because it actually runs
modinfo in the background (which always succeeds) then opens and closes
/dev/null without doing anything to it. This causes us to always think
that the v4l2loopback module is installed, even when it isn't.
2020-12-08 13:51:40 +11:00
Scratch 842ad1781b obs-scripting: Fix removing signal handlers in lua 2020-12-07 15:44:00 +11:00
Matt Gajownik 5f5b220048 UI: Correctly unregister Virtual Camera & Source Toolbar hotkeys
Fixes an issue where the hotkey entries would be duplicated
(including in the UI hotkey list) on every Profile switch.
2020-12-06 23:01:46 +11:00
Matt Gajownik fff45a4114 UI: Scale Interact cursor position based on display DPI 2020-12-06 16:22:11 +11:00