9083 Commits

Author SHA1 Message Date
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
Matt Gajownik
448599e761 UI: Sync 'Copy Filters' enabled state in the Source context menu
This matches the behaviour of Scenes and the Audio Mixer.
2020-12-04 21:10:37 +11:00
John Boiles
55da44d7ee mac-virtualcam: Build a universal x86_64+arm64 binary for M1 Macs 2020-12-03 19:13:44 -08:00
Alex
08ebc25e42 vlc-video: Free media struct 2020-12-03 14:28:26 -08:00
gxalpha
fd34f0b2ab mac-virtualcam: Fix remaining global namespaces
Gives the MachServer a unique name which was forgotten in a previous commit
2020-12-03 14:28:01 -08:00
jp9000
7a17f47d8a UI: Allow enabling vod track on custom via ini 2020-12-03 01:31:32 -08:00
jp9000
eac66d773c UI: Fix vod track working with custom server 2020-12-03 01:20:37 -08:00
jp9000
609ec9b556 UI: Fix vod track not working with twitch soundtrack
The vod track in advanced output mode would be overwritten by twitch
soundtrack's vod track. Additionally, simple output mode would overwrite
twitch's soundtrack vod track even when vod track was turned off in
settings.

So instead, if vod track is off, don't clear the secondary encoder
unless it's explicitly our encoder. Additionally, make sure that
advanced output mode's vod track encoder behaves consistently with
simple output mode's vod track so it doesn't get overwritten.
2020-12-03 01:13:10 -08:00
jp9000
53ec75ccd6 UI: Fix aac encoder name
Was meant to be "adv" meaning advanced rather than "avc"
2020-12-03 01:13:10 -08:00
Richard Stanway
e00feef7ab libobs: Ignore non-fatal ffmpeg return values during remux
Similar to 315fbd6 and 6071098, ignore non-fatal errors during the
remux process. It's possible OBS itself writes a file that generates
these errors when remuxed.
2020-12-02 21:05:43 +01:00
Kurt Kartaltepe
bf4ad780b5 UI: Fix disabled sliders
Previously sliders would not be disabled when the the obs_property was
disabled.
2020-12-02 21:56:56 +11:00
Joel Bethke
aa713e07d0
Merge pull request #3815 from ckelsel/master
UI: fix typo
2020-12-02 03:36:41 -06:00
jp9000
15d000c50c UI: Remove redundant setting
This setting, although technically different from the one in the
streaming section of settings, is superseded by that setting.

The setting can still be used via ini file if an actual custom rate
control or keyframe interval is needed.
2020-12-02 01:09:37 -08:00
ckelsel
f4adc26864 UI: fix typo 2020-12-02 16:56:11 +08:00
Richard Stanway
207716f69f UI/installer: Add additional VS2019 DLL check
Also updates references from 2017 to 2019 for consistency.
2020-12-02 02:08:56 +01:00
Joel Bethke
96da863fbc
Merge pull request #3810 from RytoEX/qt-midbutton
UI: Use Qt::MiddleButton instead of deprecated Qt::MidButton
2020-12-01 10:31:11 -06:00
Ryan Foster
1bb71e1f7f UI: Use Qt::MiddleButton instead of deprecated Qt::MidButton 2020-12-01 10:54:21 -05:00
Matt Gajownik
0c0be0befd obs-browser: Update to 2.9.0
- Log CEF version
- Add internal support for CEF 4183
- Add support for CMake 3.19.0
- Add support for fractional scaling in browser panels
2020-11-30 13:43:56 +11:00
Matt Gajownik
e08a8fc356 UI: Don't round non-integer High DPI scale
This fixes an issue on Windows where loading on a
150% scale display renders OBS windows at 200%.

Reference: https://doc.qt.io/qt-5/qguiapplication.html#setHighDpiScaleFactorRoundingPolicy
2020-11-28 11:08:11 +11:00
Colin Edwards
e436f6ab18
Merge pull request #3781 from PatTheMav/ci-decklink-fix
CI: Add decklink-captions to dylibbundler fixups
2020-11-27 14:53:40 -06:00
PatTheMav
eafab7d5e9
CI: Add decklink-captions to dylibbundler fixups 2020-11-27 20:56:47 +01:00
jp9000
8d58578f6d enc-amf: Fix inability to set bitrate in latest AMD driver 2020-11-26 09:41:00 -08:00
VodBox
dbbfa2491a UI: Fix filter window rendering and accessible names 2020-11-26 20:44:03 +13:00
Ryan Foster
6b6a72cd21 UI: Log success/failure for scene collection importer 2020-11-25 20:19:30 -08:00
Ryan Foster
714c652dc9 UI: Prevent import failure for collections with slash in name 2020-11-25 20:19:30 -08:00
Ryan Foster
2d1b0666af UI: Prevent name collision during scene collection import
The Scene Collection Importer would attempt to set the new filename
using the name property of the scene collection. However, it would
determine an unused filename, and then replace spaces with underscores,
which could cause a name collision. This changes the importer to replace
spaces with underscores first for the base filename, and then determine
an unused filename.
2020-11-25 20:19:30 -08:00
VodBox
89b4e9136f UI: Various screen reader fixes
This commit fixes various issues with screen readers in the main OBS
interface. These were tested using NVDA on Windows 10 2004.

Audio track selection in Settings now says Track 1, 2, etc, rather than
just the number.

Various checkboxes that just say "Enable" now have accessible text that
says what the enable is for (since it says "checkbox", the fact it's an
enable should hopefully be clear).

Type in the recording tab of output now has accessible text which says
"Recording Type".

Items in the Advanced Audio Properties window now have accessible text
for what they are for. Currently some do not report correct values, but
that will require an accessible interface in Qt to be written
specifically for that, which will be done at a later date.

Buttons in the filters window now have accessible text for what they do.

All the right side buttons in hotkeys now have tooltips, and by
extension, accessible text.
2020-11-25 19:38:05 -08:00
Gol-D-Ace
7ab98ca00f Update translations from Crowdin 2020-11-25 20:11:39 +01:00
jpark37
2d547cf669 libobs: Allow wrapping D3D11 object with gs_texture_t
This can be useful for reading from textures provided by middleware.
2020-11-24 14:39:56 -08:00
Mike
f0593f3805 UI: Fix Save Replay button staying highlighted 2020-11-24 14:32:29 -08:00
Exeldro
02f47345cf frontend-tools: Don't give every loaded filter focus
Speeds up loading with large number of filters and prevents deadlock by
not getting the properties of filters during
OBSBasicFilters::UpdateFilters() which uses the source->filter_mutex
2020-11-24 14:32:18 -08:00
Matt Gajownik
a88b262d5f UI: Set default source toolbar visibility to true
This significantly simplifies the
configuration setting's initial load.

This also fixes as issue where the source toolbar
would initialise as "TextLabel" with enabled
buttons if the user had not yet toggled the setting.

Fixes #3722
2020-11-24 14:19:57 -08:00