Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

obs-webrtc: Enable PacingHandler #10

Open
wants to merge 194 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
194 commits
Select commit Hold shift + click to select a range
b029ebf
rtmp-services: Add more granular Amazon IVS service servers
palana Jan 18, 2024
717161f
rtmp-services: Extract Twitch specific info from ingest update code
palana Apr 10, 2024
6440a60
rtmp-services: Add Amazon IVS ingest refresh infrastructure
palana Apr 10, 2024
6fbb06d
rtmp-services: Load Twitch/Amazon IVS rtmps URLs when refreshing
palana Apr 11, 2024
fc60ca6
rtmp-services: Add Amazon IVS auto server entries
palana Apr 11, 2024
adcaf53
UI: Add Amazon IVS auto config QoL changes
palana Apr 11, 2024
e11d206
rtmp-services: Refactor Twitch/Amazon IVS support
lexano-ivs Aug 28, 2024
df742ed
CI: Pin actions/upload-artifact to v4.3.5 for windows-patches
RytoEX Sep 6, 2024
dfe6151
win-capture: Fix segfault when calling data.free()
Sep 3, 2024
129d4f2
cmake: Avoid breaking ABI through major version bump on Linux
tytan652 Aug 24, 2024
9f4f2e9
obs-qsv11: Fix CBR Spike
thyintel Jun 11, 2024
14aaaa3
cmake/linux: Move color diagnostics setting to preset for ubuntu-ci
norihiro Aug 26, 2024
e3265fd
CI: Enable diagnostics color on CI build on Ubuntu
norihiro Sep 5, 2024
7fdcb16
obs-filters: Fix building of noise reduction
pkviet Sep 3, 2024
de2e42b
nv-filters: Remove unused flag in cmake
pkviet Sep 3, 2024
97d9826
UI: Fix multitrack video autoconfig option
lexano-ivs Aug 23, 2024
4b0777a
obs-nvenc: Support new error code for too many sessions
derrod Sep 10, 2024
e25a8b3
obs-nvenc: Check if device index in settings object is actually set
derrod Sep 10, 2024
7385947
CI: Fix condition for changed files in upload locales action
Sep 8, 2024
e87593b
obs-nvenc: Fix reading uninitialized variable
norihiro Sep 11, 2024
3138500
Remove legacy_check CMake macro
tytan652 Sep 6, 2024
62c4a90
obs-webrtc: Add STUN support to Link header parse
mondain Aug 9, 2024
922e2cc
cmake: Remove remaining cmake-format comments
gxalpha Sep 12, 2024
a5ebb05
CI: Remove run-cmake-format action
gxalpha Sep 12, 2024
8b31c48
rtmp-services: Remove outdated Dolby Millicast locations
FabienLavocat Sep 12, 2024
26d2752
libobs-opengl: Relax texture format copy check
tytan652 Aug 29, 2024
2635cf3
UI: Split global config into app and user config
PatTheMav Sep 3, 2024
607d37b
UI: Rewrite profile system to enable user-provided storage location
PatTheMav Sep 3, 2024
3e0592d
UI: Rewrite scene collection system to enable user-provided storage
PatTheMav Sep 3, 2024
4dac849
libobs: Update macOS platform implementation
PatTheMav Aug 12, 2024
552a88a
mac-virtualcam: Compare camera UUIDs using CFUUID
Jan 11, 2024
cfc12d0
cmake: Disable CCache for local builds and enable by default for CI
PatTheMav Jun 11, 2024
5b79b4b
libobs: Add obs_encoder_get_mixer_index
exeldro Sep 6, 2024
7a35d7c
obs-ffmpeg: Add logging of audio track
exeldro Sep 6, 2024
6c59080
cmake: Update supported CMake version range to 3.28 and 3.30
PatTheMav Oct 5, 2023
53853df
obs-qsv11: Add AV1 Screen Content Tools
thyintel Sep 10, 2024
2ecf2c8
obs-qsv11: Initialize allocator response
kkartaltepe Sep 13, 2024
2a0e614
build-aux: Use fallback-x11 instead of x11
Etaash-mathamsetty Oct 11, 2023
232e40f
CI: Update peter-evans/create-pull-request to v7.0.2
RytoEX Sep 13, 2024
f036b0d
CI: Update softprops/action-gh-release to v2.0.8
RytoEX Sep 13, 2024
f9f974f
cmake: Update use of MbedTLS to support update to version 3.6.0
PatTheMav Jun 3, 2024
d7c798c
CI: Use Windows 11 SDK 10.0.22621.0
RytoEX Sep 13, 2024
b9808ea
UI: Fix outdated scene collection and profile method names
PatTheMav Sep 14, 2024
61d74fb
libobs: Remove obs_output_signal_delay
norihiro Dec 4, 2023
16b8e9c
libobs: Deselect scene item before removing
gxalpha Sep 13, 2024
a289581
docs: Add obs_frontend_get_user_config
exeldro Sep 13, 2024
ae90534
CI: Update flatpak-builder-lint
PatTheMav Jul 9, 2024
2d95d8b
CI: Remove Ccache restoration for Windows builds
PatTheMav Sep 13, 2024
2084ac0
CI: Add documentation to complex shell script constructs
PatTheMav Sep 13, 2024
27417d3
CI: Add documentation to XSLT files for Sparkle Appcast action
PatTheMav Sep 13, 2024
731be3e
CI: Update sphinx-publish-actions action
PatTheMav Sep 13, 2024
df75840
CI: Update wrangler-action action
PatTheMav Sep 13, 2024
2bffc6b
CI: Update build-project workflow to use Xcode 15.4 for macOS builds
PatTheMav Sep 13, 2024
5243783
CI: Update qt-xml-validator action to use check-changes action
PatTheMav Sep 13, 2024
fd63da9
CI: Update build and package scripts to require Zsh 5.9
PatTheMav Sep 13, 2024
51f24cb
CI: Remove experimental aarch64 support in build script
PatTheMav Sep 13, 2024
c2ea78c
CI: Update build script for Ubuntu to require Ubuntu 24.04
PatTheMav Sep 13, 2024
aa10a7b
CI: Extend condition check for language file upload
PatTheMav Sep 18, 2024
5779b52
UI: Fix config class mismatch in OBSApp class
PatTheMav Sep 16, 2024
612ef65
CI: Set default values for have* outputs in macos-codesigning action
gxalpha Sep 12, 2024
06642fd
UI: Fix low value of std::clamp gets greater than high value
norihiro Aug 29, 2024
f75a6dd
CI: Update deps to 2024-09-12 release
RytoEX Sep 12, 2024
8cacec9
rtmp-services: Remove defunct servers/services
Sep 19, 2024
ace60a6
cmake: Disable discovery of Homebrew libraries for dependencies
PatTheMav Sep 18, 2024
51d66dc
cmake: Change library discovery order in LuaJIT find module
PatTheMav Sep 19, 2024
32cfa16
UI: Fix missing support for portable configuration files
PatTheMav Sep 18, 2024
a0edc5e
libobs: Do not allow reconnect if stop code is OBS_OUTPUT_INVALID_STREAM
dsaedtler Sep 19, 2024
5fea7d3
libobs: Fix crop values for new nested scene sources being incorrect
derrod Sep 22, 2024
92a38bc
libobs: Disable transform debug logging by default
derrod Sep 22, 2024
de2f1fc
libobs: Fix source profiling inactive sources
exeldro Sep 25, 2024
1dc87ca
libobs: Fix sending unclamped audio to output handler
norihiro Sep 26, 2024
6fed2c2
UI: Fix error color at clipping is not displayed on horizontal meter
norihiro Aug 28, 2024
b4137fa
UI: Fix crash when creating scene collections with "unsafe" names
PatTheMav Sep 18, 2024
e3435f8
UI: Replace usage of obs_scene_sceneitem_from_source
gxalpha Sep 7, 2024
4dd3cf6
libobs: Deprecate obs_scene_sceneitem_from_source
gxalpha Sep 7, 2024
ad5040c
UI: Fix What's New increment settings mismatch
gxalpha Sep 27, 2024
a4bda61
libobs: Do not attempt to reconnect if stop event is set
dsaedtler Sep 18, 2024
37ab500
UI: Set NV12 as preferred format for multitrack video encoders
dsaedtler Oct 1, 2024
4420594
libobs: Remove unused is_in_bundle() method
gxalpha Sep 27, 2024
42670ab
plugins/test: Remove legacy CMake remnants
tytan652 Oct 2, 2024
71775e3
libobs: Assure large enough buffer in dstr_from_cfstring
gxalpha Sep 27, 2024
cb02696
UI: Replace themeID and style hints with class property
Warchamp7 Aug 30, 2024
39f0ed6
shared/bpm: Fixed crash when using Stream Delay
lexano-ivs Sep 9, 2024
492309c
UI: Use shared cookie manager for YT Control Panel
msuman-google May 17, 2024
9b8fa0f
UI: Enable first-party YouTube Chat features in OBS
msuman-google Jun 3, 2024
f4c4f09
libobs/util: Improve inhibit functions on Linux
tytan652 May 29, 2024
5aaac2f
libobs: Update version to 30.2.3
RytoEX Oct 4, 2024
109f64c
shared/obs-hook-config: Update graphics hook to 1.8.4
RytoEX Oct 4, 2024
a1fbf10
clang-format: Increase column limit from 80 to 120
RytoEX Oct 4, 2024
b723736
.git-blame-ignore-revs: Add change from column limit increase
RytoEX Oct 4, 2024
5fdc6d2
libobs: Update version to 31.0.0
RytoEX Oct 4, 2024
91fdbef
CI: Bump Crowdin Sync to fix translation download
WizardCM Oct 5, 2024
67b9523
CI: Use correct commit hash for translation download
WizardCM Oct 5, 2024
2e6d0d0
plugins: Update translations from Crowdin
WizardCM Oct 5, 2024
5cd5e73
CI: Fix translation download script bugs
WizardCM Oct 5, 2024
e6d9f73
Update translations from Crowdin
Oct 5, 2024
cc36ccd
cmake: Use fixed SOVERSION everywhere
kkartaltepe Oct 5, 2024
089ba29
libobs/util: Prevent null pointer deref with dstr_cmp
Lain-B Oct 5, 2024
5a1fca9
linux-capture: Fix potential null pointer dereference
Lain-B Oct 5, 2024
641d651
linux-pipewire: Avoid trying to allocate 0 byte
tytan652 Sep 13, 2024
a251e17
libobs/util: Crash on bmalloc(0)
gxalpha Aug 23, 2024
15cd31f
UI: Fix settings mismatch
shiina424 Oct 5, 2024
b188874
obs-nvenc: Add missing locale text
shiina424 Oct 6, 2024
cb1a15e
UI: Fix locale key for rename profile text
shiina424 Oct 6, 2024
2aedaae
win-update: Remove legacy CMake file
tytan652 Oct 6, 2024
9e7b51a
obs-ffmpeg: Fix deadlock on shutting down muxer
exeldro Apr 25, 2024
746d215
UI: Avoid path<->string conversion when refreshing profile cache
derrod Oct 7, 2024
b082e1b
libobs/graphics: Remove unused source file graphics-magick.c
norihiro Oct 8, 2024
03d9fee
shared/opts-parser: Fix crash when no options were given to the parser
norihiro Oct 8, 2024
9f425af
CI: Fix sparkle-appcast comment syntax
RytoEX Oct 8, 2024
93533d8
CI: Fix rclone env var formatting in Windows Patches action
derrod Oct 8, 2024
4bc6775
UI: Correctly set Yami border radius for buttons in tables
WizardCM Oct 10, 2024
4575a0e
UI/themes: Fix selectors in Yami Light
gxalpha Oct 9, 2024
a05f5f5
UI: Fix activation order of profile and scene collections after delete
PatTheMav Oct 10, 2024
d9d9881
UI: Fix deletion of scene collection backup on collection deletion
PatTheMav Oct 10, 2024
3995b46
UI: Fix crash when providing scene collection or profile via CLI
PatTheMav Oct 10, 2024
88cd7b7
libobs: Add source profiler to public headers
exeldro Oct 9, 2024
ba6a6bf
UI/themes: Consistently select indicator-mute instead of MuteCheckBox
gxalpha Oct 9, 2024
77d74dd
UI: Set minimum version for nlohmann_json to 3.11
RytoEX Oct 11, 2024
ca4bc1a
UI: Fix initialization bug when launching without existing profile
PatTheMav Oct 13, 2024
edd7a38
obs-qsv11: Update minimum VPL version to 2.9
RytoEX Oct 12, 2024
b654dba
UI: Catch error from copy in MigrateGlobalSettings
emaste Oct 14, 2024
94866fb
obs-outputs: Add cast to fix build with Clang 19
DimitryAndric Oct 14, 2024
bece05b
libobs: Fix ungrouped transfom calculation in relative mode
derrod Oct 12, 2024
e97d7c1
libobs: Fix items in groups using wrong scale reference
derrod Oct 12, 2024
b24c5aa
CI: Bump FreeBSD image to 14.1
emaste Oct 9, 2024
5dccefd
CONTRIBUTING.rst: Update for 120 column limit
emaste Oct 16, 2024
7b052cb
UI: Replace toolButton property with style class
Warchamp7 Oct 16, 2024
6ca0a88
UI: Remove toolButton styling
Warchamp7 Oct 16, 2024
05d2ee1
obs-browser: Update version to 2.24.3
RytoEX Oct 17, 2024
b18b134
obs-browser: Update version to 2.24.4
RytoEX Oct 18, 2024
c928fac
libobs: Remove non-USE_XDG code
emaste Oct 16, 2024
39b91d8
UI: Restore XDG config path update for FreeBSD
emaste Oct 16, 2024
918fe61
UI: Update order of profiles and scene collections in their menus
PatTheMav Oct 18, 2024
0721027
UI: Use custom property on QAction to retain profile or collection name
PatTheMav Oct 18, 2024
e8968ba
obs-nvenc: Force at least 4 b-frames when using UHQ tune
derrod Oct 19, 2024
03bc6d7
build-aux: Remove CEF stripping workaround
tytan652 Oct 20, 2024
d9b1b82
CI: Enable WebRTC on FreeBSD
emaste Oct 20, 2024
9908c79
UI: Don't load Restream UI before CEF is ready
WizardCM Oct 23, 2024
3ee7655
UI: Log Twitch 403 error bodies
derrod Oct 22, 2024
2e075f7
cmake: Fix target_add_resource ARGN support on Linux
tytan652 Oct 24, 2024
0eef4e2
UI: Split out Whats New dialog, fix crash on shutdown
WizardCM Oct 19, 2024
52a0486
cmake/plugins: Enable -Wswitch on GCC
tytan652 Oct 22, 2024
7e1e60c
cmake: Install desktop files and icons on FreeBSD
vishwin Oct 16, 2024
7c523c4
linux-pipewire: Fix memory leaks
dimtpap Oct 16, 2024
4730292
UI: Remove custom YouTube chat input
gxalpha Oct 10, 2024
de31ec8
UI: Remove SendChatMessage from YoutubeApiWrappers
gxalpha Oct 10, 2024
23910f4
UI: Remove LineEditAutoResize widget
gxalpha Oct 10, 2024
1cf6b3d
UI: Restore frontend API events being dispatched during initialization
PatTheMav Oct 26, 2024
ab48cd0
UI: Add TikTok Live Studio Virtual Camera to DLL blocklist
notr1ch Oct 16, 2024
23e772c
UI/importers: Translate capture sources depending on WS
SarenDev Oct 26, 2024
038c91d
librtmp: Use /etc/ssl/certs/ path on FreeBSD
emaste Jun 19, 2024
0be9d9f
UI: Open active profile directory via File menu
WizardCM Oct 26, 2024
bf00c17
UI: Update profile encoder information after module load
PatTheMav Oct 29, 2024
0b87f53
graphics-hook: Fix null pointer dereference
Charlese2 Oct 21, 2024
5ccab9c
UI/themes: Fix control button pressed color in Rachni theme
shiina424 Oct 13, 2024
7dc0064
UI/themes: Fix missing icon in system theme
shiina424 Oct 13, 2024
c531c30
UI: Add trash icon
shiina424 Oct 23, 2024
bb9399a
UI: Add trash and general icon
shiina424 Oct 23, 2024
24ea557
obs-websocket: Update version to 5.5.4
RytoEX Oct 31, 2024
d7292a4
UI: Create YouTube Dock when switching profile
shiina424 Nov 2, 2024
f08c952
obs-filters: Move nvafx migration to queued task
exeldro Oct 30, 2024
d67f971
obs-qsv11: Remove old MSDK 1.6 code
RytoEX Nov 1, 2024
3bcc40a
obs-qsv11: Move debug code into debug sections
RytoEX Nov 1, 2024
110efc0
obs-qsv11: Remove unused debug variable
RytoEX Nov 5, 2024
bce98b6
obs-qsv11: Remove old DX9 code
RytoEX Nov 1, 2024
b854f61
obs-qsv11: Remove checks for DX11
RytoEX Nov 1, 2024
7979421
mac-capture: Don't read channels for disconnected audio device
jcm93 Nov 2, 2024
b5f4958
cmake: Fix build directory exclusion
RytoEX Nov 8, 2024
4652daf
win-capture: Avoid NULL deref when capture not initialized
confusionattack Oct 9, 2024
7722698
decklink: Fix string handling causing plugin to not function
CyBeRoni Nov 16, 2024
a00595c
UI: Ignore all auto URLs for server selection
palana Jun 5, 2024
4c1f783
UI: Forward auto rtmp/rtmps IVS preference
palana Jun 5, 2024
1648dcc
UI: Fix autoconfig saving signed stream key
dsaedtler Nov 18, 2024
b71f439
UI: Fix falling back to non-multitrack output after error
dsaedtler Nov 18, 2024
ca342c2
frontend-tools: Correctly pass settings to modified cb on reload
Penwy Nov 9, 2024
7ffc38e
UI: Fix broken module paths provided via environment on macOS
PatTheMav Oct 31, 2024
dfc3a69
obs-ffmpeg: Avoid setting negative bitrate for lossless audio codec
tytan652 Nov 12, 2024
e2cd815
UI: Add unassigned icon
shiina424 Nov 22, 2024
c8e215b
cmake: Fix build directory exclusion for real
RytoEX Nov 21, 2024
b285a84
UI: Fix collision of existing backup files for new scene collections
PatTheMav Nov 25, 2024
e9c6105
libobs: Fix scale calculation when applying new group transform
derrod Nov 29, 2024
10dc43b
libobs: Remove relative positioning functions
derrod Dec 3, 2024
0b2c858
Update translations from Crowdin
Dec 6, 2024
fbf2ea1
win-capture: Add Marvel Rivals to compatibility list (#11594)
Gol-D-Ace Dec 8, 2024
e3b518d
win-capture: Add The Bazaar to compatibility list (#11601)
flaeri Dec 9, 2024
e845729
libobs/util: Improve inhibit portal detection on Linux
tytan652 Dec 8, 2024
b4cd523
CI: Disable PVS-Studio job
RytoEX Dec 9, 2024
69a825b
obs-filters: Maintain order of migrated NVAFX filters
pkviet Dec 10, 2024
f03280c
CI: Disable Flatpak bundling on publish
tytan652 Dec 7, 2024
3882d00
WIP
GeorgesStavracas Dec 19, 2024
579149f
Revert "WIP"
GeorgesStavracas Dec 19, 2024
a0e4e37
libobs-opengl: Avoid trying to allocate 0 byte on Linux
tytan652 Dec 11, 2024
1fa4529
obs-webrtc: Enable PacingHandler
Sean-Der Jun 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# $FreeBSD$

freebsd_instance:
image: freebsd-13-2-release-amd64
image: freebsd-14-1-release-amd64-ufs

env:
CIRRUS_CLONE_DEPTH: 1
Expand All @@ -14,6 +14,7 @@ task:
ffmpeg qt6-base qt6-svg jansson libsysinfo e2fsprogs-libuuid pulseaudio
alsa-lib pipewire v4l_compat libpci librist srt nlohmann-json uthash
qr-code-generator websocketpp asio vlc swig luajit jackit sndio fdk-aac
libdatachannel
script:
- cmake
-S $(pwd)
Expand All @@ -23,7 +24,6 @@ task:
-DENABLE_JACK:BOOL=ON
-DENABLE_SNDIO:BOOL=ON
-DENABLE_LIBFDK:BOOL=ON
-DENABLE_WEBRTC:BOOL=OFF
- cmake
--build build
--config RelWithDebInfo
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakStringLiterals: false # apparently unpredictable
ColumnLimit: 80
ColumnLimit: 120
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 8
Expand Down
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ dcc07cfe4ed3f7fb60c7a0d1563236eac0a0b053
7628265099724671a1682f6b298b509d2fa23855
f4733ec6a26bac21699daf3dfd6857ff5a1d3c07
b8cfacaec38d31413b0cd82718c9dc1e36beb9af
a1fbf1015f4079b79dc9ef4f6abecf67920e93cf
5 changes: 5 additions & 0 deletions .github/actions/check-changes/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ runs:
shopt -s extglob
shopt -s dotglob
# 4b825dc642cb6eb9a060e54bf8d69288fbee4904 is a "hidden" sha1 hash of
# the "empty tree", retrived via 'git hash-object -t tree /dev/null',
# and used here as a last-resort fallback to always provide a valid
# git ref.
if [[ "${GIT_BASE_REF}" ]]; then
if ! git cat-file -e "${GIT_BASE_REF}" &> /dev/null; then
echo "::warning::Provided base reference ${GIT_BASE_REF} is invalid"
Expand Down
65 changes: 37 additions & 28 deletions .github/actions/flatpak-builder-lint/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,48 +19,57 @@ runs:
working-directory: ${{ inputs.workingDirectory }}
run: |
: Check artifact input
case "${{ inputs.artifact }}" in
builddir);;
repo);;
manifest);;
appstream);;
*)
echo "::error::Given artifact type is incorrect"
exit 2
;;
esac
if ! [[ "${{ inputs.artifact }}" =~ builddir|repo|manifest|appstream ]]; then
echo "::error::Given artifact type is incorrect"
exit 2
fi
- name: Run flatpak-builder-lint
id: result
shell: bash
working-directory: ${{ inputs.workingDirectory }}
run: |
: Run flatpak-builder-lint
exit_code=0
ret=$(flatpak-builder-lint --exceptions ${{ inputs.artifact }} ${{ inputs.path }}) || exit_code=$?
if [[ $exit_code != 0 && -z "$ret" ]]; then
return=0
result="$(flatpak-builder-lint --exceptions ${{ inputs.artifact }} ${{ inputs.path }})" || return=$?
if [[ ${return} != 0 && -z "${result}" ]]; then
echo "::error::Error while running flatpak-builder-lint"
exit 2
fi
if [[ ${{ inputs.artifact }} == "appstream" ]]; then
echo $ret
if [[ "${{ inputs.artifact }}" == "appstream" ]]; then
echo "${result}"
[[ $exit_code != 0 ]] && echo "::error::Flatpak appstream info is not valid"
if [[ ${return} != 0 ]]; then echo "::error::Flatpak appstream info is not valid"; fi
exit $exit_code
exit ${return}
fi
n_warnings=$(echo $ret | jq '.warnings | length')
for ((i = 0 ; i < n_warnings ; i++)); do
warning=$(echo $ret | jq ".warnings[$i]")
echo "::warning::$warning found in the Flatpak ${{ inputs.artifact }}"
done
# This jq command selects any available array under the 'warnings' key in the JSON document
# or provides an empty array as a fallback if the key is not present. This array is then
# piped to the 'map' function to apply a transformation to every element in the array,
# converting it to a string prefixed with the output level, the actual element value, and
# finally the suffix string defined in 'template'.
#
# The result of this expression is concatenated with a similar expression doing the same
# but for the 'errors' key and its associated array.
#
# The second jq invocation then selects each element of the array and outputs it directly,
# which will be strings of the formats:
#
# * '::warning:: <original warning> <template text>'
# * '::error:: <original error> <template text>'
#
# If no warnings or errors were found, only empty arrays were used for 'map' and thus
# only an empty result array is generated.
n_errors=$(echo $ret | jq '.errors | length')
for ((i = 0 ; i < n_errors ; i++)); do
error=$(echo $ret | jq ".errors[$i]")
echo "::error::$error found in the Flatpak ${{ inputs.artifact }}"
done
template=" found in the Flatpak ${{ inputs.artifact }}"
while read -r log_line; do
if [[ "${log_line}" ]]; then echo "${log_line}"; fi
done <<< "$(echo "${result}" \
| jq -r '(.warnings // [] | try map("::warning:: " + . + "${template}")) + (.errors // [] | try map("::error:: " + . + "${template}"))' \
| jq -r '.[]')"
[[ -z $n_errors || $n_errors == 0 ]] || exit 2
exit ${return}
15 changes: 14 additions & 1 deletion .github/actions/generate-docs/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,25 @@ runs:
: "${minor:=}"
: "${patch:=}"
# This expression will first try to match all the LIBOBS_API_[...]_VER
# lines in 'obs-config.h', before removing the '#define ' prefix and
# trimming away whitespace characters and linebreaks.
# This will yield a single line with the each major, minor, and patch
# version variable name followed by its value, so every even item
# in this string will contain a version part.
read -r _ major _ minor _ patch _ <<< \
"$(grep -E -e "#define LIBOBS_API_(MAJOR|MINOR|PATCH)_VER *" libobs/obs-config.h \
| sed 's/#define //g' \
| tr -s ' ' \
| tr '\n' ' ')"
# This expression simply replaces the definition of the 'version' and
# 'release' variables in the Python script with updated variants using
# the version tokens set by the previous expression.
# The copyright variable assignment is updated to use the current
# local year as the second year value.
sed -i -E \
-e "s/version = '([0-9]+\.[0-9]+\.[0-9]+)'/version = '${major}.${minor}.${patch}'/g" \
-e "s/release = '([0-9]+\.[0-9]+\.[0-9]+)'/release = '${major}.${minor}.${patch}'/g" \
Expand All @@ -46,7 +59,7 @@ runs:
echo "commitHash=${GITHUB_SHA:0:9}" >> $GITHUB_OUTPUT
- name: Install Sphinx 📜
uses: totaldebug/sphinx-publish-action@1.2.0
uses: totaldebug/sphinx-publish-action@cdbb304b4b8aa1fd36015e3c459c1f122804bd6b
with:
sphinx_src: ${{ inputs.sourceDirectory }}/docs/sphinx
build_only: true
Expand Down
32 changes: 12 additions & 20 deletions .github/actions/qt-xml-validator/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,35 +35,27 @@ runs:
- name: Register Annotations 📝
uses: korelstar/xmllint-problem-matcher@1bd292d642ddf3d369d02aaa8b262834d61198c0

- name: Check for Changed Files ✅
uses: ./.github/actions/check-changes
id: checks
with:
checkGlob: 'UI/forms/**/*.ui'

- name: Validate XML 💯
if: fromJSON(steps.checks.outputs.hasChangedFiles)
id: result
shell: bash
env:
GITHUB_EVENT_FORCED: ${{ github.event.forced }}
GITHUB_REF_BEFORE: ${{ github.event.before }}
CHANGED_FILES: ${{ steps.checks.outputs.changedFiles }}
run: |
: Validate XML 💯
if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi
shopt -s extglob
shopt -s globstar
if ! git cat-file -e "${GITHUB_REF_BEFORE}" &> /dev/null; then
GITHUB_REF_BEFORE='4b825dc642cb6eb9a060e54bf8d69288fbee4904'
fi
changes=($(git diff --name-only HEAD~1 HEAD -- UI/forms/**/*.ui))
case "${GITHUB_EVENT_NAME}" in
pull_request) changes=($(git diff --name-only origin/"${GITHUB_BASE_REF}" HEAD -- UI/forms/**/*.ui)) ;;
push)
if [[ "${GITHUB_EVENT_FORCED}" == false ]]; then
changes=($(git diff --name-only ${GITHUB_REF_BEFORE} HEAD -- UI/forms/**/*.ui))
fi
;;
*) ;;
esac
CHANGED_FILES=($(echo "${CHANGED_FILES//[\[\]\'\"]/}" | tr "," "\n"))
if (( ${#changes[@]} )); then
if (( ${#CHANGED_FILES[@]} )); then
if [[ '${{ inputs.failCondition }}' == never ]]; then set +e; fi
xmllint \
--schema ${{ github.workspace }}/UI/forms/XML-Schema-Qt5.15.xsd \
--noout "${changes[@]}"
--noout "${CHANGED_FILES[@]}"
fi
59 changes: 0 additions & 59 deletions .github/actions/run-cmake-format/action.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/actions/services-validator/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ runs:
path: ${{ inputs.workingDirectory }}/other/*

- name: Create pull request 🔧
uses: peter-evans/create-pull-request@b1ddad2c994a25fbc81a28b3ec0e368bb2021c50
uses: peter-evans/create-pull-request@d121e62763d8cc35b5fb1710e887d6e69a52d3a4
if: fromJSON(inputs.createPullRequest) && fromJSON(inputs.runServiceChecks) && fromJSON(steps.services-check.outputs.make_pr)
with:
author: 'Service Checker <[email protected]>'
Expand Down
6 changes: 4 additions & 2 deletions .github/actions/setup-macos-codesigning/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ outputs:
value: ${{ steps.codesign.outputs.haveCodesignIdent }}
haveProvisioningProfile:
description: True if necessary provisioning profile credentials were found
value: ${{ steps.provisioning.outputs.haveProvisioningProfile }}
value: ${{ steps.provisioning.outputs.haveProvisioningProfile || steps.codesign.outputs.haveProvisioningProfile }}
provisioningProfileUUID:
description: UUID of imported provisioning profile
value: ${{ steps.provisioning.outputs.provisioningProfileUUID }}
haveNotarizationUser:
description: True if necessary notarization credentials were found
value: ${{ steps.notarization.outputs.haveNotarizationUser }}
value: ${{ steps.notarization.outputs.haveNotarizationUser || steps.codesign.outputs.haveNotarizationUser }}
codesignIdent:
description: Code signing identity
value: ${{ steps.codesign.outputs.codesignIdent }}
Expand Down Expand Up @@ -95,6 +95,8 @@ runs:
print "codesignTeam=${team_id}" >> $GITHUB_OUTPUT
} else {
print 'haveCodesignIdent=false' >> $GITHUB_OUTPUT
print 'haveProvisioningProfile=false' >> $GITHUB_OUTPUT
print 'haveNotarizationUser=false' >> $GITHUB_OUTPUT
}

- name: Provisioning Profile 👤
Expand Down
17 changes: 17 additions & 0 deletions .github/actions/sparkle-appcast/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,23 @@ runs:
hdiutil detach ${mount_point}
curl -s -L -O ${feed_url}
# The Xpath Xplained:
#
# //rss/channel/item - Select every <item> node, under a
# <channel> node, under a <rss> node,
# which:
# [*...] - Has a child node, which
# [local-name()='channel'] - Has the local name "channel"
# (required to match the
# namespaced sparkle:channel node),
# which in turn has
# [text()='<channel>'] - A text node that contains the
# content of inputs.channel
# /enclosure/@url - Then select the "url" attribute of
# every <enclosure> node under
# these matching <item> nodes
local -a artifacts=($(\
xmllint \
-xpath "//rss/channel/item[*[local-name()='channel'][text()='${{ inputs.channel }}']]/enclosure/@url" \
Expand Down
Loading
Loading