0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00
Commit Graph

13890 Commits

Author SHA1 Message Date
Ryan Foster
69d274074e libobs: Update version to 30.1.2 2024-04-05 15:36:02 -04:00
Ryan Foster
ab6d9d8e85 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.

(cherry picked from commit 22205d582c)
2024-04-05 15:15:29 -04:00
Ryan Foster
5c53390132 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.

(cherry picked from commit 6f3f7b4e5a)
2024-04-05 15:15:29 -04:00
Ryan Foster
925a1b2256 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.

(cherry picked from commit 24470b351a)
2024-04-05 15:15:29 -04:00
Ryan Foster
082377043e libobs: Update version to 30.1.1 2024-03-21 18:01:31 -04:00
Kurt Kartaltepe
7300087381 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.

(cherry picked from commit 4a903d5f85)
2024-03-21 16:49:59 -04:00
Ryan Foster
2109869e68 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.

(cherry picked from commit 329bbcf64a)
2024-03-21 16:49:59 -04:00
Florian Zwoch
6dc9918181 mac-capture: Fix string length when duplicated
(cherry picked from commit 823e968a71)
2024-03-21 16:49:59 -04:00
derrod
d8d7d3addb libobs: Set channel layout for remux output
(cherry picked from commit 567e35ac69)
2024-03-21 16:49:59 -04:00
pkv
da563111df deps/media-playback: Fix hardware decoding of streams
Fixes issue #10369.
Since the update to FFmpeg 6.1, streams to a Media Source are broken
if hardware decoding is enabled (both RTMP or SRT have been reported).
The video is black although the audio is decoded fine.
The manual copy of metadata introduced in commit [1] does not work any
more for some unfathomable reasons.
As a fix we call instead the av_frame_copy_props function used in FFmpeg
app in a similar context (hardware decoding) [2].
The metadata are copied without issues.
There is no need to guard the use of that function since it was
introduced 9 years ago in avutil/frame.c.

[1] 22fde5cdcd
[2] https://github.com/FFmpeg/FFmpeg/master/fftools/ffmpeg_dec.c

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit 41f07913e5)
2024-03-21 16:49:59 -04:00
PatTheMav
7e28ee4f5b win-dshow: Set MSVC runtime on virtual camera targets directly
The MSVC_RUNTIME_LIBRARY property is not propagated to targets which
link against a target which has this property set. Thus the property
needs to be set on the actual virtualcam targets and not the interface
library.

(cherry picked from commit 3af1b78f35)
2024-03-21 16:49:59 -04:00
PatTheMav
da05188f9e win-capture: Add missing MSVC runtime setting to 32-bit build
(cherry picked from commit 14654807cb)
2024-03-21 16:49:59 -04:00
jcm
57ed925f92 mac-capture: Standardize early return behavior in init_screen_stream()
(cherry picked from commit 7fab3d03e0)
2024-03-21 16:49:59 -04:00
derrod
7eeac117c2 obs-ffmpeg: Fix HDR metadata not being written when using FFmpeg 6.1+
(cherry picked from commit 5f2bb795f0)
2024-03-21 16:49:59 -04:00
Georges Basile Stavracas Neto
03e97654a5 UI: Improve and update app metainfo file
- Rename from .appdata.xml to the modern .metainfo.xml
- Add a primary branding color (Yami blurple)
- Add "internet" to recommends and supports
- Update developer_id tag to developer name
- Shorten summary
- Remove obsoleted "kudos" tags
- Add a URL to the release tag

(cherry picked from commit 0cc6068ed4)
2024-03-21 16:49:59 -04:00
Ryan Foster
e1e1b6daab obs-browser: Update version to 2.23.4
9c235de - Update translations from Crowdin
58c7365 - CI: Update first-party GitHub Actions from v2 to v4
fc2cbaf - Update translations from Crowdin
2024-03-12 14:37:49 -04:00
Translation Updater
10b02e11d0 Update translations from Crowdin 2024-03-12 18:11:06 +00:00
cg2121
140abfeb66 UI: Fix closing OBS with floating docks
When OBS is closed and there is a floating dock, a Windows system
sound is emitted. This fixes that by not executing the close dock
dialog when OBS is closing.
2024-03-11 20:38:04 -04:00
derrod
9488bb20b6 UI: Change default format for release builds to fMP4/fMOV 2024-03-11 18:40:14 -04:00
Ryan Foster
9c1f0aaa9f .git-blame-ignore-revs: Add clang-format 17 update 2024-03-11 16:27:44 -04:00
PatTheMav
f4733ec6a2 Update source code formatting with clang-format 17.0.3
Added SCDisplayRef type alias to fix a quirk of this specific
clang-format version with ObjC block syntax.
2024-03-11 15:55:30 -04:00
PatTheMav
dd3255815c CI: Update clang-format version to 17.0.3 2024-03-11 15:55:30 -04:00
Patrick Heyer
e0f0c1147a
libobs: Fix missing w32-pthreads dependency when building without UI (#10360)
w32-pthreads is not correctly added to the generated CMake project
if the UI subdirectory is not also included, which leads to builds
configured without UI to fail.
2024-03-11 15:29:33 -04:00
derrod
7cacd18e55 win-capture: Always reconfigure audio source when game capture hooks 2024-03-09 20:13:58 -05:00
PatTheMav
ddeb89f71f CI: Limit format checks to changed files only
Before the CI checks for source code and CMake files would always
check the entire source code even if just a single files has been
changed.

With this update, the formatting script is enhanced to accept a list
of files (which is generated as a condition to run the script in the
first place) which ensures that a PR will only fail validation over
files it changed itself.
2024-03-09 15:45:36 -05:00
Ryan Foster
3726a021eb CI: Use Phased Group Rollout in Sparkle for stable tags 2024-03-09 14:23:41 -05:00
Ryan Foster
65edd99c64 CI: Use array to build options string for Sparkle 2024-03-09 14:23:41 -05:00
invalidtask
725f495213 rtmp-services: Update Vaughn Live and Breakers ingests 2024-03-08 22:35:12 -05:00
Ryan Foster
d25042a8ca obs-webrtc: Add additional error messaging for WHIP output
Adding to the previous commit, let's also use obs_output_set_last_error
to provide localized error messages to the user if we run into these
failure cases.
2024-03-08 21:51:42 -05:00
Ryan Foster
c3a20bd366 UI: Block Elgato Stream Deck plugin before 5.5.2.0 to avoid crashes
The Elgato Stream Deck plugin older than 5.5.2.0 invokes undefined
behavior that results in application crashes. Let's block older versions
to prevent the crashes.
2024-03-08 21:33:44 -05:00
Ryan Foster
589495a952 frontend-tools: Fix output timer stopping recording on unpause
If the "Pause timer when recording is paused" option in the Output Timer
settings was enabled, even if an Output Timer was not being used, a
recording may stop when attempting to unpause it. This was due to the
check in the UnpauseRecordingTimer function being too loose and only
checking for if the recording timer was not active. Let's initialize the
recordingTimeLeft variable to -1 and check that it's greater than 0
before attempting to restart a recording timer.
2024-03-08 19:18:41 -05:00
PatTheMav
12d25f9a91 mac-avcapture: Fix possible crash if camera uses BGRA format
BGRA or other formats that do not use color primaries will not yield
a valid color primary value. Initializing the CFComparisonResult to a
default value and replacing it only if a non-NULL color primary value
was retrieved avoids a possible crash.
2024-03-08 17:38:40 -05:00
Aleks Todorov
4953c5d517 obs-webrtc: Avoid crashing on invalid answer
PeerConnection::setRemoteDescription validates the input SDP, throwing
an exception whenever it is invalid.

Currently, instead of handling the exception, we just crash.

Instead, add an exception handler which logs a short description of the
issue as well as the error message from the exception.
2024-03-07 13:52:00 -05:00
Bart F
e4ec414690 rtmp-services: Add SharePlay.tv 2024-03-07 11:50:32 -05:00
Ramjivan Jangid
5bfcedcad8 rtmp-services: Add Streamway to ingest list 2024-03-07 11:35:50 -05:00
WuLongyue
1e163d795e rtmp-services: Add "CHZZK" platform 2024-03-06 19:52:22 -05:00
Sherwin Dapito
71660dc9a1 rtmp-services: Update Switchboard Live servers 2024-03-06 19:25:27 -05:00
Tobias Speicher
97375e541b rtmp-services: Add "Vault - by CommanderRoot" to ingest list 2024-03-06 19:01:59 -05:00
Vainock
7ae66c72fd Update translations from Crowdin 2024-02-28 14:20:05 -05:00
pkv
5bd22afe41 UI: Correctly toggle audio multi-track buttons
This toggles audio multi track display in Output settings when:
1. When there is a signal that a stream service is changed to a non
custom one. Indeed multi-track audio is only available with Custom
service and only with SRT or RIST protocols.
2. When a Custom service is picked, and SRT or RIST are detected in the
server URL.
3. When Stream settings are saved when one hits Apply.
This is in addition to the toggling done when loading Stream Settings.

Signed-off-by: pkv <pkv@obsproject.com>
2024-02-27 18:26:09 -05:00
pkv
ef19644e5e UI: Remove LoadOutputSettings from save sequence
This removes the LoadOutputSettings() called in SaveStream1Settings.
It caused a bug when trying to save Output settings when both Stream
and Output settings have been changed but the changes have not been
applied by hitting the 'Apply' button in Settings.

Signed-off-by: pkv <pkv@obsproject.com>
2024-02-27 18:26:09 -05:00
cg2121
5a27d93cfa UI: Fix context bar not updating on delete
This fixes a bug where the source context bar wouldn't update
when a scene item is deleted.
2024-02-27 15:26:26 -05:00
Ryan Foster
cdef2a2068 CI: Update deps to 2024-02-26 release
Notable changes:
 * deps.ffmpeg: Revert libsrt to 1.5.2 to avoid a crash
2024-02-27 15:05:25 -05:00
PatTheMav
629b60f328 CI: Fix broken pip install to use ephemeral virtual environment
Python 3.11 and later support a system-wide configuration setting that
marks the system packages as "externally managed" (e.g. to force using
apt packages instead of pip packages).

This breaks installation of the modules necessary to run the validators,
so use a virtual environment instead.
2024-02-27 14:50:02 -05:00
PatTheMav
193019d214 CI: Fix scheduled language file check running on same commit hash
When a prior scheduled nightly run is detected with the identical
commit hash, then the entire language file check should be skipped.

This adds the missing condition to skip the check for changed files
removing the unnecessary warning contained in the workflow results.
2024-02-26 17:31:22 -05:00
PatTheMav
745f87f21f mac-avcapture: Fix frame rate collection for camera device formats
Some devices will report different framerate ranges for formats that
are identical apart from color primaries. Without taking these into
account, only framerates for one color primary variant would be used
to populate the framerate dropdown in the property view of the camera
source.

Checking for a difference in color primaries when iterating over all
available formats for a device thus requires checking for this
variation and adding the additional frame rate range as well.
2024-02-24 17:38:18 -06:00
tytan652
409bd12db3 CI: Update Flatpak AppStream validation
Also add AppStream validation to Build Project workflow
2024-02-23 09:40:06 -03:00
tytan652
63eef36786 CI: Add appstream type support to flatpak-builder-lint action 2024-02-23 09:40:06 -03:00
Ryan Foster
ba4f17e114 CI: Update deps to 2024-02-20 release
Notable changes:
 * deps.ffmpeg: Force classic linker for AppleClang 15.0.0+
 * CI: Update macOS jobs to use macOS 14 runners
 * deps.ffmpeg: Enable runtime CPU detection for AOM to fix ARM64 crashes
 * deps.ffmpeg: Update zlib to 1.3.1
 * deps.ffmpeg: Update aom to 3.8.1
 * deps.ffmpeg: Update mbedTLS to 3.4.1
 * deps.qt: Update Qt6 to 6.6.2 for Windows
 * deps.qt: Update Qt6 to 6.6.2 for macOS
 * deps.qt: Restore native dialogs on macOS
2024-02-22 00:06:14 -06:00
Ryan Foster
7a35ae2cb6 UI: Fix Remux window only being usable once
The beginInsertRows/endInsertRows calls seem to signal that the rowCount
has changed, and that views should adjust accordingly. The isProcessing
boolean changes the returned value of RemuxQueueModel::rowCount, which
seems to cause the empty row in the table model to disappear
permanently. I still don't know why it used to work this way and no
longer does.
2024-02-22 00:05:58 -06:00