Smoothen AudioBridge mix instead of clamping/truncating (see #3593 and #3601) #2284
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: janus-ci | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - test-ci | |
| pull_request: | |
| branches: | |
| - master | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| compiler: [gcc, clang] | |
| datachannels: ["enable-datachannels", "disable-datachannels"] | |
| libcurl: ["enable-libcurl", "disable-libcurl"] | |
| include: | |
| - datachannels: "enable-datachannels" | |
| libcurl: "enable-libcurl" | |
| deps_from_src: "yes" | |
| janus_config_opts: "" | |
| - datachannels: "enable-datachannels" | |
| libcurl: "disable-libcurl" | |
| deps_from_src: "no" | |
| janus_config_opts: "--disable-aes-gcm -disable-mqtt --disable-mqtt-event-handler --disable-turn-rest-api --disable-sample-event-handler" | |
| - datachannels: "disable-datachannels" | |
| libcurl: "enable-libcurl" | |
| deps_from_src: "no" | |
| janus_config_opts: "--disable-aes-gcm -disable-mqtt --disable-mqtt-event-handler --disable-data-channels" | |
| exclude: | |
| - datachannels: "disable-datachannels" | |
| libcurl: "disable-libcurl" | |
| env: | |
| CC: ${{ matrix.compiler }} | |
| steps: | |
| - name: install janus apt dependencies | |
| run: > | |
| sudo apt-get update && sudo apt-get --no-install-recommends -y install | |
| duktape-dev | |
| libavcodec-dev | |
| libavformat-dev | |
| libavutil-dev | |
| libconfig-dev | |
| libglib2.0-dev | |
| libgirepository1.0-dev | |
| liblua5.3-dev | |
| libjansson-dev | |
| libmicrohttpd-dev | |
| libnanomsg-dev | |
| libogg-dev | |
| libopus-dev | |
| libpcap-dev | |
| librabbitmq-dev | |
| libsofia-sip-ua-dev | |
| libssl-dev | |
| libtool | |
| meson | |
| ninja-build | |
| - name: setup additional dependencies from apt | |
| if: ${{ matrix.deps_from_src == 'no' }} | |
| run: > | |
| sudo apt-get --no-install-recommends -y install | |
| libnice-dev | |
| libsrtp2-dev | |
| libusrsctp-dev | |
| libwebsockets-dev | |
| # Workaround for https://github.com/actions/runner-images/issues/11926 | |
| - name: install cmake v3.31 | |
| uses: jwlawson/actions-setup-cmake@v2 | |
| with: | |
| cmake-version: "3.31.6" | |
| - name: install libcurl from apt | |
| if: ${{ matrix.libcurl == 'enable-libcurl' }} | |
| run: sudo apt-get --no-install-recommends -y install libcurl4-openssl-dev | |
| - name: setup python | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| architecture: "x64" | |
| - name: checkout libnice source | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: libnice/libnice | |
| ref: master | |
| - name: setup libnice from sources | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| run: | | |
| meson setup -Dprefix=/usr -Dlibdir=lib -Dc_args="-O0 -Wno-cast-align" \ | |
| -Dexamples=disabled \ | |
| -Dgtk_doc=disabled \ | |
| -Dgstreamer=disabled \ | |
| -Dgupnp=disabled \ | |
| -Dtests=disabled \ | |
| build | |
| ninja -C build | |
| sudo ninja -C build install | |
| - name: checkout libsrtp source | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: cisco/libsrtp | |
| ref: v2.7.0 | |
| - name: setup libsrtp from sources | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| run: | | |
| ./configure --prefix=/usr CFLAGS="-O0" \ | |
| --disable-pcap \ | |
| --enable-openssl | |
| make -j$(nproc) shared_library | |
| sudo make install | |
| - name: checkout usrsctp source | |
| if: ${{ matrix.datachannels == 'enable-datachannels' && matrix.deps_from_src == 'yes' }} | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: sctplab/usrsctp | |
| ref: master | |
| - name: setup usrsctp from sources | |
| if: ${{ matrix.datachannels == 'enable-datachannels' && matrix.deps_from_src == 'yes' }} | |
| run: | | |
| ./bootstrap | |
| ./configure --prefix=/usr CFLAGS="-O0" \ | |
| --disable-debug \ | |
| --disable-inet \ | |
| --disable-inet6 \ | |
| --disable-programs \ | |
| --disable-static \ | |
| --enable-shared | |
| make -j$(nproc) | |
| sudo make install | |
| - name: checkout lws source | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: warmcat/libwebsockets | |
| ref: v4.3-stable | |
| - name: setup lws from sources | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| run: | | |
| mkdir build && cd build | |
| cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_C_FLAGS="-O0" \ | |
| -DLWS_ROLE_RAW_FILE=OFF \ | |
| -DLWS_WITH_HTTP2=OFF \ | |
| -DLWS_WITHOUT_EXTENSIONS=OFF \ | |
| -DLWS_WITHOUT_TESTAPPS=ON \ | |
| -DLWS_WITHOUT_TEST_CLIENT=ON \ | |
| -DLWS_WITHOUT_TEST_PING=ON \ | |
| -DLWS_WITHOUT_TEST_SERVER=ON \ | |
| -DLWS_WITH_STATIC=OFF \ | |
| .. | |
| make -j$(nproc) | |
| sudo make install | |
| - name: checkout paho-mqtt source | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: eclipse/paho.mqtt.c | |
| ref: v1.3.14 | |
| - name: setup paho-mqtt from sources | |
| if: ${{ matrix.deps_from_src == 'yes' }} | |
| run: | | |
| mkdir build.paho && cd build.paho | |
| cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_C_FLAGS="-O0" \ | |
| -DPAHO_HIGH_PERFORMANCE=TRUE \ | |
| -DPAHO_BUILD_DOCUMENTATION=FALSE \ | |
| -DPAHO_BUILD_SAMPLES=FALSE \ | |
| -DPAHO_BUILD_SHARED=TRUE \ | |
| -DPAHO_BUILD_STATIC=FALSE \ | |
| -DPAHO_ENABLE_TESTING=FALSE \ | |
| -DPAHO_WITH_SSL=TRUE \ | |
| .. | |
| make -j$(nproc) | |
| sudo make install | |
| - name: checkout janus source | |
| uses: actions/checkout@v4 | |
| - name: build janus from sources | |
| env: | |
| JANUS_CONFIG_COMMON: "--disable-docs --enable-post-processing --enable-plugin-lua --enable-plugin-duktape --enable-json-logger" | |
| JANUS_CONFIG_OPTS: ${{ matrix.janus_config_opts }} | |
| run: | | |
| ./autogen.sh | |
| ./configure $JANUS_CONFIG_COMMON $JANUS_CONFIG_OPTS CFLAGS="-O0" | |
| make -j$(nproc) | |
| make check-fuzzers | |
| javascript-lint: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install modules | |
| run: | | |
| cd npm | |
| npm install | |
| - name: Run ESLint | |
| run: | | |
| cd npm | |
| npm run lint | |
| javascript-dist: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install modules | |
| run: | | |
| cd npm | |
| npm install | |
| - name: Make dist files | |
| run: | | |
| cd npm | |
| npm run prerelease | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: janus.es.js | |
| path: npm/dist/janus.es.js |