Ryan Foster
424128a825
clang-format: Commit file changes for clang-format 11
2021-10-13 20:00:04 +11:00
PatTheMav
39aedc6c2f
UI: Add new vector-based menubar icons for macOS
2021-10-12 08:33:54 +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
86b607154a
UI: Add support for real-time work queue
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
3c71399650
libobs/audio-monitoring: Add reconnect logic
...
Automatically tear down if monitor is invalidated, and retry every time
an input sample is played.
2021-10-10 19:22:35 -07:00
jpark37
eb6050f3ce
libobs/audio-monitoring: Move variable assignment
...
Assinged too early for upcoming change that may reset monitor->render.
2021-10-10 19:22:35 -07:00
jpark37
7af886581d
libobs/audio-monitoring: Add WASAPI init helper
...
audio_monitor_init_wasapi will be used for reconnect logic.
2021-10-10 19:22:35 -07:00
jpark37
63ffae7d74
libobs/audio-monitoring: Remove unnecessary device
2021-10-10 19:22:35 -07:00
jpark37
b005e6748e
libobs/audio-monitoring: Fix mutex leak
...
Use SRWLOCK for simplicity. Does not need to be destroyed.
2021-10-10 19:22:35 -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
e582879303
libobs/media-io: Register audio thread with MMCSS
...
Ensure audio gets more priority to help prevent glitching.
2021-10-10 19:19:01 -07:00
jpark37
e69f051736
libobs/util: Improve os_sleepto_ns on Windows
...
Avoid nanosecond abstraction to reduce math operations.
Replace Sleep(0) with YieldProcessor(). We want the thread to remain
scheduled, the current CPU core to do less work, and the hyperthread
sibling to perform better.
Hacky profiling showed maybe 10-25 µs skid reduction per function call.
I think power/performance gains would be hard to measure, so I haven't
tried, but it would be shocking if they got worse.
2021-10-10 19:13:19 -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
a3f10cf0be
libobs: Remove WIN32_LEAN_AND_MEAN
...
It should already be defined near the Windows.h include.
2021-10-10 19:12:45 -07:00
jpark37
64cb26d03d
UI: Tuck variable inside macro guard
2021-10-10 19:12:45 -07:00
jpark37
e181a23bed
UI: Remove NOMINMAX from CMake scripts
...
If we want NOMINMAX globally, we should probably define at top level.
2021-10-10 19:12:45 -07:00
jpark37
c93b040d0d
UI: Use patterns that avoid std::min/max
...
New code is cleaner anyway.
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
4ca8cdfc0a
libobs/util: Simplify emmintrin.h wrapper macro
...
Also add WIN32_LEAN_AND_MEAN for external Windows.h include.
2021-10-10 19:12:45 -07:00
jpark37
02d98b26a0
libobs/graphics: Fix vec2 min/max functions
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
jpark37
3c45ae2e9d
libobs, libobs-opengl: Consistent near/far undef
2021-10-10 19:12:45 -07:00
Matt Gajownik
4681e10fdf
UI: Improve installer, add release notes & Quickstart link
...
* Use AppName & AppVersion consistently in Installer
* Update various strings in installer
* Remove duplicate icon file for installer
2021-10-10 17:19:10 +11:00
Matt Gajownik
c3d6e7a7c4
vlc-video: Improve logging with prefix & VLC version
2021-10-10 10:52:43 +11:00
Matt Gajownik
115973b1ed
UI: Log compiled & runtime Qt versions
2021-10-10 10:21:19 +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
Jimi Huotari
9d6ecc8beb
cmake: Don't link with PulseAudio when disabled
...
Don't search for, or link with the PulseAudio library when
DISABLE_PULSEAUDIO is true, and set as REQUIRED when false.
Closes https://github.com/obsproject/obs-studio/issues/4025
2021-10-08 15:30:22 +11:00
Mike
e6a3d2b8f2
UI: Add restart message on profile change
...
When a profile changes settings that require a restart, show a dialog to
ask the user whether they'd like to restart.
Co-authored-by: Jim <obs.jim@gmail.com>
Closes obsproject/obs-studio#3207
2021-10-07 11:49:21 -07:00
Bob van de Vijver
1b280e0ac4
UI: Add ShutDownActiveOutputsOnExit setting
...
Adds a new setting to the general OBS settings, which can be checked
in order to no longer show the "confirm close" dialog when there are
still streams/recordings running.
2021-10-07 09:07:06 -07:00
jp9000
9ef76e1f9b
libobs: Clear unused pointers for obs_source_output_audio()
...
Apparently, some audio filters do not check the audio channel/plane
count, and instead check to see if a pointer is valid. Instead of
requiring the caller to initialize these values to 0 manually (they
shouldn't have to), set them to zero upon input in
obs_source_output_audio() itself.
Closes obsproject/obs-studio#3744
2021-10-06 16:33:31 -07:00
jp9000
3c14e4ece2
libobs: Update version to 27.1.2
2021-10-04 10:38:39 -07:00
jp9000
49dad0a935
Revert "libobs: Don't return/set 0 mixers for non-audio sources"
...
This reverts commit 1df2789978
.
This causes new sources to have their default mixer value overriden,
reverting until a more ideal fix is approved
2021-10-04 10:37:51 -07:00
jp9000
a0595ae45b
libobs: Update to version 27.1.2
2021-10-03 13:44:49 -07:00