Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e9160f9
[MAINT] Added optional test discovery. Added improvements for attribu…
ethouris Aug 19, 2025
7497397
[core] Fixed bug in srt_epoll_uwait: wrong number of sockets returned
Aug 19, 2025
d720b8c
[core] Rework m_bListening to lock-free and m_GlobControlLock to use …
ethouris Aug 26, 2025
725e2d4
[build] Update Ubuntu runners to Lastest. (#3180)
cl-ment Aug 27, 2025
265d0e4
[core] Fixed invalid cookie contest calculation (#3212)
ethouris Aug 29, 2025
5138f37
[core] Cleanup SRT state after a fork() (issue #3177) (#3179)
cl-ment Aug 29, 2025
9b97cfa
[core] Fixed reentrancy problem of srt_strerror (#3214)
ethouris Sep 1, 2025
52ceecd
Fix SIGABRT when bonding option is too long (#3210)
SPAleksey Sep 1, 2025
bab4037
[API] raise libSRT version number to 1.5.5
Sep 3, 2025
5c5f5b5
[MAINT] Add fixes for CI configuration based on latest dev (#3232)
ethouris Oct 15, 2025
84676b5
[build] Avoid using list(PREPEND). (#3230)
cl-ment Oct 21, 2025
547688c
[core] Restored old cookie contest. Added development support for enf…
ethouris Oct 22, 2025
a26a702
[core] Reimplemented MAXREXMITBW controller basing on Token Bucket al…
ethouris Oct 22, 2025
c09532f
[docs] Added link to the blogpost with - Live Streaming using SRT wit…
mbakholdina Oct 27, 2025
f0368c6
[build] Added handling of LIBSRT_ prefix when setting cmake options f…
ethouris Nov 25, 2025
f8a53da
[build] Ubuntu 23.04 reached end-of-life in January 2024. (#3261)
fujitatomoya Dec 16, 2025
72f0c6e
[BUG] [core] Prevent blocking srt_close call from interrupting connec…
ethouris Dec 16, 2025
f5e6bb9
Old URL (404 - no longer exists) (#3271)
fujitatomoya Jan 12, 2026
80c871e
Detec IPv6 with colon to harden the check if IPv6 is used in the test…
fujitatomoya Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 113 additions & 32 deletions .github/workflows/abi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,60 +2,141 @@ name: ABI checks

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

env:
SRT_BASE: v1.5.0

jobs:
build:
name: ABI checks
runs-on: ubuntu-20.04
build_pr:
name: Build current version
runs-on: ubuntu-latest

outputs:
base_version: ${{ steps.build.outputs.SRT_BASE }}
tag_version: ${{ steps.build.outputs.SRT_TAG_VERSION }}
steps:
- uses: actions/checkout@v3
with:
path: pull_request
- name: configure
path: gitview_pr
- id: configure
name: Configure (cmake)
run: |
cd pull_request
cd gitview_pr
mkdir _build && cd _build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UNITTESTS=ON ../
- name: build
cmake -DCMAKE_BUILD_TYPE=Debug ../
- id: build
name: Build and dump
run: |
sudo apt install -y abi-dumper
cd pull_request/_build && cmake --build ./
sudo apt install -y tcl
cd gitview_pr/_build && cmake --build ./
make install DESTDIR=./installdir
SRT_TAG_VERSION=$(cat version.h |grep SRT_VERSION_MINOR |head -n1 |awk {'print $3'})
abi-dumper libsrt.so -o libsrt-pr.dump -public-headers installdir/usr/local/include/srt/ -lver 0
SRT_BASE="v1.$SRT_TAG_VERSION.0"
echo "SRT_BASE=$SRT_BASE" >> "$GITHUB_ENV"
SRT_TAG_VERSION=v$(../scripts/get-build-version.tcl full)
echo "SRT_TAG_VERSION=$SRT_TAG_VERSION" >> "$GITHUB_OUTPUT"
SRT_TAG=${SRT_TAG_VERSION}dev-$(git rev-parse --short HEAD)
echo "TAGGING PR BUILD: $SRT_TAG"
abi-dumper libsrt.so -o libsrt-pr.dump -public-headers installdir/usr/local/include/srt/ -lver $SRT_TAG
ls -ld libsrt-pr.dump
sha256sum libsrt-pr.dump
SRT_BASE=v$(../scripts/get-build-version.tcl base)
if [[ $SRT_TAG_VERSION == $SRT_BASE ]]; then
echo "NOT CHECKING ABI: base version is being built: $SRT_TAG (not emitting SRT_BASE)"
#echo "SRT_BASE=''" >> "$GITHUB_OUTPUT"
else
echo "WILL CHECK ABI changes $SRT_BASE - $SRT_TAG_VERSION"
echo "SRT_BASE=$SRT_BASE" >> "$GITHUB_OUTPUT"
fi
- id: upload_pr_dump
uses: actions/upload-artifact@v4
with:
name: abidump_pr
path: gitview_pr/_build/libsrt-pr.dump

build_base:
name: Build base version
runs-on: ubuntu-latest
needs: build_pr
if: ${{ needs.build_pr.outputs.base_version != '' }}

env:
SRT_BASE: ${{ needs.build_pr.outputs.base_version }}
SRT_TAG_VERSION: ${{ needs.build_pr.outputs.tag_version }}
steps:
- uses: actions/checkout@v3
with:
path: tag
path: gitview_base
ref: ${{ env.SRT_BASE }}
- name: configure_tag
- id: configure_tag
name: Configure (cmake)
run: |
echo $SRT_TAG_VERSION
cd tag
echo "TAG:$SRT_TAG_VERSION BASE:$SRT_BASE"

#This is currently a paranoid check - the if should do the job
if [[ -z $SRT_BASE ]]; then
echo "NO BASE DEFINED. NOT BUILDING"
exit 1
fi
cd gitview_base
mkdir _build && cd _build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UNITTESTS=ON ../
- name: build_tag
cmake -DCMAKE_BUILD_TYPE=Debug ../
- id: build_tag
name: Build and dump
if: ${{ success() }}
run: |
cd tag
sudo apt install -y abi-dumper
sudo apt install -y tcl
cd gitview_base
cd _build && cmake --build ./
make install DESTDIR=./installdir
abi-dumper libsrt.so -o libsrt-tag.dump -public-headers installdir/usr/local/include/srt/ -lver 1
echo "TAGGING BASE BUILD: $SRT_BASE"
abi-dumper libsrt.so -o libsrt-base.dump -public-headers installdir/usr/local/include/srt/ -lver $SRT_BASE
ls -ld libsrt-base.dump
sha256sum libsrt-base.dump
- id: upload_base_dump
uses: actions/upload-artifact@v4
with:
name: abidump_base
path: gitview_base/_build/libsrt-base.dump

check_abi:
name: Compare ABI
runs-on: ubuntu-latest
needs: [build_pr, build_base]
env:
SRT_BASE: ${{ needs.build_pr.outputs.base_version }}

steps:
- name: Download base dump
uses: actions/download-artifact@v4
with:
name: abidump_base
path: .
- name: Download pr dump
uses: actions/download-artifact@v4
with:
name: abidump_pr
path: .
- name: abi-check
run: |
git clone https://github.com/lvc/abi-compliance-checker.git
cd abi-compliance-checker && sudo make install && cd ../
abi-compliance-checker -l libsrt -old tag/_build/libsrt-tag.dump -new pull_request/_build/libsrt-pr.dump
RES=$?
if (( $RES != 0 ))
then
echo "ABI/API Compatibility check failed with value $?"
exit $RES
fi
git clone https://github.com/lvc/abi-compliance-checker.git
#cd gitview_pr/submodules
#git submodule update --init abi-compliance-checker
cd abi-compliance-checker && sudo make install && cd ../
#cd ../..
echo "FILESYSTEM state before running abi-check at $PWD"
ls -l
sha256sum libsrt-base.dump
sha256sum libsrt-pr.dump
abi-compliance-checker -l libsrt -old libsrt-base.dump -new libsrt-pr.dump
RES=$?
if (( $RES != 0 )); then
echo "ABI/API Compatibility check failed with value $?"
exit $RES
fi
- name: Download report
uses: actions/download-artifact@v4
with:
path: compat_reports
6 changes: 3 additions & 3 deletions .github/workflows/android.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ name: Android

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

jobs:
build:
name: NDK-R23
runs-on: ubuntu-20.04
runs-on: ubuntu-latest

steps:
- name: Setup Android NDK R23
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: "CodeQL"

on:
push:
branches: [ "master", "experimental/socket-groups" ]
branches: [ "master", "dev" ]
pull_request:
branches: [ "master" ]
branches: [ "master", "dev" ]

jobs:
analyze:
Expand Down
29 changes: 29 additions & 0 deletions .github/workflows/cxx03-ubuntu.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: C++03 (old compat)

on:
push:
branches: [ "master", "dev" ]
pull_request:
branches: [ "master", "dev" ]
types: [opened, synchronize, reopened]
jobs:
build:
name: ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: configure
run: |
mkdir _build && cd _build
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_STDCXX_SYNC=OFF -DUSE_CXX_STD=c++03 -DENABLE_ENCRYPTION=ON -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_TESTING=ON -DENABLE_EXAMPLES=ON -DENABLE_CODE_COVERAGE=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: build
# That below is likely SonarQube remains, which was removed earlier.
#run: cd _build && build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build .
run: cd _build && cmake --build .
- name: test
run: |
cd _build && ctest --extra-verbose
- name: codecov
run: |
source ./scripts/collect-gcov.sh
bash <(curl -s https://codecov.io/bash)
16 changes: 10 additions & 6 deletions .github/workflows/cxx11-macos.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: cxx11
name: C++11

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

jobs:
build:
Expand All @@ -14,13 +14,17 @@ jobs:
steps:
- name: GoogleTest
run: |
curl -o googletest.rb https://raw.githubusercontent.com/Homebrew/homebrew-core/23e7fb4dc0cc73facc3772815741e1deb87d6406/Formula/googletest.rb
brew install -s googletest.rb
brew tap-new Haivision/gt-local
brew extract --version=1.12.1 --force googletest Haivision/gt-local
brew install googletest@1.12.1
# NOTE: 1.12.1 is the last version that requires C++11; might need update later
# curl -o googletest.rb https://raw.githubusercontent.com/Homebrew/homebrew-core/23e7fb4dc0cc73facc3772815741e1deb87d6406/Formula/googletest.rb
# brew install -s googletest.rb
- uses: actions/checkout@v3
- name: configure
run: |
mkdir _build && cd _build
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DUSE_CXX_STD=14
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DUSE_CXX_STD=17
- name: build
run: cd _build && cmake --build ./
- name: test
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/cxx11-ubuntu.yaml
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
name: cxx11
name: C++11

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]
types: [opened, synchronize, reopened]
jobs:
build:
name: ubuntu
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: configure
run: |
mkdir _build && cd _build
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=ON -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_TESTING=ON -DENABLE_EXAMPLES=ON -DENABLE_CODE_COVERAGE=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: build
run: cd _build && build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build .
run: cd _build && cmake --build .
- name: test
run: |
cd _build && ctest --extra-verbose
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/cxx11-win.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: cxx11
name: C++11

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

jobs:
build:
Expand All @@ -17,7 +17,7 @@ jobs:
- name: configure
run: |
md _build && cd _build
cmake ../ -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DUSE_CXX_STD=c++11
cmake ../ -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_LOCALIF_WIN32=ON -DUSE_CXX_STD=c++11
- name: build
run: cd _build && cmake --build ./ --config Release --verbose
- name: test
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/iOS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: iOS

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

jobs:
build:
Expand All @@ -17,9 +17,13 @@ jobs:

steps:
- uses: actions/checkout@v3
- name: Install dependency packages
run: |
brew install make llvm
- name: configure
run: |
mkdir _build && cd _build
cmake ../ -DENABLE_ENCRYPTION=OFF -DENABLE_STDCXX_SYNC=${{matrix.cxxstdsync}} -DENABLE_UNITTESTS=OFF -DENABLE_BONDING=ON --toolchain scripts/iOS.cmake
export PATH="/opt/homebrew/opt/llvm/bin:$PATH" CC=clang CXX=clang++
cmake .. -DCMAKE_MAKE_PROGRAM=gmake -DENABLE_ENCRYPTION=OFF -DENABLE_STDCXX_SYNC=${{matrix.cxxstdsync}} -DENABLE_MONOTONIC_CLOCK=OFF -DENABLE_UNITTESTS=OFF -DUSE_CXX_STD=c++11 -DENABLE_BONDING=ON --toolchain scripts/iOS.cmake
- name: build
run: cd _build && cmake --build ./
4 changes: 2 additions & 2 deletions .github/workflows/s390x-focal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: QEMU to run s390x-focal

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

jobs:
Tests:
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "submodules/abi-compliance-checker"]
path = submodules/abi-compliance-checker
url = https://github.com/lvc/abi-compliance-checker.git
Loading