2071 Commits

Author SHA1 Message Date
jp9000
e1447c22db libobs: Check if output active when setting encoders
This fixes an issue where someone might mistakenly try to change an
audio/video encoder before the output is complete.
2020-09-23 14:52:15 -07:00
jp9000
af09057395 libobs: Deprecate service multitrack check
This isn't particularly needed, as a service with multiple tracks won't
be using multiple tracks to begin with anyway.  This might change later,
but for now just mark it deprecated.
2020-09-07 13:38:38 -07:00
jpark37
b6afaceeae Update VIDEO_CS_DEFAULT to mean 709 instead of 601
Consistent with modified default UI setting.
2020-09-06 20:51:28 -07:00
Richard Stanway
d7e8f115e8 libobs/media-io: Fix suspicious memset behavior 2020-09-04 21:46:18 +02:00
Richard Stanway
c8f7a4563d libobs: Check data validity for media sources 2020-08-29 02:42:03 +02:00
Manuel Kroeber
618781e563 libobs: Log Windows 10 Hardware GPU Scheduler
This adds logging for the "Hardware-accelerated GPU Scheduler" (HAGS)
introduced with Windows 10 2004 which is known to cause issues with OBS
and game performance.
2020-08-26 22:57:52 +02:00
Jim
33ecd10358
Merge pull request #3319 from kkartaltepe/x11-underlinking
libobs: Fix underlinking X11
2020-08-23 11:22:59 -07:00
Jim
e36b9c309d
Merge pull request #3216 from Xaymar/pr-fix-obs_source_enum_full_tree
libobs: Call enum_all_sources in check for enum_all_sources
2020-08-22 15:09:42 -07:00
Kurt Kartaltepe
c3ab6b91f6 libobs: Fix underlinking X11
Add explicit linkage to X11 fixing #3305
2020-08-21 16:25:42 -07:00
Jim
5803504c36
Merge pull request #3261 from e00E/undefined-behavior-utf8
libobs: Fix undefined behavior
2020-08-17 19:23:21 -07:00
Jim
53b65bb5fd
Merge pull request #3245 from e00E/fix-defer-update
libobs: Fix deferred update sometimes using stale data
2020-08-17 08:03:21 -07:00
jp9000
d45017370b libobs: Add functions to get locale text from modules
Useful for sharing translated text from modules with the frontend.  This
is technically already done via properties, but it would be nice to just
be able to explicitly look up locale text directly rather than have to
go through properties.
2020-08-10 12:24:01 -07:00
jp9000
de2e89d972 libobs: Add function to get module pointer
Useful for getting getting locale text associated with a specific module
2020-08-10 12:24:01 -07:00
jp9000
f5d6a695be libobs: Add OBSRef::Get()
Allows explicitly getting the pointer associated with the object.
2020-08-10 12:24:01 -07:00
Valentin
b7f5cde4e3 libobs: Fix undefined behavior
It is undefined behavior to apply an offset to a null pointer. I would
have liked to reference cppreference but best I found was the PR that
added this check to clang's undefined behavior sanitizer:
https://reviews.llvm.org/D67122 .
2020-08-08 10:41:24 +02:00
Jim
bfdf5dc947
Merge pull request #2356 from jpark37/sycc-color-space
Color space refinements
2020-08-05 08:58:21 -07:00
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
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
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
Michael Fabian 'Xaymar' Dirks
127dce6bf6 libobs: Call enum_all_sources in check for enum_all_sources
Fixes a crash caused by checking for enum_all_sources and then calling
enum_active_sources instead of enum_all_sources. enum_active_sources is
not required for sources that specify enum_all_sources.
2020-07-27 01:53:58 +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
jpark37
06e4b10675 libobs/media-io: Add missing codec_tag set 2020-07-18 23:35:35 -07:00
jpark37
a69151e204 libobs: Add VIDEO_CS_SRGB support 2020-07-18 19:43:04 -07:00
jpark37
40b4db0c0c libobs/media-io: Fix FFmpeg deprecation warnings 2020-07-18 18:47:52 -07:00
jpark37
0628c844f8 libobs: Fix FFmpeg deprecation warnings 2020-07-18 18:47:45 -07:00
venepe
f5d877b393 libobs: Add arm support 2020-07-18 00:53:03 -05:00
jp9000
18b915a47b libobs/util: Use is_padding() for wcsdepad as well
Fix wcsdepad so that it checks for padding in the same way strdepad
does.
2020-07-11 16:15:38 -07:00
sunjingzhao
05826491af libobs/util: Fix potential crash 2020-07-11 16:01:32 -07:00
Matt Gajownik
76bdbdfbb0 libobs: Translate F13-F24 hotkeys on Windows
Fixes #2377
2020-07-11 16:27:44 +10:00
Jim
b83a9dd0d6
Merge pull request #3133 from jpark37/fix-plane-heights
libobs: Fix video scalar copy heights
2020-07-10 20:31:50 -07:00
Jim
8b00f7d341
Merge pull request #3085 from eric/fix-audio-on-timestamp-jump
libobs: Reset audio data on timestamp jump
2020-07-10 17:35:44 -07:00
jpark37
cf911744f7 libobs: Fix video scalar copy heights
Use plane height instead of overall height for copying planes to fix
memory stomp.
2020-07-07 12:48:49 -07:00
Jim
3b11e170b7
Merge pull request #2836 from jpark37/yuv-image-fix
Fix FFmpeg YUV to RGB conversion by adding extra destination padding to line sizes
2020-06-26 06:13:45 -07:00
Jim
8e28c89a93
Merge pull request #2786 from pkubaj/patch-1
Add CFLAGS necessary on PPC64(LE) to libobs.pc
2020-06-26 01:39:45 -07:00
Jim
76c42215d6
Merge pull request #2755 from exeldro/keep_filters
libobs: Don't check filter compatibility on not loaded sources
2020-06-24 14:13:48 -07:00
Jim
0d7b4e1ced
Merge pull request #3006 from mr-c/simde_20200529
libos: Freshen SIMDe code copy
2020-06-21 05:34:38 -07:00
Jim
5f00f8c42a
Merge pull request #3014 from notr1ch/remove-excessive-null-checks
libobs: Remove excessive null checks
2020-06-21 04:56:45 -07:00
Jim
a5f4850d7a
Merge pull request #3048 from jpark37/unused-audio-code
libobs/media-io: Remove unused code
2020-06-21 04:53:57 -07:00
Eric Lindvall
f79f816b72 libobs: Reset audio data on timestamp jump
To prevent issues in audio mixing make sure the audio data is also cleared
when audio timing is reset.
2020-06-20 14:55:31 -07:00
jpark37
d9fa5de572 libobs: Fix right edge for "video scaler"
FFmpeg YUV to RGB conversions require extra destination padding.

This code only appears to be exercised for DeckLink.
2020-06-14 20:26:10 -07:00
jpark37
4c2e430c0c libobs: Fix right edge for JPEG images
FFmpeg YUV to RGB conversions require extra destination padding.
2020-06-14 20:00:58 -07:00
jpark37
6aa50b3ef1 libobs: Use autoreleasepool for graphics thread
Apparently necessary to clean up macOS leaks.
2020-06-08 13:16:35 -07:00
jpark37
886bf5ceb7 libobs/media-io: Remove unused code 2020-06-07 11:16:24 -07:00
Richard Stanway
b9ea45e498
Merge pull request #2977 from futr/fix-non-terminated-str
libobs: Fix os_get_executable_path_ptr on Linux
2020-06-01 21:27:49 +02:00
Richard Stanway
b62ced9bf2 libobs: Unload modules while OBS core is active
Modules are now unloaded while OBS core is still active, allowing
modules that call into libobs in their unload function to continue to
work. This changes the behavior of such calls - previously they were a
no-op since the OBS core would be gone, but they are now executed with
the OBS core still being active.
2020-06-01 15:54:46 +02:00
Richard Stanway
dd519123c6 libobs: Remove excessive null checks
libobs functions check for a null obs_core inconsistently. If the core
is null, the functions silently return with no indication of an error to
the API user. This commit removes all null checks in libobs functions
that require libobs to be initialized. For OBS Studio, we are
(hopefully!) using the API properly so this should have no impact.
2020-06-01 15:54:23 +02:00
Exeldro
2d75639f58 libobs: Use correct data pointer for hotkey pair 2020-06-01 08:22:47 +02:00
Masato Takahashi
4ded3b39fd libobs: Fix os_get_executable_path_ptr on Linux
Terminate a non-terminated string generated by readlink()
to pass to dirname() that needs terminated string as a parameter.
2020-06-01 09:22:12 +09:00