1983 Commits

Author SHA1 Message Date
jp9000
4e43329269 libobs: Update version to 25.0.2 (linux hotfix) 2020-03-22 09:57:12 -07:00
jpark37
f83c4a8582 libobs: Add move assignment operator for BPtr 2020-03-19 16:18:51 -07:00
jpark37
19c6d06a3b libobs: Fix missing assignment operator return 2020-03-19 14:03:56 -07:00
jpark37
b12ab46e62 libobs: Fix size mismatch warning
memcpy unlikely to exceed 4 GB, but just make VS happy.
2020-03-19 11:22:15 -07:00
jpark37
d383efc065 libobs: Handle noexcept warnings
VC++ wants noexcept for move assignment operators, and move contructors.
2020-03-19 11:20:44 -07:00
jp9000
b19ea6fe35 libobs: Update version to 25.0.1 2020-03-19 09:51:06 -07:00
jp9000
8ecfb405ce Revert "win-capture, libobs: Show names of displays in Display Capture"
This reverts commit 9931f22ff4292e7e0a69c05cadaee474520b4786.
2020-03-19 06:43:57 -07:00
jp9000
2570f22aa4 libobs: Update version to 25.0.0 2020-03-16 13:57:47 -07:00
jp9000
cf0a5e5c97 libobs: Fix audio not playing back with audio lines
The fix for the race condition that was made in 432017b2c also broke
audio lines.  This fixes audio lines and moves the fix to just the case
where it actually applied.
2020-03-15 04:44:47 -07:00
jp9000
563e2434c0 libobs: Reset manual state when forcing transition target
Fixes an issue where the manual transition point would not be reset to 0
when the transition's current target is overridden and explicitly set.
2020-03-14 16:25:46 -07:00
jp9000
360af79db2 Revert "libobs: Add extra reference when source is displayed"
This reverts commit 9cff2ae6bb3b6e30447520ec7bd3223735e9bd5d.
2020-03-14 10:54:37 -07:00
jp9000
7d491c7981 Revert "libobs: Only manipulate input source ref counts"
This reverts commit 6d5bb8b24479bd1b512dc217b064e960987f1a07.
2020-03-14 10:54:37 -07:00
jp9000
934a18625e libobs: Remove repeated semicolons 2020-03-14 10:54:37 -07:00
jp9000
8de20ab3be libobs: Add task scheduling features
(This commit also modifies the UI)

Adds the ability to schedule tasks for certain threads
2020-03-14 10:54:37 -07:00
jp9000
39d8ea235c libobs: Fix another group id comparison
Fixes a group id comparison where it was comparing the pointer of the
group name rather than the string contents itself, causing it to treat
it as a non-group source.
2020-03-13 08:03:06 -07:00
Richard Stanway
49bd76755b Make cert revocation check fails non-fatal on Win
Instead of erroring out completely when it can't determine if the
certificate is valid, proceed anyway.  This matches how web browsers
treat failed cert revocation checks.  schannel just has somewhat
paranoid defaults.
2020-03-13 07:48:47 -07:00
Richard Stanway
4dfb572547 libobs: Check return value from obs_scene_add_internal
Errors in obs_scene_add_internal would cause a crash as the null item is
passed to various signal handlers.
2020-03-12 00:02:46 +01:00
jp9000
b31c166814 Revert "graphics: libobs-d3d11: Use DXGI_SWAP_EFFECT_FLIP_DISCARD on Windows 10"
This reverts commit 4da73445c3b30ee0775168f122dc4902191d923a.

This is being reverted because apparently it causes flickering displays
for some people.  Bad drivers or something?  Not sure.  Very annoying.
2020-03-11 09:35:47 -07:00
jp9000
95a920d7ee libobs: Remove legacy libobs data search path 2020-03-10 07:23:10 -07:00
jp9000
8b81b69f14 libobs: Remove legacy module search path 2020-03-10 07:19:45 -07:00
jp9000
432017b2c9 libobs: Don't render audio if context not initialized
Fixes a race where the audio subsystem could call audio render callbacks
before the source was fully initialized.
2020-03-10 07:13:58 -07:00
jp9000
3992bd247c libobs: Fix groups not being recognized as groups
The id of the source was being pointer compared rather than string
compared, so naturally with the source versioning system where the
string is duplicated, the pointers no longer matched.
2020-03-09 17:08:51 -07:00
jp9000
19068c2960 libobs: Handle removed plugins for versioned sources
When someone adds a source and the plugin is removed for whatever
reason, it would cause a crash with the new source versioning system.
This fixes that by ensuring the unversioned id is also backed up along
with the normal id.
2020-03-09 16:53:44 -07:00
jp9000
8d5ab2be3b libobs: Don't return false, return NULL 2020-03-09 16:42:50 -07:00
jp9000
3e01a85d39 libobs: Fix crash when querying versioned id
The wrong array was used, thus it couldn't find "group" or "scene".
2020-03-09 16:37:46 -07:00
Jim
519b3096aa
Merge pull request #2474 from WizardCM/named-display-monitors
Show friendly monitor names on Display Capture on Windows & Projectors
2020-03-09 06:26:52 -07:00
jp9000
b2302902a3 libobs: Fix source type versioning system
(This also modifies image-source, obs-text, text-freetype2, and UI)

This improves source definition versioning.  To do this, it now stores
two identifier names.  One "unversioned" which is the original name, and
one "versioned" with the version number appended.

This fixes both backward compatibility with older OBS versions, and
fixes the inability to use "add existing" in OBS itself on sources
created from older version definitions.
2020-03-09 06:12:22 -07:00
jp9000
476c332a41 libobs: Compare scene/group ids by strcmp 2020-03-09 05:57:01 -07:00
Matt Gajownik
9931f22ff4 win-capture, libobs: Show names of displays in Display Capture 2020-03-09 11:13:59 +11:00
jpark37
6d5bb8b244 libobs: Only manipulate input source ref counts
Filters can be hidden without being shown, which can unbalance the ref
count and destroys them prematurely. We really only care about input
sources having a chance to clean up from the render thread from the hide
handler, Windows 10 window capture specifically.
2020-03-06 01:14:38 -08:00
jp9000
b9d6675e2c libobs: Add ability to rotate async sources 2020-03-01 03:39:54 -08:00
jp9000
675530204e libobs/util: Add dll version compare func 2020-02-28 23:48:12 -08:00
jp9000
46c8ef615d libobs/util: Use MAX_PATH for absolute path funcs
Makes these functions a bit more consistent with the rest of the
project.
2020-02-28 23:48:12 -08:00
jp9000
ca4b04754c Revert "libobs: Fix audio keyframe issue"
This reverts commit ff22c20019115adee471328f729588db0115f45f.

This caused a bug in FTL output, which started hitching after this
commit.  Presumably due to opus; it's likely you're not supposed to do
this with all audio encoders.
2020-02-27 06:44:20 -08:00
Richard Stanway
269ebd2983 libobs: Handle empty path in os_get_path_extension
os_readdir might return an empty path if the OS filename doesn't fit
into the buffer after os_wcs_to_utf8. If this empty path is then passed
to os_get_path_extension it causes a crash.
2020-02-25 21:31:25 +01:00
Jim
267874ad92
Merge pull request #2427 from Rosuav/retry-pipe-write
libobs/util: Retry pipe writes to avoid spurious failures on short write.
2020-02-24 23:41:48 -08:00
jpark37
3703581472 libobs: Pump graphics loop one final time for cleanup 2020-02-23 19:43:10 -08:00
Chris Angelico
664acef494 libobs/util: Retry pipe writes to avoid short-write failures
Previously, any short write would be treated elsewhere as a failure. The
easiest solution is to have pipe_write() automatically retry until either
it's written everything, or it couldn't write anything at all.
2020-02-24 12:29:54 +11:00
jpark37
9cff2ae6bb libobs: Add extra reference when source is displayed
This provides a chance to clean up resources on the graphics thread in
the hide callback, which Windows Graphics Capture requires.
2020-02-22 21:02:33 -08:00
jpark37
82cdc6e8c6 libobs: Pump Win32 messages on the graphics thread
Necessary for upcoming Windows Graphics Capture support.
2020-02-22 21:02:33 -08:00
jpark37
f27f858ab3 libobs: Support device loss registration
Complex external systems using the D3D11 device may need to perform
their own device loss handling, the upcoming Windows Graphics Capture
support for example.
2020-02-22 21:02:33 -08:00
jpark37
82797eb367 libobs: Make ComPtr header self-sufficient
Don't make someone else define IUnknown.
2020-02-22 21:02:33 -08:00
Richard Stanway
862f16285f libobs: Don't strip whitespace from config values
A plugin that saves whitespace-only data would crash OBS on startup as
the whitespace stripping would send the string length negative. While
that bug is fixed in this commit, there is also no good reason that OBS
is stripping whitespace to begin with. All data going into the configs
should be well formed and some plugins legitimately wish to save
whitespace as a config option (eg for search / replace characters).
2020-02-23 04:02:42 +01:00
jp9000
4f6b4df17e UI: Hide encoder if marked internal
(This commit also modifies libobs)

Hides encoders that are marked as internal.  Same general functionality
as DEPRECATED but not actually deprecated, just internal-only.
2020-02-18 21:37:41 -08:00
jp9000
de363d3e09 libobs: Add obs_encoder_scaling_enabled()
Returns whether rescaling is enabled for an encoder.  This will be used
with texture-based encoders to determine whether to fall back to
RAM-based encoding instead.
2020-02-18 20:58:58 -08:00
Jim
d13f204488
Merge pull request #2257 from Xaymar/fix-remove_by_name-corruption
libobs: Don't corrupt obs_properties in ..._remove_by_name
2020-02-15 20:03:58 -08:00
jp9000
6970cc32c2 libobs: Remove unused variable 2020-02-12 18:31:18 -08:00
jp9000
ff22c20019 libobs: Fix audio keyframe issue
Audio packets are always considered keyframe packets, so if they weren't
already, mark them as keyframe packets.
2020-02-12 18:27:42 -08:00
jp9000
94d4bfdb1c libobs: Restore order 2020-02-09 18:36:58 -08:00
Ilya Melamed
9f035e430c libobs: fix obs_sceneitem_group_XXX_item API
`obs_sceneitem_group_add_item` and `obs_Sceneitem_group_remove_item`
were leaving the affected scene in an inconsistent state.

To resolve, simplify and make the code more readable, we replace the
manual linked lists mutation with existing `detach_sceneitem` and
`attach_sceneitem` calls.
2020-02-08 13:17:02 +02:00