Commit Graph
8436 Commits
Author SHA1 Message Date
Valentin 4508cb03b5 libobs: Fix deferred update sometimes using stale data
Currently we use a bool flag to signal the video thread that it should
call obs_source_deferred_update. This does not work correctly when the
update callback is slow and the update is triggered faster than the
callback can complete.

For example:
* the settings are set to state A
* defer_update is set
* obs_source_deferred_update is called and enters into the callback
* the callback starts making use of the settings in state A
* the settings are set to state B
* defer_update stays set
* the callback finishes
* defer_update is set to false

Now defer_update is false but the callback has only observed settings in
state A but not B.

This commit fixes this bug by keeping an update counter. If the counter
has changed while we were in the callback we know that we need to update
again.

The counter is atomic. The current version uses a plain bool which is a
data race as the value is written and read in parallel.
2020-08-04 09:28:55 +02:00
Jim 478f1de846 Merge pull request #2939 from cg2121/log-viewer
UI: Add log viewer window
2020-08-01 12:17:48 -07:00
Clayton Groeneveld 040e445617 UI: Add log viewer window 2020-07-31 19:57:12 -07:00
Jim 3107eda0d2 Merge pull request #2961 from cg2121/transitions-dock
UI: Redesign transitions dock
2020-07-31 11:19:55 -07:00
Clayton GroeneveldandJim d5905039c9 UI: Redesign transitions dock
Co-authored-by: Jim <obs.jim@gmail.com>
2020-07-31 09:48:09 -07:00
Jim 7092039f55 Merge pull request #3229 from khng300/use_new_scaling_func
oss-audio: Use util_mul_div64() to do time scaling
2020-07-31 07:33:02 -07:00
jp9000 22ebba0454 UI: Use case-insensitive sort for "show all" services 2020-07-30 21:19:24 -07:00
Jim 81e4211f64 Merge pull request #3202 from cg2121/screenshot-output
UI: Add ability to make screenshots
2020-07-30 18:31:25 -07:00
Clayton GroeneveldandJim a70014d7b2 UI: Add ability to make screenshots
Co-authored-by: Jim <obs.jim@gmail.com>
2020-07-30 17:41:43 -07:00
Clayton Groeneveld cc565653d3 UI: Simplify path generation code 2020-07-30 17:41:43 -07:00
Ka Ho Ng b1504b0278 oss-audio: Use util_mul_div64() to do time scaling
util_mul_div64() is a new helper to do scaling. This commit sweeps the
oss-audio plugin code to generalize the way of doing scaling.
2020-07-31 02:00:40 +08:00
jp9000 4b17b82aab obs-ffmpeg: Set async video frame immediately when seeking 2020-07-29 13:59:49 -07:00
jp9000 bff7ae89ad deps/media-playback: Add seek callback
Allows setting the current frame directly when seeking. If not set, will
just use preload if avaialble.
2020-07-29 13:59:49 -07:00
jp9000 d117908440 libobs: Add func to set async video frame immediately
Allows the ability to directly override the current async frame
immediately.
2020-07-29 13:59:49 -07:00
Jim 80bb9b4675 Merge pull request #3206 from notr1ch/frame-fix-squashed
Fix preloaded video behavior
2020-07-29 13:57:52 -07:00
Joel Bethke 2f9b57ab8f Merge pull request #3228 from PatTheMav/ci-brew-bundle-fix
CI: Fix Brew Bundler breaking without prior brew update
2020-07-29 14:15:17 -05:00
PatTheMav 07a899413a CI: Fix Brew Bundler breaking without prior brew update 2020-07-29 20:30:57 +02:00
antho dcb085a0f9 rtmp-services: Add api.video service
Closes obsproject/obs-studio#3227
2020-07-29 11:06:05 -07:00
Jim 086263024f Merge pull request #3221 from jtopper/20200727_no_really_always_on_top
UI: Make macOS 'always on top' more aggressive
2020-07-27 17:39:49 -07:00
Jon Topper 87e90ee8a4 UI: Make macOS 'always on top' more aggressive
Applications like Keynote, in full screen mode, cover up OBS.

This change forces windows that have been set as 'always on top' (eg.
projector windows) to sit above Keynote's full screen view by
manipulating the NSWindow's level attribute.
2020-07-27 16:37:36 -07:00
Jim a41048b486 Merge pull request #3198 from AngeredZeus/master
UI: Fix clickable text on boolean properties with tooltips
2020-07-27 16:12:38 -07:00
AngeredZeus 4011e25e40 UI: Fix clickable text on properties with tooltips 2020-07-27 15:25:42 -07:00
Jim eac9cc2476 Merge pull request #3219 from Uro1/patch-1
libobs: Add util/sse2neon.h to CMakeLists.txt
2020-07-27 12:37:28 -07:00
Uro 5fd51eab31 libobs: Add util/sse2neon.h to CMakeLists
Add util/sse2neon.h to libobs_util_HEADERS in CMakelists.txt. The
previous patch #3180 for arm/rpi support was missing this in
libobs/CMakeLists.txt, and as a result plugins such as obs-websocket,
obs-ndi fail to compile on arm/rpi as the header is not copied with the
install.
2020-07-27 11:47:29 -07:00
Jim e394206132 Merge pull request #3208 from brittneysclark/qsv_fix_ui_settings
obs-qsv11: Fix bug mapping old qsv settings to new
2020-07-27 07:20:27 -07:00
brittneysclark d04e167ed0 obs-qsv11: Fix bug mapping old qsv settings to new
Fix for an issue found where new "Latency" and "Subjective Video
Enhancement" options where always using default settings even after
being changed in UI. This issue was introduced when mapping old QSV
settings to new ones.
2020-07-27 06:12:03 -07:00
Jim f22cde5073 Merge pull request #3214 from jpark37/vulkan-family-cleanup
win-capture: Make Vulkan frame data local to queue
2020-07-27 05:19:28 -07:00
jpark37 04b9b9fea3 win-capture: Make Vulkan frame data local to queue
Prevents multiple queues in the same family from racing on frame data.

Removal of vk_family_data also fixes broken capacity calculation. Two
queue families can share the same index if one is "protected-capable"
and the other isn't.
2020-07-26 13:33:01 -07:00
jpark37 e6896d79e3 win-capture: Hide Vulkan linked list internals 2020-07-26 13:32:53 -07:00
Jim 3907b2ddd1 Merge pull request #3197 from jpark37/vulkan-cts-harden
win-capture: Improve Vulkan hook stability
2020-07-24 20:37:26 -07:00
Rodney dc0af42f1b Merge pull request #3091 from derrod/remove-mixer
UI/CI/rtmp-services: Remove Mixer
2020-07-24 20:17:38 +02:00
jpark37 44fb61b1f2 win-capture: Improve Vulkan hook stability
Make fixes mostly to stabilize CTS. Tested on Windows with RTX 2080 Ti.

Use separate linked-list maps for devices and queues.

Process queues upfront in OBS_CreateDevice, and not lazily in
OBS_GetDeviceQueue.

Handle failed node allocation for OBS_CreateInstance, OBS_CreateDevice,
and OBS_CreateSwapchainKHR.

Handle VK_NULL_HANDLE for OBS_DestroySurfaceKHR and
OBS_DestroySwapchainKHR.

Add temporary code path CTS_WORKAROUND to deal with CTS sharing surfaces
between instances.

Fix return value for OBS_DestroyInstance.

Add missing _freea calls, required for _malloca.

Make sure the queue passed to OBS_QueuePresentKHR supports transfer to
safely call vkCmdCopyImage.

Update GetInstanceProcAddr/GetDeviceProcAddr to conform closer to spec.

Remove extra macros because I dislike indirection more than verbosity.
2020-07-24 09:30:05 -07:00
Richard Stanway 80803aa2f7 obs-ffmpeg: Clear texture when starting playback
This prevents a stale texture from being visible for a single frame when
there is no preloaded video.
2020-07-23 23:56:30 +02:00
Richard Stanway 4f7767111a libobs: Update async texture when showing preloaded video
The previous preloaded video behavior updated the texture on preload
rather than when the video was shown, during which time the texture may
have been modified by other processes, resulting in the wrong frame
being displayed.
2020-07-23 23:54:10 +02:00
Richard Stanway 06321f89e1 UI: Remove OBSContext class and shutdown in run_program
The OBSContext never called obs_startup but would always call
obs_shutdown in its destructor, resulting in shutdown calls even if
libobs wasn't initialized (eg due to a startup error). Instead, we now
track if libobs was initialized in OBSApp and call shutdown in the
destructor.
2020-07-23 23:17:52 +02:00
Matt Gajownik f9801c933e Merge pull request #3204 from RytoEX/disable-mac-python-02
CI: Disable Python on macOS
2020-07-23 20:50:47 +10:00
Ryan Foster 85d58dfefd CI: Disable Python on macOS
Follow-up to 63373a8fd7
and 2c60aa2abe (PR #3203).
2020-07-23 01:10:29 -04:00
Joel Bethke 63373a8fd7 Merge pull request #3203 from jpark37/mac-ci-python
CI: Disable Python for Mac PR automation
2020-07-22 23:05:52 -05:00
jpark37 2c60aa2abe CI: Disable Python for Mac PR automation 2020-07-22 20:31:59 -07:00
derrod b67a238b7c CI: Remove Mixer cmake variables 2020-07-22 07:47:12 +02:00
derrod b8f91cc4c3 rtmp-services: Remove Mixer servers and checks 2020-07-22 07:47:12 +02:00
derrod db37cc34d5 UI: Remove Mixer integration 2020-07-22 07:47:07 +02:00
jp9000 83913e1d31 deps/media-playback: Don't EOF while paused and seeking
Fixes a bug where playback would completely stop when manually seeking
to the end of the file. Playback should not officially stop until
playback has unpaused.
2020-07-21 16:40:33 -07:00
Jim 95401e5794 Merge pull request #3189 from exeldro/preload_paused
deps/media-playback: Preload video when seeking paused
2020-07-21 16:39:25 -07:00
Exeldro 7a33167769 deps/media-playback: Preload video when seeking paused 2020-07-20 14:23:13 -07:00
jp9000 3691dc536d win-dshow: Fix virtual camera filter name
The filter name is supposed to be "OBS Virtual Camera"
2020-07-20 14:22:49 -07:00
Jim 857c21b3f9 Merge pull request #3195 from cg2121/windows-vcam-fix
win-dshow: Fix virtual camera enable bug
2020-07-20 08:00:45 -07:00
Clayton Groeneveld f4223ad061 win-dshow: Fix virtual camera enable bug 2020-07-20 06:02:16 -05:00
jp9000 ae29ec5239 rtmp-services: Fix memory leak 2020-07-19 22:06:34 -07:00
Jim aa0a6526a8 Merge pull request #3177 from cg2121/linux-filedialog
UI: Use non-native file dialog w/ Linux
2020-07-19 21:40:52 -07:00