9953 Commits

Author SHA1 Message Date
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 1df278997883512e40b853dc3651ef31de0ec9c3.

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
jp9000
da04907927 Revert "UI: Disable hotkeys when a user is expected to type text"
This reverts commit f832d14220b572165bf69ad73f30a5b961d02258.

Reverting this until we do more investigation. Currently, any text
that can be typed in a dialog requires the dialog to re-enable hotkeys
on destruction, which is frustrating. There has to be a better way.
2021-10-03 07:52:44 -07:00
jp9000
1df2789978 libobs: Don't return/set 0 mixers for non-audio sources
Fixes a bug where if an audio source's implementation disappears (i.e.
a plugin vanishes or is removed), it would turn all mixing channels off,
effectively muting the source
2021-10-02 10:16:24 -07:00
Norihiro Kamae
669a615983 UI: Fix tab stop order for Draw safe areas
A tabstop definition was missing on the commit afd58a78e.
2021-10-02 06:00:23 -07:00
derrod
a18178f631 UI: Do not disable AutoConf bandwidth test for YouTube
Also code-cleanup
2021-10-02 05:55:53 -07:00
jpark37
4e6765a01b libobs: Remove DrawSrgbDecompressPremultiplied
Technique is no longer referenced, and doesn't seem useful.
2021-10-02 05:53:27 -07:00
derrod
7d6b61ad8c UI: Fix Twitch bandwidth test checkbox 2021-10-02 05:42:59 +02:00
Jim
4fc9cfc9a2
Merge pull request #5359 from norihiro/test-darray-type
Test darray type during CI
2021-10-01 15:17:13 -07:00
Richard Stanway
4395005a24 UI: Remove thread from YouTube auto config
This was causing crashes on auto config dialog creation, as Qt GUI
objects can only be safely accessed from the main thread. Fixes #5364.
2021-10-01 13:57:48 -07:00
jpark37
cadd83f786 obs-browser: Filter textures in linear space 2021-10-01 10:00:09 -07:00
Warchamp7
1d040a8c66 UI: Adjust minimum size of source toolbars smaller
#5187 added a minimum size enforcement on the source toolbar to ensure
it remains functional at lower window sizes.

That minimum size was set to 800 pixels, which causes issues for
users on 1366x768 monitors in a vertical orientation.

This is still a rather common resolution, so this reduces the minimum
size below 768
2021-10-01 09:37:54 -07:00