Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
58c8dd8
gh-635 Update android scripts and add ndk26
gavv Jun 17, 2024
8b83a05
nixos: use shell.nix instead of cmdline args
adrianopol Jun 20, 2024
090a33a
chore: Refine and rename pr.py
gavv Jun 23, 2024
9fb71da
gh-636: added new toolchains for ARM+GCC
adrianopol Jun 23, 2024
bc7f6ee
chore: Cleanup in scripts
gavv Jun 25, 2024
0cc6486
ci: Disable doxygen on openSUSE
gavv Jun 27, 2024
6add76e
scripts: Add --title to rgh.py
gavv Jul 6, 2024
82ea6af
Update icons and images (#746)
Izchomatik Jul 7, 2024
a811be2
docs: Use new logos
gavv Jul 7, 2024
37765d7
scripts: Update rgh.py
gavv Jul 11, 2024
8c2c606
ci: Bump & fixes
gavv Jul 11, 2024
ea6aad3
ci: Update project actions
gavv Jul 11, 2024
85ac1f5
scripts: Cleanup rgh.py
gavv Jul 11, 2024
1dfdc7a
gh-511: Add "scons selftest"
gavv Jul 13, 2024
0a83bf5
ci: Disable doxygen on alpine
gavv Jul 17, 2024
c335d80
docs: Refinements in documentation
gavv Mar 27, 2025
fc7941b
scripts: Cleanup rgh.py
gavv Jul 25, 2024
2ee1eb6
ci: Automatically add "contribution" label
gavv Jul 25, 2024
ea4a0bd
scripts: Fixes in rgh.py
gavv Jul 25, 2024
681602a
scripts: Fixes in rgh.py
gavv Jul 26, 2024
06aacdc
scripts: Fixes in rgh.py
gavv Jul 28, 2024
cc6e8b2
docs: Update authors
gavv Jul 28, 2024
83d7712
scripts: Fix in rgh.py
gavv Aug 1, 2024
999458c
scripts: Fix rgh.py
gavv Aug 7, 2024
088bf44
docs: Small updates in sphinx docs
gavv Aug 12, 2024
ec9d4ba
ci: Use libs from distro where possible
gavv Aug 13, 2024
9c6c002
ci: Fix github actions warnings
gavv Aug 13, 2024
76b9981
scripts: Update rgh.py
gavv Nov 22, 2024
b1179de
scripts: Update rgh.py
gavv Nov 26, 2024
959f475
ci: Remove macOS 12 from CI
gavv Dec 19, 2024
84536f8
scripts: Update rgh.py
gavv Jan 21, 2025
4f7b474
scripts: Fix token handling in rgh.py
gavv Jan 27, 2025
e6162f5
build: Rename clean targets
gavv Feb 11, 2025
516a47f
scripts: Fixes in rgh.py
gavv Feb 11, 2025
aeef8e0
docs: Fix scons target names in sphinx
gavv Feb 15, 2025
81a8e3d
scripts: Update regex in rgh.py
gavv Feb 23, 2025
3e4b619
ci: Extract reusable actions to ci/ repo
gavv Mar 1, 2025
6a5a74e
ci: Update to new workflows
gavv Mar 21, 2025
98e766d
docs: Hide private members from doxygen
gavv Jan 16, 2025
4c4679d
ci: Fix triggers workflow
gavv Mar 27, 2025
5fd63ab
scons: Fix building sox on macOS
gavv Jul 25, 2024
10cc635
ci: Fix triggers token
gavv Mar 27, 2025
8eece31
ci: Don't trigger rt-tests
gavv Mar 27, 2025
a90a37a
ci: Disable archlinux in master
gavv Apr 4, 2025
032093c
ci: Disable benchmarks & valgrind builds on CI
gavv Apr 4, 2025
9e7e393
ci: Hardening
gavv Apr 15, 2025
ee067cc
docs: README updates
gavv Apr 15, 2025
d2d293f
Revert "ci: Disable archlinux in master"
gavv Apr 29, 2025
8319978
Revert "ci: Disable benchmarks & valgrind builds on CI"
gavv Apr 29, 2025
6087d5d
build: Bump c++ standard to c++11
gavv Apr 16, 2025
a4716b8
build: Bump openfec
gavv Apr 16, 2025
e6e0dcb
ci: Update compilers & toolchains
gavv Apr 20, 2025
9c65791
build: Fix build with -std=c++11 on macOS
gavv Apr 29, 2025
7d7d73c
build: Fix --build-3rdparty on cmake 4.x
gavv Jun 11, 2025
2e992db
Fix (#753)
shresthan3 Feb 18, 2026
1e73965
Merge branch 'develop' into feat/fix-753
shresthan3 Feb 18, 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
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ jobs:
- script: linux-checks/check-formatting
image: rocstreaming/env-ubuntu

- script: linux-checks/check-doctests
- script: linux-checks/check-scons
image: rocstreaming/env-ubuntu

- script: linux-checks/pulseaudio-versions
Expand Down
24 changes: 6 additions & 18 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -440,13 +440,13 @@ doc_env = env.DeepClone()
doc_env.SConscript('docs/SConscript',
duplicate=0, exports='doc_env')

# run python doctests
env.AlwaysBuild(env.Alias('doctest', [], [
env.DocTest('#scripts/scons_helpers/build-3rdparty.py'),
# run scons self-test
env.AlwaysBuild(env.Alias('selftest', [], [
env.SelfTest(),
]))

# exit early if there is nothing to build
non_build_targets = ['fmt', 'docs', 'sphinx', 'doxygen', 'doctest']
non_build_targets = ['fmt', 'docs', 'sphinx', 'doxygen', 'selftest']
if set(COMMAND_LINE_TARGETS) \
and set(COMMAND_LINE_TARGETS).intersection(non_build_targets) == set(COMMAND_LINE_TARGETS):
Return()
Expand Down Expand Up @@ -893,7 +893,7 @@ if meta.compiler in ['gcc', 'clang']:
'-std=c11',
])

if 'target_posix' in env['ROC_TARGETS'] and meta.platform not in ['macos']:
if 'target_posix' in env['ROC_TARGETS'] and meta.platform not in ['darwin']:
# macOS is special, otherwise rely on _POSIX_C_SOURCE
env.Append(CPPDEFINES=[('_POSIX_C_SOURCE', env['ROC_POSIX_PLATFORM'])])

Expand All @@ -902,18 +902,6 @@ env.Append(CPPDEFINES=[
('__STDC_LIMIT_MACROS', '1'),
])

if meta.platform in ['windows']:
env.Append(CPPDEFINES=[
# enable M_PI and similar
'_USE_MATH_DEFINES',
# disable min() and max() macros
'NOMINMAX',
# disable winsock1 and redundant macros like far/near
'WIN32_LEAN_AND_MEAN',
# minimal supported windows version (windows 7)
('_WIN32_WINNT', '0x0601'),
])

# env will hold settings common to all code
# subenvs will hold settings specific to particular parts of code
subenv_names = 'internal_modules public_libs examples tools tests generated_code'.split()
Expand All @@ -927,7 +915,7 @@ subenvs = type('subenvs', (), subenv_attrs)
env, subenvs = env.SConscript('3rdparty/SConscript',
duplicate=0, exports='env subenvs meta')

if meta.platform in ['macos']:
if meta.platform in ['darwin']:
if env['ROC_MACOS_PLATFORM']:
for var in ['CXXFLAGS', 'CFLAGS', 'LINKFLAGS']:
env.Append(**{var: [
Expand Down
4 changes: 0 additions & 4 deletions docs/sphinx/_static/sphinx_extras.css
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,3 @@ table.align-center {
width: 180px;
height: 90px;
}

.api-examples li a {
background-color: #d0dcdf36;
}
1 change: 1 addition & 0 deletions docs/sphinx/about_project/licensing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ OpenFEC

OpenFEC is an optional but very useful dependency that allows to restore lost packets. OpenFEC source code has several licenses. Most of the code is licensed under CeCCIL-C, which is LGPL-like. LDPC-Staircase codec, however, is licensed under CeCCIL, a stricter GPL-like license. There are also portions under BSD-like and CC BY-SA licenses that may require attribution.

OpenFEC
If you can't fulfill CeCCIL requirements, you can build OpenFEC with LDPC-Staircase disabled. When using `our fork <https://github.com/roc-streaming/openfec>`_, you can pass ``-DOF_USE_LDPC_STAIRCASE_CODEC=OFF`` option to cmake. Alternatively, you can disable OpenFEC dependency altogether by passing ``--disable-openfec`` option to scons, but then you won't have loss recovery.
9 changes: 7 additions & 2 deletions docs/sphinx/building/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ Runtime dependencies
- LGPL
- optional, enables additional audio file formats

* - `libsndfile <https://libsndfile.github.io/libsndfile/>`_
- >= 1.0.26
- LGPL
- optional, used for audio I/O

* - `libunwind <https://www.nongnu.org/libunwind/>`_
- >= 1.2.1
- X11
Expand All @@ -90,7 +95,7 @@ Runtime dependencies
* - `OpenFEC <https://openfec.inrialpes.fr>`_
- >= 1.4.2 (recommended to use `our fork <https://github.com/roc-streaming/openfec>`_)
- CeCCIL-C (LGPL-like) + CeCCIL (GPL-like, only for LDPC-Staircase) + BSD-like + CC BY-SA
- optional, enables packet loss repair with FECFRAME
- optional, used for FECFRAME support

* - `OpenSSL <https://www.openssl.org/>`_
- >= 1.1.1
Expand All @@ -105,7 +110,7 @@ Runtime dependencies
* - `SoX <https://sox.sourceforge.net>`_
- >= 14.4.0
- LGPL
- optional, enables additional audio file formats and sound servers
- optional, used for audio I/O

* - `SpeexDSP <https://github.com/xiph/speexdsp>`_
- >= 1.2beta3
Expand Down
2 changes: 1 addition & 1 deletion docs/sphinx/internals/audio_backends.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ The job of ``roc-send`` and ``roc-recv`` is thus to open a source and a sink and

- in ``roc-recv``, ``ISource`` is implemented by receiver pipeline from ``roc_pipeline``, and ``ISink`` is implemented by device or file from ``roc_sndio``

The task of transferring sound from ``ISource`` to ``ISink`` is implemented in `sndio::IoPump <https://roc-streaming.org/toolkit/doxygen/classroc_1_1sndio_1_1IoPump.html>`_ class, which works uniformly with any pair of source and sink, being it file, device, or pipeline.
The task of transferring sound from ``ISource`` to ``ISink`` is implemented in `sndio::Pump <https://roc-streaming.org/toolkit/doxygen/classroc_1_1sndio_1_1Pump.html>`_ class, which works uniformly with any pair of source and sink, being it file, device, or pipeline.

Backends and drivers
====================
Expand Down
11 changes: 11 additions & 0 deletions docs/sphinx/internals/code_structure.rst
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,17 @@ target_pc Enabled for PC (like server, desktop, laptop)
target_posix Enabled for a POSIX OS
target_posix_ext Enabled for a POSIX OS with POSIX extensions
target_posix_pc Enabled for a POSIX OS on PC
target_gnu Enabled for GNU-like libc and compiler
target_darwin Enabled for macOS
target_android Enabled for Android
target_c11 Enabled for C11 compilers
target_libunwind Enabled if libunwind is available
target_libatomic_ops Enabled if libatomic_ops is available
target_libuv Enabled if libuv is available
target_openfec Enabled if OpenFEC is available
target_speexdsp Enabled if SpeexDSP is available
target_sox Enabled if SoX is available
target_sndfile Enabled if libsndfile is available
target_pulseaudio Enabled if PulseAudio is available
target_sndfile Enabled if libsndfile is available
target_sox Enabled if SoX is available
Expand Down
2 changes: 1 addition & 1 deletion scripts/ci_checks/linux-arm/run-tests-in-qemu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ find bin/"$toolchain" -name 'roc-test-*' | \
do
LD_LIBRARY_PATH="/opt/sysroot/lib:$(echo \
"$PWD/build/3rdparty/$toolchain/$compiler"/*/rpath | tr ' ' ':')" \
python3 scripts/scons_helpers/timeout-run.py 900 \
python3 scripts/scons_helpers/timeout-run.py 300 \
"$qemu_cmd" -L "/opt/sysroot" -cpu "$cpu" "$tst"
done
5 changes: 5 additions & 0 deletions scripts/ci_checks/linux-checks/check-scons.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

set -euo pipefail

scons -Q selftest
Loading
Loading