2525 Commits

Author SHA1 Message Date
jp9000
4563413d15 libobs: Update version to 28.0.1 2022-09-02 19:06:23 -07:00
jp9000
3cde5dd48a libobs: Update version to 28.0.0 2022-08-30 20:17:35 -07:00
jpark37
b4cc32c4c9 libobs: Extend NVIDIA anti-flicker to desktops 2022-08-29 10:02:32 -07:00
jpark37
37389ff243 libobs: Avoid display clear workaround if possible 2022-08-27 16:32:50 -07:00
jp9000
07df6548fd libobs: Increase texture encode buffering
Seems to solve lag encountered on the new AMF encoder. The SubmitInput
call in the AMF encoder can occasionally stall for quite a long amount
of time, but most take microseconds, so we can compensate by simply
increasing the buffering (3 to 10 textures).
2022-08-27 14:29:28 -07:00
PatTheMav
2bb0818fb4 libobs: Use system header notation for pthread.h include
Using a relative path for the pthread.h header by w32-pthreads breaks
compilation of plugins which include threading.h from libobs (as
w32-pthreads will exist at a different location relative to the
libobs header).

As w32-pthreads (and its include directory) is added to the libobs
target by CMake, the pthread.h header will be found even when using
system header notation.

Fixes https://github.com/obsproject/obs-studio/issues/7155
2022-08-24 05:40:37 -07:00
derrod
44eb8ffbb6 libobs: Fix Windows 10/11 Gamemode/HAGS detection
It seems that the older key still exists on Win 11 and 10 but is always
set to 0, so use the newer to start with and fall back to the old one if
necessary.

Additionally, if the key for HAGS and GameMode do not exist assume
they're on as this is the default on Win 11. On Windows 10 game mode is
also on by default in recent versions.

Also changes "10" to "10/11" just for correctness.
2022-08-24 05:08:04 -07:00
jpark37
f88300a613 libobs: Emulate clear with draw for displays
Laptops that render OBS displays on NVIDIA, and display through Intel
have been seen flickering, and we think the driver is not properly
handling swap chain buffers that have been cleared but not drawn to. To
work around this, we use a draw to simulate a render target clear. This
is not as efficient, so hopefully NVIDIA will fix this soon.
2022-08-24 05:01:08 -07:00
Richard Stanway
8227dccf77 libobs: Initialize main_view video mix before video thread
Fixes a race condition where the video thread would exit because it sees
no active mixes, causing OBS to freeze on startup.

Fixes #7095
2022-08-20 01:27:47 -07:00
jp9000
6abf89af21 Revert "libobs: Correctly set texture size"
This reverts commit 90a409fe586daf7b3430ea3be9581efc93998cc1.

Reverts #7077 for now. This really shouldn't be done so close to
release. This crash technically only happens under very niche scenarios,
and the fix seems to have some other potential issues. Prematurely
merged by Jim.
2022-08-18 11:04:11 -07:00
tududweb
90a409fe58 libobs: Correctly set texture size
Correctly set texture size according to the frame to be rendered this time.
Fixes the mismatch between frame and texture when async-delay-filter on.
2022-08-18 03:43:22 -07:00
Chip Bradford
590fa1ffe6 UI: Free virtual cam memory on shutdown 2022-08-17 23:21:28 -07:00
jpark37
6494d46111 libobs: Use nal_ref_idc for H.264 priority
H.264 spec only mentions zero/non-zero, but RFC 6184 uses 0/1/2/3 values
for prioritization. Go back to reading packet field for priority.
2022-08-17 05:30:16 -07:00
Ed Maste
25d308c727 libobs: Read /etc/os-release on FreeBSD
Previously FreeBSD had an optional port that installed /etc/os-release
so it was already available on many FreeBSD systems, but os-release is
now provided by the base system and will be universally available.
2022-08-16 18:40:48 -04:00
gxalpha
bad54448ce
libobs: Fix format specifier warning 2022-08-14 23:45:34 +02:00
Chip Bradford
eb1cc8d076 libobs: Fix gpu thread termination when additional video mixes are added 2022-08-13 01:33:34 -07:00
jpark37
64ef93a29d libobs: Fix filter color space passthrough
Need to chain against target instead of parent.
2022-08-13 01:32:42 -07:00
Norihiro Kamae
33e6ad3cc9 libobs: Remove unnecessary UTF characters 2022-08-13 00:49:17 -07:00
Jim
9e15114750
Merge pull request #6577 from chippydip/multiple-video-mixes
libobs: Add support for multiple video mixes
2022-08-09 21:37:48 -07:00
jpark37
fb146fa370 libobs: Remove display GPU markers without draws 2022-08-09 20:21:27 -07:00
PatTheMav
43a49dca47 cmake: Fix CMake package export templates for CMake 3.24
CMake 3.24 implemented changes that break dependency discovery of the
exported libraries built by OBS.
2022-08-09 19:48:03 -04:00
Richard Stanway
86963f65d2
libobs, win-capture: Don't export ms_get_obfuscated_func
Since this was included in things like the inject helper and game
capture DLLs, it added an additional export to those programs. Instead,
simply share the source files directly in the projects that need it.

Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
2022-08-07 19:41:23 +02:00
Norihiro Kamae
c42047cb68 libobs: Fix missing pair of GS_DEBUG_MARKER
The conditional branch added by 4fe6803fe resulted GS_DEBUG_MARKER_END
is not called when the branch condition is failed.
2022-08-06 17:24:56 -07:00
jpark37
4fe6803fe4 libobs: Prevent D3D11 projectors from tearing
Some users stream projectors, so don't let them tear. Use the waitable
object to check the flip queue, and only flip if there's space.

Metal and Vulkan can probably perform similar flip throttling once OBS
starts using them.
2022-08-06 16:16:20 -07:00
jpark37
0e5420750b libobs: Implement H.264/HEVC priority parsing
Parsing priority while serializing/discarding packet data is too gross.
2022-08-01 08:15:29 -07:00
jpark37
5361d936ce libobs: Implement obs_parse_hevc_packet 2022-07-31 17:38:25 -07:00
jpark37
55f35d1d89 libobs: Consolidate H.264 priority scheme
The spec for nal_ref_idc doesn't indicate that it should be used for
priority like x264 seems to be using it for. NVENC seems to pass
different values, so let's not rely on it.

The new scheme might be naive, but we can iterate on it, and apply
evenly to all H.264 encoders.
2022-07-31 17:38:25 -07:00
Chip Bradford
0a87797a21 libobs: Format changes for multiple video mixes 2022-07-31 15:35:37 -07:00
Chip Bradford
7e39ee291c libobs: Add support for multiple video mixes
Split render_texture and derived fields in obs_core_video into new
obs_core_video_mix struct. Add new APIs to add additional obs_view to the render loop, each with a separate render_texture / obs_core_video_mix.
2022-07-31 15:35:36 -07:00
jpark37
3a43fc4a07 libobs: Use left chroma location for SDR
Top-left chroma should be for Rec. 2020/2100.
2022-07-31 00:10:50 -07:00
tytan652
5490e4f44c libobs,docs: Improve failed module loading logging
- Avoid putting libs (like CEF) in the plugins load failure message.
- Consider obsolete macOS obs-browser plugin fail as a hardcoded skip.
2022-07-30 16:55:03 -07:00
gxalpha
de01cfc063 libobs: Include plugin path in log error message 2022-07-29 03:29:13 +02:00
jp9000
23c3ad4d02 libobs: Add obs_load_all_modules2 and obs_find_modules2
obs_find_modules2 allows the ability to get the module name in the
callback, and the change to obs_find_modules2 also adds the ability to
find out whether any modules failed to load or not.
2022-07-28 16:36:01 -07:00
jp9000
a0eae6f33c libobs/util: Add get_plugin_info (internal)
Allows the ability to get additional information about the plugin beyond
just whether it's an OBS plugin. For this case, whether it can load,
which is primarily used on Windows and mostly just determines whether it
has an incompatible Qt version.
2022-07-28 16:36:01 -07:00
jp9000
97b34ebb76 libobs: Add currently used Qt version to obsconfig.h.in
Allows the ability to have code depending on whether OBS is being
compiled with Qt5 or Qt6
2022-07-28 16:36:01 -07:00
jp9000
8f1ab15281 libobs: Remove funcs/structs to "load all modules" from SWIG
There's no reason to expose these to scripting. Additional context: More
functions/structures will be added related to loading all modules, and
there's no reason to expose them to scripting either.
2022-07-28 14:53:58 -07:00
jp9000
f6e349f033 libobs/util: Put module load detection in its own func
Puts the detection of obs_module_load in Windows DLLs for the "is this
an obs plugin" check into its own function
2022-07-28 14:53:58 -07:00
Tommy Vercetti
90b705fcbc libobs: Rename "Mac OS X" to "macOS" in log 2022-07-28 14:04:01 -04:00
Richard Stanway
ad11ae2f5c
libobs: Remove redundant get_data calls in obs_data functions 2022-07-27 21:58:16 +02:00
gxalpha
9d68c8a848 libobs: Fix crash handler noreturn compiler warning
Maybe not the most correct solution since it never gets hit but much
less code and ifdefs compared to what we'd have else wise.
2022-07-27 12:05:16 -04:00
Norihiro Kamae
106f5f9ace libobs: Remove unused cmake configure files
These files replaces the old input files for `configure_file` in cmake.
- `libobs/cmake/libobsConfig.cmake.in`
- `libobs/pkgconfig/libobs.pc.in`
2022-07-27 10:35:31 -04:00
jp9000
8a698e863d libobs: Add func to get supported service codecs
Allows a service to return a list of codecs that are currently supported
2022-07-26 09:23:35 -07:00
jp9000
cc242ada58 libobs: Remove trailing whitespace 2022-07-26 09:23:35 -07:00
Theodore Dubois
0032d349c9 libobs: Rewrite macOS hotkeys implementation
Co-authored-by: Sebastian Beckmann <beckmann.sebastian@outlook.de>
2022-07-26 14:21:21 +02:00
Anastasiia Sidorovskaia
ef9c99f5f4 libobs: Set coefficients with higher precision 2022-07-25 17:41:26 -04:00
PatTheMav
ab62c9c615 libobs: Trigger bindings injected by Qt directly
Instead of lettings the hotkey thread handle bindings triggered by Qt,
call the callback directly.

By this point, Qt has resolved the modifier state (so no need for the
hotkey thread to do the same), the pressed state is set as well,
the branch takes care of matching the pressed keys.

This also fixes the issue with the hotkey changes introduced by #3914,
which only inject key events when OBS is _not_ in focus (and as such
modifier states are never updated).
2022-07-25 17:33:40 +02:00
tududweb
25d84f40d6 libobs: Fix audio monitor output error in macOS 2022-07-25 17:28:42 +02:00
jpark37
0d129988a9 libobs: Allow Chrome class executable matching
Lets OBS find Spotify.exe even if the window title changes.
2022-07-23 17:41:34 -07:00
jpark37
69ff026647 libobs, win-capture: Share window helper code
Add "ms_" prefix as makeshift namespace.
2022-07-23 17:41:34 -07:00
jpark37
9b46795d57 libobs, UI: Add OBS_ICON_TYPE_PROCESS_AUDIO_OUTPUT 2022-07-23 17:41:34 -07:00