11725 Commits
Author SHA1 Message Date
jpark37andjp9000 d21891b3ca win-wasapi: Fix Stop hang
Fix hang when audio capture is active in the background and stopped by
either closing OBS, or switching scene collections.
28.0.3
2022-10-01 11:28:47 -07:00
Matt Gajownikandjp9000 05b6346250 frontend-tools: Display dialog when changing Python version
Runtime switching of Python version is not supported.
2022-10-01 07:41:37 -07:00
Matt Gajownikandjp9000 89d9493468 frontend-tools: Display Python version in UI 2022-10-01 07:41:37 -07:00
PatTheMavandjp9000 cee2e7db3f UI: Fix AutoRemux not working when FFmpeg output configured
When the Advanced Output configuration is set to use custom FFmpeg
output, automatic remuxing is disabled. Unfortunately this check will
also take place even if Simple Output is used (as the value is set in
the configuration data, but is not "active").

This check ensures that the check for custom FFmpeg output is only
applied when Advanced Output is enabled.
2022-10-01 07:14:06 -07:00
jpark37andjp9000 8efb109144 win-wasapi: Don't reconnect when inactive
Unnecessary reconnect attempts may cause noticeable hitches.
2022-10-01 07:14:06 -07:00
jp9000 539318bd58 libobs: Update version to 28.0.3 2022-10-01 06:07:25 -07:00
Exeldroandjp9000 41d56fd0a7 obs-scripting: Fix compile when python is not found 2022-10-01 06:06:50 -07:00
jp9000 30463ba91c obs-ffmpeg: Fix unpause causing certain encoders to fail
Due to the timeout detection, we need to factor in the current pause
offset to prevent pause from affecting the timeout.

Closes obsproject/obs-studio#7313
2022-10-01 06:06:50 -07:00
jp9000 4b39ea9df3 libobs: Add function to get encoder pause offset 2022-10-01 06:06:50 -07:00
gxalphaandjp9000 c3c4adedd5 UI: Don't reselect SceneTree items if tree is clearing
In the scene tree, we currently prevent deselecting items by
automatically reselecting a new one to workaround a regression in Qt 6.2
that would let users unselect items even in SingleSelection QItemViews.
When clearing however, we explicitly want to unselect the currently
selected item, so we should avoid reselecting it in the SceneTree.
2022-10-01 06:06:50 -07:00
derrodandjp9000 becbb5d885 UI: Remove executable bit from public key file 2022-10-01 06:06:50 -07:00
shinji3andjp9000 dbab976843 obs-ffmpeg: Fix m3u8 recording in AMF 2022-10-01 06:06:50 -07:00
Aleix PolandJim e52ad554aa linux-pipewire: Close sessions as we are done with them
This way the stream can be cleaned up. Otherwise, we closed them all
when OBS closes which works but is not entirely correct.
2022-09-28 19:33:04 -07:00
jpark37andJim fb972b2520 libobs/media-io: Restore color range conversion
FFmpeg needs color range during context init to handle conversions.
sws_setColorspaceDetails after the fact is too late.
2022-09-28 19:33:04 -07:00
Matt GajownikandJim 972628346f CI: Downgrade Sphinx to fix docs build error
This should be reverted once sphinx_rtd_theme is updated.

See https://github.com/readthedocs/sphinx_rtd_theme/issues/1343
2022-09-28 19:33:04 -07:00
jpark37andJim b27c899761 libobs/media-io: Avoid scaler for range diff
Green tint appears when using converting full NV12 to limited NV12 with
swscale, so just avoid creating scaler by color range for now.
2022-09-28 19:33:04 -07:00
Kurt KartaltepeandJim 8e9d9fba24 linux-capture: Fixup window name/class checking
There were a couple mistakes here that caused the fallback checks other
than window ID to fail to ever return valid results. This restores this
functionality that was broken since the c++/c transition.

fixes #7404
2022-09-28 19:33:04 -07:00
Ryan FosterandJim d314eafdc6 obs-ffmpeg: Cap AMF encoder at 100 Mbps
The AMF docs specify that the maximum value for TARGET_BITRATE and
PEAK_BITRATE is 100,000,000 bit/s. Trying to set values above this
maximum value results in AMF choosing from its defaults instead of
capping at the maximum value. Let's cap at 100,000 Kbps in the UI to
prevent users from running in to this.

Fixes GitHub Issue obsproject/obs-studio#7423.
2022-09-28 19:33:04 -07:00
cg2121andJim ea94eeb045 UI: Fix color of popout icon
In the light theme, the dock popout icon was the wrong color,
basically making it invisible.
2022-09-28 19:33:04 -07:00
cg2121andJim 19d92a29a2 UI: Fix dock titlebar icons not loading
The icons had the wrong name in the qss files. The docks were missing
the icons on at least Linux. I have no idea why the dock icons still
worked on Windows though.
2022-09-28 19:33:04 -07:00
jp9000 087ee39e2d libobs: Update version to 28.0.2 28.0.2 2022-09-22 09:40:51 -07:00
pkvandjp9000 afb755f8a0 obs-filter: Update model for NVIDIA Audio FX
This updates the model when swapping effects with NVIDIA Audio Effects.
This fixes a bug where the model was not updated. :(

Signed-off-by: pkv <pkv@obsproject.com>
2022-09-22 09:28:38 -07:00
PatTheMavandRyan Foster 5a16239ed6 UI: Fix crash when removing filter after changing a value
Deleting a filter will trigger a visibility change, which will also
trigger a focus change if the focus has not been on the list itself
(e.g. after interacting with the property view).

When an async filter list is available in the view, it will be the first
candidate to receive focus. If this list is empty, we hide the property
view by default and set the view to a `nullptr`.

When the call for the visibility change returns, we need to check for
this possibility, as another event might have hidden (and deleted) the
view already.
2022-09-21 14:32:09 -04:00
PatTheMavandRyan Foster 07c4ba7b07 obs-transitions: Allow fetching source properties without source
Per OBS API documentation, `get_properties` can be used to get the
properties of a source, but also of a source type. The latter would
pass a NULL pointer for a given source.

This adds the necessary change to avoid crashing OBS by passing such
a null pointer.
2022-09-21 14:28:59 -04:00
PatTheMavandRyan Foster 8388cc22d2 mac-avcapture: Allow fetching source properties without source
Per OBS API documentation, `get_properties` can be used to get the
properties of a source, but also of a source type. The latter would
pass a NULL pointer for a given source.

This adds the necessary change to avoid crashing OBS by passing such
a null pointer.
2022-09-21 14:28:59 -04:00
PatTheMavandRyan Foster 6b56cfddb6 mac-capture: Allow fetching source properties without source
Per OBS API documentation, `get_properties` can be used to get the
properties of a source, but also of a source type. The latter would
pass a NULL pointer for a given source.

This adds the necessary change to avoid crashing OBS by passing such
a null pointer.
2022-09-21 14:28:59 -04:00
PatTheMavandRyan Foster 2a721d92b3 coreaudio-encoder: Allow fetching source properties without source
Per OBS API documentation, `get_properties` can be used to get the
properties of a source, but also of a source type. The latter would
pass a NULL pointer for a given source.

This adds the necessary change to avoid crashing OBS by passing such
a null pointer.
2022-09-21 14:28:59 -04:00
shiina424andRyan Foster 5eaf95a2b9 UI: Fix Light theme Studio Mode labels and T-bar 2022-09-21 13:49:29 -04:00
PatTheMavandRyan Foster 2dbd6c2a2f obs-vst: Make VST editor buttons reflect UI and VST loaded state
This changes the buttons to better reflect the state of the filter:
* When no VST is loaded, hide both buttons
* Check if VST is loaded before changing visibility
* Check if VST is loaded and editor is open before changing visibility
2022-09-21 11:05:01 -04:00
PatTheMavandRyan Foster 4a73b01581 obs-vst: Add public function to check for load state of VST
The bundle/dllHandle/soHandle property is private, so a getter method
is needed to fetch the status of a loaded VST.
2022-09-21 11:05:01 -04:00
PatTheMavandRyan Foster e0f1f95c7a obs-vst: Fix crash on macOS when no VST bundle was loaded
When loading a function from the bundle fails, the binary is unloaded
and the reference is released, but the pointer itself is not reset -
thus the check in the unload function will succeed and try to unload
an invalid bundle reference.

Similar to Linux and Windows, the pointer needs to be explicitly set
to a null pointer to ensure this check fails.
2022-09-21 11:05:01 -04:00
PatTheMavandRyan Foster 9c3c2edd6f obs-vst: Allow fetching source properties without source
Per OBS API documentation, `get_properties` can be used to get the
properties of a source, but also of a source type. The latter would
pass a NULL pointer for a given source.

This adds the necessary change to avoid crashing OBS by passing such
a null pointer.
2022-09-21 11:05:01 -04:00
PatTheMavandRyan Foster 967bce5e15 mac-virtualcam: Fix distorted virtual cam image when using full range
The root cause of the issue is `swscale` dropping the second plane of
biplanar pixel data, resulting in an "incomplete" frame being fed to the
CVPixelBuffer.

As CVPixelBuffers have dedicated support for full range colour, use
these directly, which improves performance even further (as any
conversion for full range data is avoided as well).

To ensure that OBS does not implicitly enable conversion via `swscale`
a video conversion struct needs to be set in any case, ensuring that the
output range and colourspace match the output configuration.
2022-09-21 11:04:25 -04:00
PatTheMavandRyan Foster ee34d8fbfe mac-virtualcam: Fix virtualcam video on Intel-based Macs
This issue primarily seems to affect Intel-based Macs without unified
memory: While an IOSurface is supposed to be shared via a mach port
with other processes, each process needs to lock the surface during
access (as is common with other shared resources).

Apple Silicon-based Macs seem to be less affected as a switch between
GPU and CPU memory (which can happen dynamically for IOSurfaces) would
still point to the same unified memory.
2022-09-21 11:04:25 -04:00
PatTheMavandRyan Foster 1b57419670 UI: Update volume controls decay rate on profile switch
Without this change the decay rate would only be updated when an audio
source is added or when the volume meter itself is changed (e.g. from
horizontal to vertical layout).
2022-09-20 20:32:33 -04:00
gxalpha 332c1b4176 mac-capture: Undeprecate traditional capture sources on macOS 12
SCK has too many bugs on macOS 12 that don't like they will get fixed or
backported for it to be the recommended capture source.
This commit removes the "Deprecated" flag from traditional capture
source if the user is on macOS 12 (even if SCK is available) and marks
SCK as Beta.
2022-09-20 18:49:13 +02:00
derrodandRodney 7ff2a94458 CI: Fix Xcode selection in new runner image 2022-09-20 16:40:18 +02:00
derrodandRyan Foster 947054087b CI: Switch to Xcode Beta 2022-09-20 09:36:13 -04:00
615728fa3b libobs/util: Reject plugins linking Qt5 library for Linux
Since obs-studio switched to Qt6, old plugins linking Qt5 should be
rejected. On Linux system, OBS and it's plugins link the system
libraries so that obs could be crashed by such plugins that links Qt5
when Qt5 functions are called.

Co-authored-by: Norihiro Kamae <norihiro@nagater.net>
2022-09-19 10:01:18 -03:00
derrodandRodney 8865f87f1b CI: Fix service check workflow using outdated cache 2022-09-19 00:04:47 +02:00
cg2121andRodney ffbcbaece8 UI: Refine YouTube dialog
- Make the settings a scroll area. This makes it work on smaller screens and
if more items are added in the future, the dialog doesn't get bigger.

- Made the additional settings label bold to distinguish better.
Also removed the colon, as I felt it wasn't needed because it is
now bold.

- Made the margins consistent between the settings and events pages

- Made the scrollbar show only when needed in the events page

- Moved the remember settings checkbox to the top of the settings because
it just seems better to be there.
2022-09-18 02:10:38 +02:00
Georges Basile Stavracas NetoandJim fb51f8b224 obs-outputs: Drop unused config file
The obs-outputs-config.h.in file is not actually used. It only
defines the FTL_FOUND variable, but the build system takes care
of that by setting a compiler argument for that.

Drop that file.
2022-09-17 16:38:50 -07:00
Wahaj DarandJim ff7720bfe8 rtmp-services: Add Livepush to service list
Adding latest Livepush rtmp endpoints to streaming service list
2022-09-17 16:37:13 -07:00
jpark37andJim bb02620169 libobs: Add support for reading NV12/YUY2 PQ/HLG
8-bit HDR shouldn't exist, but OBS looks broken, so just support it.
2022-09-17 16:36:31 -07:00
PatTheMavandJim 6adb973b6a w32-pthreads: Add pthread.h as public header
When exporting w32-pthreads, the public header file `pthread.h` needs
to be exported as well to expose the implemented functionality.
2022-09-17 16:35:20 -07:00
PatTheMavandJim 9650109748 libobs-opengl: Disable deprecation warnings on macOS
We are aware of OpenGL having been deprecated on macOS since
Mac OS X 10.14, so silence the deprecation warnings the "official" way.
2022-09-17 16:29:51 -07:00
PatTheMavandJim 43dc65beec UI: Fix source name edit textbox not accepting input on enter
The Enter key is connected to the `Edit` function and is handled by
Qt with the highest priority in its key event handler. Alas the boolean
return value is not propagated to the shortcut handling system, so
the key event will always be consumed and as such the user will be stuck
in editing state.

To fix this, `Edit` needs to behave like a toggle, saving the current
state of the input at a repeat press of Enter while in editing state.
2022-09-17 16:27:25 -07:00
Richard StanwayandJim 21c711d46b UI: Ignore left-click on non-multiview projectors
Fixes a crash that could occur after having both multiview and
non-multiview projectors active.
2022-09-17 16:19:24 -07:00
PatTheMavandJim 2c8a55f82b cmake: Fix rundir installation accepting DESTDIR environment variable
The environment variable DESTDIR is commonly used to specify an install-
time prefix for installation of build artifacts (e.g. for staging an
installation in a temporary directory while keeping the overall prefixes
intact).

This variable should be ignored by all targets but the install target,
which requires us to set it to an empty string/path when we use
`install` to set up our rundir.
2022-09-17 16:15:56 -07:00
Stefan HoffmeisterandJim fbb7b93226 linux-v4l2: Remove redundant non-NULL check on FILE 2022-09-17 16:14:05 -07:00