Commit Graph

10081 Commits (b3870476324e2dc79a9d30371a1199376bcd0ad7)

Author SHA1 Message Date
Rodney b387047632
CONTRIBUTING.rst: Add service submission guidelines (#5562) 2021-11-22 08:29:39 -06:00
jpark37 6393c3f4cd ipc-util: Fix potential ready_event hang
There is an expectation that ready_event will signal/wake 1:1, so the
stray teardown signal may get lost. Add new stop_event for safety.
2021-11-21 01:38:36 -08:00
tt2468 44f07f9b11 UI: Delete OBSDisplay on window hide on unix
When a window with an OBSQTDisplay is closed, the surface can be
destroyed before the display is, opening a gap for OBS to attempt to
draw to the invalid surface.

This deletes the underlying OBSDisplay object when the actual surface
is destroyed, closing that gap.

Note: This appears to have been an issue previously with Wayland, as
hinted by the existing ifdefs.
2021-11-20 23:47:02 -08:00
jpark37 2fa145899f inject-helper: Remove UNUSED_PARAMETER macro
Potential definition clash with c99defs.h. Not needed anyway.
2021-11-20 22:53:10 -08:00
tt2468 e85c8f32fb text-freetype2: Move default settings to .get_defaults
obs-websocket's `GetInputDefaultSettings` request uses
obs_get_source_defaults() in order to fetch a source id's default
settings. This moves the default settings to the `.get_defaults`
callback so that our request does not return an empty object.

Does not affect existing functionality
2021-11-20 20:04:53 -08:00
tt2468 33b75a1a78 UI: Update adv audio props on monitoring type change
Update the audio monitoring combo box when it is changed via libobs.
Required to make obs-websocket requests work well
2021-11-20 20:00:59 -08:00
tt2468 c90b13f93e libobs: Add `audio_monitoring` source signal
Adds a source signal for audio monitoring type changes
2021-11-20 20:00:59 -08:00
tt2468 ff22897d68 libobs/UI: Stop using preprocessor directives for monitor
**Code Cleanup**
Stop using preprocessor directives to determine if audio monitoring
is supported. Use runtime function instead
2021-11-20 20:00:59 -08:00
tt2468 6e9644ec15 libobs: Add obs_audio_monitoring_supported()
Currently, ifdefs are used to determine if monitoring is supported.
This is difficult to maintain and restricts plugins from knowing if
monitoring is supported by OBS. This adds a runtime function to fix
that issue.
2021-11-20 20:00:59 -08:00
tt2468 544633d9bb UI: Remove unnecessary calls to `RefreshSources()`
With the previous commit, these calls to `RefreshSources()` are no
longer necessary.
2021-11-20 19:58:38 -08:00
tt2468 71d7b6855d UI: Refresh source tree when an item source is removed
Previously, calling `obs_source_remove()` on an input would not fully
remove it if there was a scene item of the input on the current scene.

Now, when calling `obs_source_remove()` and there is a scene item of
the removed input on the current scene, the UI refreshes the scene
items, allowing the scene item to be released completely and the
input destroyed.
2021-11-20 19:58:38 -08:00
Ryan Foster 651f01cfef UI: Import Streamlabs Screen Capture source type
Add support for importing the Screen Capture source type from Streamlabs
scene collections. Since the Screen Capture source type is essentially
an abstraction layer for Display Capture, Game Capture, and Window
Capture, this adds some translation logic to translate Screen Capture
sources into one of those source types.
2021-11-21 14:46:14 +13:00
VodBox c8e417057a libobs, libobs-d3d11: Add support for NT Handle shared textures
Adds support for using shared textures that were made with the
D3D11_RESOURCE_MISC_SHARED_NTHANDLE flag.

This increases the minimum required Windows version to Windows 8 or the
Platform Update for Windows 7. As official support is only for Win 8+
this does not change official support.
2021-11-20 16:34:28 +13:00
gxalpha e922a5586f docs: Document obs_group_or_scene_from_source 2021-11-19 02:30:44 -05:00
tt2468 155b91a94e docs: Fix outdated speaker_layout enum
Commit 67e48ecc2c changed this enum from
`SPEAKERS_QUAD` to `SPEAKERS_4POINT0` but did not update the docs.
2021-11-19 00:16:23 -05:00
Clayton Groeneveld 8d349ea4aa obs-frontend-api: Add scripting shutdown event
This event is for when scripts need to know when OBS is exiting.
Currently scripts are destroyed before the current exit event.
2021-11-15 10:20:55 -08:00
tt2468 a65287d615 docs: Add obs_frontend_get_current_record_output_path() 2021-11-13 16:05:52 -08:00
tt2468 22fa8f8bb0 UI: Add obs_frontend_get_current_record_output_path()
Returns the current path of the record output.
2021-11-13 16:05:52 -08:00
Kurt Kartaltepe 293b7951ed UI: Update python linkage for older compilers
Move the python linkage after the obs target is defined so that we can
also add linker flags to preserve the unused python linkage. This is
required before GCC 11.
2021-11-13 16:00:09 -08:00
Guang Zhou 99a7d19d15 rtmp-services: Add Manyvids.com 2021-11-11 10:10:15 -08:00
Christine Lin 3995326647 obs-qsv11: Remove Intel discrete device ID checking
As Intel continues to add discrete graphics cards, maintaining a long
list of discrete device IDs to check against isn't wise. When i+I
platforms are detected, default to integrated graphics.
2021-11-10 20:15:52 -08:00
jp9000 0815d5c887 Revert "libobs: Avoid recycling async frames"
This reverts commit 96c1a76523.

Closes obsproject/obs-studio#5474
2021-11-10 16:54:27 -08:00
Kurt Kartaltepe 1017cd5430 UI: Link python when obs-scripting python is enabled
This fixes #2222 by ensuring python symbols are in the global symbol
table through a direct linkage to the executable. When python is
normally linked via frontend-tools.so its symbols are not global since
we dlopen frontend-tools.so. This causes issues for native python
modules which stopped directly linking python around 3.8 as the symbols
will not resolve.

This is pretty much a hack, but it minimizes the number of extra symbols
we add and hopefully isnt too terrible to maintain.
2021-11-10 14:36:26 -08:00
Florian Zwoch 88aec3b43c linux-v4l2: Change search strategy for v4l2loopback devices
Instead of trying to open devices /dev/video<0-63> check /dev for
all /dev/videoX devices that are existent in the tree. This allows
finding devices with higher names than 63. E.g. /dev/video100 can
now be found and opened which previously failed.

_GNU_SOURCE #define is introduced for versionsort() which is a GNU
extension.

Fixes #4347.
2021-11-10 19:32:30 -03:00
Anthony Torres fd500f15a3 UI: Apply transforms/crops correctly to sources on paste
Applies transformations correctly to copy/pasted sources when copy and
pasting multiple. Previously the transformation/crop state was stored in
a single variable on copy so it would only apply the transformations to
one of the selected sources on paste instead of what the state was when
copied.
2021-11-10 14:22:45 -08:00
Exeldro aee6d813f1 obs-transitions: Fix stinger transition looping 2021-11-10 12:47:39 -08:00
David Plappert 8d374bdaa8 rtmp-services: add PhoneLivestreaming 2021-11-10 12:42:29 -08:00
gxalpha 577d6f1614 UI: Add undo/redo for resetting filters properties 2021-11-10 08:10:16 -08:00
tt2468 10b3a9a84a docs: Add `_CHANGING` frontend events
Also improves a few related event descriptions.
2021-11-10 06:36:23 -08:00
tt2468 feda1aaa28 UI: Add `_CHANGING` frontend events
Adds the following events:
- `OBS_FRONTEND_EVENT_SCENE_COLLECTION_CHANGING`
- `OBS_FRONTEND_EVENT_PROFILE_CHANGING`

Both emitted right before the change occurs. Can provide plugins with
better awareness of these critical operations happening, so that they
can react accordingly.
2021-11-10 06:36:23 -08:00
Mike 9267c7e53d UI: Update Edit Transform dialog on scene switch
Closes obsproject/obs-studio#4312
2021-11-10 06:08:48 -08:00
lucha e09b952068 rtmp-services: Add Autistici.org 2021-11-09 13:54:57 -08:00
Thomas Müller d7a95eb690 rtmp-services: add Utreon 2021-11-09 13:38:40 -08:00
gxalpha c36a5ae92b libobs: Add obs_get_transition_by_name 2021-11-07 07:40:03 -08:00
gxalpha a7e0affd36 UI: Don't load existing sources for scene removal undo 2021-11-06 15:08:17 -07:00
gxalpha 509e44d6ea UI: Add undo/redo for context bar text changes 2021-11-06 14:43:58 -07:00
Norihiro Kamae 2a0b9d851c obs-ffmpeg: Fix starting video packet offset in replay-buffer
The commit 4a5ac3974 fixed the bug the first PTS is not zero. This
commit fixed the same issue in replay-buffer.
A variable `video_dts_offset` is renamed to `video_pts_offset` and the
variable is initialized by `pts` instead of `dts`.
2021-11-04 14:49:17 -07:00
Kurt Kartaltepe 5142a7685d pulse: fill audio monitor buffer more aggressively
Previously we would wait for pulse to attempt to read from the monitor
source and obs buffered at least 5ms of audio data before we tried to
fill the buffer. In some cases this resulted in consistently triggering
underruns in pulse.

Instead we try to fill the buffer immediately as obs outputs audio data
and while the pa buffer is not full. We also stop trying to grow the
buffer to prevent underruns after we reach 1s of latency.
2021-11-04 13:00:46 -07:00
zhaolong e7a4ed4067 rtmp-services: add Kuaishou live 2021-11-04 06:41:55 -07:00
Clayton Groeneveld af6c719139 UI, libobs, obs-plugins: Fix compiler warnings
Found warnings when compiling OBS.
2021-11-04 06:25:52 -07:00
gxalpha c565bcaf54 UI: Set correct text in system tray on startup
The system tray assumed all outputs are inactive when it's initiated,
however outputs can be active if started via command line options. This
caused the wrong (only) text to be set if the output was in fact active.
2021-11-04 03:40:17 -07:00
gxalpha ea90b93c33 UI: Remove duplicated StreamingActive() function 2021-11-04 03:38:45 -07:00
Matt Gajownik a2c3896e1a UI: Match Windows taskbar state to tray icon
This adds a status icon for active/paused outputs.

Stripped down version of #2442
2021-11-03 09:28:41 -07:00
Georges Basile Stavracas Neto 1392ea5ca6 CI: Enable services on Flatpak builds
The flatpak-builder tool now supports passing secrets options to the
build system. These options are not printed during the build, nor
added to the resolved manifest after build, so they don't leak env
vars from CI.

Make secret variables part of the Flatpak workflow environment, like
the main workflow. Pass the various services hashes and clientids to
the build system using the new "secret-opts" key.
2021-11-03 13:17:03 -03:00
Norihiro Kamae ebadfa3794 CI: Fix error when uninstalling curl and php 2021-11-03 21:13:23 +11:00
gxalpha 01d91ee600 UI: Focus correct filter list when opening filter view
When the filter view is created, the first item of the asyncFilters list
would be selected (if the source supports asyncFilters) and have its
properties shown.
This means that when no items were in the asyncFilters list, no
properties would be shown, even if an effect filter was present.

Adds a check to focus the effectFilters list in case there are only
effect filters, which makes the correct properties appear.
2021-11-02 10:33:23 -07:00
gxalpha 25204b3e68 UI: Focus filter list when adding new filter
Fixes an issue where the defaults button wouldn't work since the wrong
list is in focus.
2021-11-02 10:33:23 -07:00
Rafael Franco c7de398309 linux-capture: Sort windows by name 2021-11-02 06:06:46 -07:00
Norihiro Kamae 76f7a0c1c0 libobs-opengl: Use PBO in device_stage_texture on macOS
Previously glReadPixels was used to stage surfaces because Mac OS X at
that time supported some hardwares that didn't implement glGetTexImage.
However, OBS Studio now requires OpenGL 3.3 so that glGetTexImage on
macOS should work the same as on Linux.
The code using glReadPixels was introduced at 30af7dc. The minimum
requirements of the original OBS Studio for OSX was 10.8, which supports
hardwares with OpenGL 1.4. However, the function glGetTexImage requires
OpenGL >= 2.0.
2021-11-02 06:05:18 -07:00
Morten Bøgeskov 1c2aea4f89 linux-v4l2: Support for Motion-JPEG codec 2021-11-02 06:04:54 -07:00