Commit graph

13933 commits

Author SHA1 Message Date
derrod 9a8e6267a8 UI: Remove legacy migrations 2024-04-12 05:14:01 +02:00
Service Checker 97b03e3c54 rtmp-services: Remove defunct servers/services 2024-04-11 20:47:09 -04:00
tt2468 3d30a4efea obs-ffmpeg: Remove mpegts format override for SRT and RIST
FFmpeg is already very effective at detecting the correct input format
for socket-style protocols (SRT, RIST, TCP, UDP, etc.). By overriding
the format of SRT and RIST manually to mpegts, the user is being
prevented from using other container formats via these protocols.

In the rare case that libavformat is unable to detect the correct
container format for an SRT or RIST stream, the user may manually
specify that format in the existing format field.

With the FFmpeg options field which was recently added, probe options
may be specified by the user to further tune format detection.
2024-04-10 18:45:45 -04:00
Chaturbate 15b5dae9c2 rtmp-services: Update Chaturbate 2024-04-10 14:09:28 -04:00
Warchamp7 b67338c448 plugins: Remove dynamic default path properties 2024-04-09 21:10:50 -04:00
Warchamp7 16e86f2d49 UI: Use existing path for file dialogs 2024-04-09 21:10:50 -04:00
derrod 2c62909d9b UI: Fix filter undo action using UUID instead of name 2024-04-09 21:10:19 -04:00
powersagitar b5b9d1c373 Extend min panel width to eliminate text clipping
Change size policy of "Start Virtual Camera" button to ensure the
minimum width of `Controls` panel is the same as "Start Virtual
Camera" button plus the gear (settings) icon, therefore to
eliminate text clipping when overflow.
2024-04-09 20:57:37 -04:00
Penwywern b80d45f132 UI: Log available encoders on load 2024-04-08 16:35:16 -04:00
GPattenden 60dd0c3ba6 UI: Move recording warnings to bottom of window 2024-04-07 00:39:22 -04:00
derrod f47fc81d32 obs-qsv11: Remove adaptive CQM option
Without setting the ScenarioInfo to game streaming, which was removed
in 03b70f0672, this is a no-op and its
existence is just confusing to users.
2024-04-07 02:07:59 +02:00
Gale 4c6e2a6722 obs-qsv11: Fix for QSV AV1 in multi-GPU system 2024-04-06 17:06:31 -07:00
tytan652 e032c2d0c9 deps,libobs: Replace uthash with prefix/system install 2024-04-07 10:01:25 +10:00
tytan652 0faa661f2b CI,build-aux: Add uthash on Linux 2024-04-07 10:01:25 +10:00
tytan652 cebc828cb8 cmake: Add finder for uthash 2024-04-07 10:01:25 +10:00
tytan652 7d4501131a linux-v4l2: Fix deprecation with FFmpeg 7
FFmpeg 7 header states that avcodec_close should not be used since
avcodev_free_context already close the context.
2024-04-06 16:59:52 -07:00
tytan652 8dbad9ac29 obs-ffmpeg: Fix incompatible-pointer-types with FFmpeg 7 2024-04-06 16:59:52 -07:00
Ryan Foster 01610d8c06 libobs: Update version to 30.1.2 2024-04-05 15:32:10 -04:00
Ryan Foster 22205d582c Revert "UI: Change default format for release builds to fMP4/fMOV"
This reverts commit 9488bb20b6.

This is currently a frequent support issue as Windows Media Player,
Movies & TV, and File Explorer all cannot seem to handle fMP4 files
correctly. Windows Media Player and Movies & TV will play the files
fine, but no duration is listed and the applications cannot seek the
file. File Explorer will simply not list the file's length/duration (the
field is shown as having no set value). This was somehow not caught
during a year's worth of beta and RC builds. The world just wasn't ready
for this. =(

We have reported these issues to Microsoft, and we will revisit this in
the future.
2024-04-05 14:46:53 -04:00
Aleks Todorov 80ad63a6da cmake: Provide a clear error on version check fail
Currently, when git describe fails to get a git tag for the OBS Version,
a non-fatal message is printed, and the generator is left to continue,
usually ending up with a more cryptic error message down the line.

Instead, print the git output together with a short description of what
actually happened, and exit fatally so the problematic line of code is
clear. An added advantage is that the git output is printed in red
instead of (say) white on color-enabled terminals.
2024-04-04 15:13:43 -04:00
Ryan Foster 28d7d4fe60 UI: Use spacers instead of widgets in macOS Permissions UI
The macOS Permissions dialog was using empty widgets to force other
widgets into position. Instead, use horizontal spacers.
2024-04-04 14:42:19 -04:00
Ryan Foster 206af52467 win-wasapi: Fix legacy CMake
Follow-up to 1d5d4b29e7f48f9c414388f900d983f0eeef77df:

win-wasapi: Handle changes to the default monitoring device

Splits the WASAPINotify class out of win-wasapi.cpp and makes it a
shared object in the plugin, then also creates a callback to reset
audio monitoring if the default output device changes.
2024-04-03 14:44:39 -04:00
Ryan Foster a1973ea952 libobs-d3d11: Use OS D3DCompiler_47.dll in legacy CMake
Follow-up to 972e24df79.
2024-04-03 14:44:39 -04:00
PatTheMav 19646f9434 CI: Update formatting actions to use git diff filter before formatting
Using git's diff-filter when checking for changed files allows the
actions to ignore any deleted files. Combined with explicitly passing
glob expressions for source files to git directly allows the command
to yield a list of changed files compatible with a given formatter
directly.
2024-04-02 19:38:09 -04:00
WuLongyue 685bc561d9 rtmp-services: Update "CHZZK" platform 2024-04-02 12:45:28 -04:00
derrod 3a1035576e obs-ffmpeg: Add Linux NVENC texture encoder 2024-03-31 02:33:07 -07:00
derrod c1f0f89cdf CI: Disable native NVENC for Ubuntu builds 2024-03-31 02:05:40 -07:00
derrod 2f55f046fe obs-ffmpeg: Add native non-texture NVENC implementation 2024-03-31 02:05:40 -07:00
derrod 98ee9c987e cmake: Add HANDLE_VERSION_RANGE to FFnvcodec finders 2024-03-31 02:05:40 -07:00
tytan652 78cd07bd58 UI,plugin: Refactor virtual camera enablement 2024-03-30 16:43:30 -07:00
Ryan Foster 11131682b1 UI: Check low disk space only if recording to a file
The Custom FFmpeg Output allows the user to configure it to output to a
URL instead of a file. In OBSBasic::StartRecording(), we unconditionally
call LowDiskSpace() to check for low disk space because we assume that a
"recording" will always be to disk. When os_get_free_disk_space() is
called on a non-existent path, it returns 0, which causes OBS to emit a
low disk space warning. Instead, only call DiskSpaceMessage() if not
"recording" to a URL.
2024-03-30 16:24:04 -07:00
derrod 4e18bb6e50 obs-outputs: Set AV1 packet priority 2024-03-30 16:15:03 -07:00
derrod 53319e05f7 obs-outputs: Cleanup some unused leftovers 2024-03-30 16:15:03 -07:00
Rob Howell f5e77a4587 UI: Fix scene rename on tab and back tab 2024-03-30 16:09:41 -07:00
Mariana 004253f296 UI: Fix Auto-Config Wizard for custom server with no stream key
The Auto-Configuration Wizard cannot progress when selecting a custom
service that does not require a stream key. Since we have no way to
validate if a custom service requires a stream key, we should just not
require a stream key is custom service is selected. To fix this, check
if a custom service has not been selected when checking if the stream
key is empty.

Co-authored-by: Ryan Foster <ryan@obsproject.com>
2024-03-29 11:35:03 -04:00
Len 1badf8e11b rtmp-services: Add Hakuna Live RTMP service 2024-03-28 19:34:06 -04:00
Ryan Foster 6f3f7b4e5a obs-ffmpeg: Fix NVENC compatibility hack for old drivers/hardware
Add a COMPAT version of NV_ENC_INITIALIZE_PARAMS_VER, which changed
between SDK 12.0 and 12.1.

If using drivers older than the configured SDK/API requires, fall back
to the compatibility version of the API (11.1).

An example scenario would be encoding in H.264 on driver version 512.15.
SDK 12.1 requires driver version 531.61 on Windows. Currently, in this
scenario, OBS will fall back to the FFmpeg encoder path, which will do
its own driver check, which will fail on this driver version.

With this change, this scenario will instead leverage the existing
compatibility hack to fall back to the compatibility version of the API
without falling back to FFmpeg.

It should be noted that while neat, the compatibility hack that enables
Kepler GPUs to continue to be able to use NVENC in this way is expected
to be removed at some point.
2024-03-27 19:11:26 -04:00
Ryan Foster 24470b351a obs-ffmpeg: Set needs_compat_ver before struct version checks
Because 4a8e8bb1bd changed the
NVENCAPI_STRUCT_VERSION define to rely on enc->needs_compat_ver, we must
do the conditional check and define needs_compat_ver before any structs
are initialized because they will check the version when doing so by
calling NVENCAPI_STRUCT_VERSION internally.

In this case, make sure that we define enc->needs_compat_ver before
NV_ENCODE_API_FUNCTION_LIST_VER is called for
NV_ENCODE_API_FUNCTION_LIST.
2024-03-27 19:11:26 -04:00
Exeldro 8c9e4c2822 obs-text: Fix alignment with extents 2024-03-27 18:45:01 -04:00
PatTheMav fc9d3a208e CI: Fix JSON runtime error for language file uploads
The upload step in the job uses the output of two prior steps as its
condition. One of the jobs itself is a conditional job, so if the
primary condition is not met, the secondary output is not set and the
fromJSON call will fail.

Using a string comparison allows the check to still work as expected
(as the output will be an empty string otherwise)
2024-03-27 18:28:14 -04:00
Penwywern c4ef7c3241 docs: Document the audio_active functions and signals 2024-03-27 16:29:20 -04:00
derrod dc770b8fa8 UI: Disable scrolling for encoder properties 2024-03-23 16:43:28 -07:00
derrod da43aa109e UI: Add option to disable scrolling to OBSPropertiesView 2024-03-23 16:43:28 -07:00
Ryan Foster 69e7eb2c7d libobs: Update version to 30.1.1 2024-03-21 17:58:44 -04:00
Kurt Kartaltepe 4a903d5f85 obs-qsv11: Check all encoders are Intel devices
On Linux, we enumerate all VA-API devices, which incorrectly enables
QSV AV1/HEVC encoders when AMD devices report these capabilities.
2024-03-21 15:43:13 -04:00
Ryan Foster 329bbcf64a CI: Update deps to 2024-03-19 release
Notable changes:
 * CI: Force use of Xcode 15.2 to fix runtime crashes on older macOS

This affects all macOS deps. There are no other changes.
2024-03-20 17:31:15 -04:00
tt2468 8fd61c2049 deps/media-playback: Detect+handle video res changes with hwaccel 2024-03-19 16:58:20 -07:00
Florian Zwoch 823e968a71 mac-capture: Fix string length when duplicated 2024-03-19 16:20:31 -04:00
derrod 567e35ac69 libobs: Set channel layout for remux output 2024-03-18 19:41:46 -04:00
наб 87902cb106 UI: Size the abstract-socket address properly
Unlike filesystem addresses, which are paths,
abstract addresses are blobs.

This means that the address wasn't "\0/com/obsproject 2413747 version",
but rather "\0/com/obsproject 2402613 version\0\0\0\0\0\0\0\0\0\0\0\0\0
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
this is reflected in both /proc/net/unix:
  000000001bf56057: 00000002 00000000 00000000 0002 01 56719817
                    @/com/obsproject 2402613 version@@@@@@@@@@@
                    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                    @@@@@@@@@@@@@@@@@@@@@@
  000000003e897b41: 00000002 00000000 00000000 0002 01 56730132
                    @/com/obsproject 2413747 version
and ss -l, extending the whole address column to the point of
unusability.

This size calculation follows trivially from the manual,
and naturally behaves correctly, as above.
2024-03-18 20:18:02 -03:00