Fixed TURN session use after free (#3814) #23
This file contains 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: C/C++ CI | |
on: [push, pull_request] | |
jobs: | |
build-ubuntu-default: | |
# checking pure lib source distribution with plain configure & make | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: configure | |
run: ./configure | |
- name: make | |
run: make | |
build-ubuntu-default-full-bundle-1: | |
# full bundle: enable all codecs + AEC + DTLS | |
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y swig sip-tester libopencore-amrnb-dev | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h | |
- name: configure | |
run: CFLAGS="-g -fPIC" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
- name: set up Python 2.7 for pjsua test | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 2.7 | |
- name: unit tests | |
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test | |
build-ubuntu-default-full-bundle-2: | |
# full bundle 2: running pjnath test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y libopencore-amrnb-dev | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h | |
- name: configure | |
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure | |
- name: make | |
run: make | |
- name: unit tests | |
run: make pjnath-test | |
build-ubuntu-default-full-bundle-3: | |
# full bundle 3: running pjsip test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y libopencore-amrnb-dev | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h | |
- name: configure | |
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure | |
- name: make | |
run: make | |
- name: unit tests | |
run: make pjsip-test | |
build-ubuntu-no-tls: | |
# no TLS | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y swig | |
- name: configure | |
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --disable-ssl | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
# build-ubuntu-openssl | |
# TLS: with OpenSSL (same as build-ubuntu-default) | |
build-ubuntu-gnu-tls: | |
# TLS: with GnuTLS | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get update && sudo apt-get install -y --fix-missing swig libgnutls28-dev | |
- name: configure | |
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/ | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
build-ubuntu-video-openh264-1: | |
# video: video enabled with vpx and openh264 | |
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y swig nasm sip-tester libvpx-dev libopencore-amrnb-dev | |
- name: get openh264 | |
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git | |
- name: build openh264 | |
run: cd openh264 && make && sudo make install && sudo ldconfig | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h | |
- name: configure | |
run: CFLAGS="-g -fPIC -DHAS_VID_CODEC_TEST=0" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
- name: set up Python 2.7 for pjsua test | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 2.7 | |
- name: unit tests | |
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test | |
build-ubuntu-video-openh264-2: | |
# video 2: running pjnath test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev | |
- name: get openh264 | |
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git | |
- name: build openh264 | |
run: cd openh264 && make && sudo make install && sudo ldconfig | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h | |
- name: configure | |
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure | |
- name: make | |
run: make | |
- name: unit tests | |
run: make pjnath-test | |
build-ubuntu-video-openh264-3: | |
# video: 3: running pjsip test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev | |
- name: get openh264 | |
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git | |
- name: build openh264 | |
run: cd openh264 && make && sudo make install && sudo ldconfig | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h | |
- name: configure | |
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure | |
- name: make | |
run: make | |
- name: unit tests | |
run: make pjsip-test | |
build-ubuntu-video-ffmpeg: | |
# video enabled with vpx and ffmpeg and x264 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: sudo apt-get install -y swig nasm libx264-dev libvpx-dev | |
- name: get ffmpeg | |
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git | |
- name: configure ffmpeg | |
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264 | |
- name: build ffmpeg | |
run: cd FFmpeg && make -j10 && sudo make install | |
- name: config site | |
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h | |
- name: configure | |
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
build-mac-default: | |
# checking pure lib source distribution with plain configure & make | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: configure | |
run: ./configure | |
- name: make | |
run: make | |
build-mac-default-full-bundle-1: | |
# full bundle: enable all codecs + AEC + DTLS | |
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] opencore-amr swig sipp | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h | |
- name: configure | |
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/[email protected]/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" CXXFLAGS="-g -fPIC" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
- name: disable firewall | |
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off | |
- name: set up Python 2.7 for pjsua test | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 2.7 | |
- name: unit tests | |
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test | |
build-mac-default-full-bundle-2: | |
# full bundle 2: running pjnath test | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] opencore-amr | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h | |
- name: configure | |
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/[email protected]/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" ./configure | |
- name: make | |
run: make | |
- name: disable firewall | |
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off | |
- name: unit tests | |
run: make pjnath-test | |
build-mac-default-full-bundle-3: | |
# full bundle 3: running pjsip test | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] opencore-amr | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h | |
- name: configure | |
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/[email protected]/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" ./configure | |
- name: make | |
run: make | |
- name: disable firewall | |
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off | |
- name: unit tests | |
run: make pjsip-test | |
# build-ubuntu-no-tls: | |
# no TLS (same as build-mac-default) | |
build-mac-openssl: | |
# TLS: with OpenSSL | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] swig | |
- name: configure | |
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/[email protected]/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" CXXFLAGS="-fPIC" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
build-mac-gnu-tls: | |
# TLS: with GnuTLS | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install swig | |
- name: configure | |
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/local/ | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
build-mac-video-openh264-1: | |
# video: video enabled with vpx and openh264 | |
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] openh264 libvpx opencore-amr swig sipp | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h | |
- name: configure | |
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/[email protected]/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" CXXFLAGS="-g -fPIC" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
- name: disable firewall | |
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off | |
- name: set up Python 2.7 for pjsua test | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 2.7 | |
- name: unit tests | |
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test | |
build-mac-video-openh264-2: | |
# video 2: running pjnath test | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] openh264 libvpx opencore-amr | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h | |
- name: configure | |
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/[email protected]/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" ./configure | |
- name: make | |
run: make | |
- name: disable firewall | |
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off | |
- name: unit tests | |
run: make pjnath-test | |
build-mac-video-openh264-3: | |
# video 3: running pjsip test | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] openh264 libvpx opencore-amr | |
- name: config site | |
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h | |
- name: configure | |
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/[email protected]/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" ./configure | |
- name: make | |
run: make | |
- name: disable firewall | |
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off | |
- name: unit tests | |
run: make pjsip-test | |
build-mac-video-ffmpeg: | |
# video enabled with vpx and ffmpeg and x264 | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] x264 libvpx nasm swig | |
- name: get ffmpeg | |
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git | |
- name: configure ffmpeg | |
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264 | |
- name: build ffmpeg | |
run: cd FFmpeg && make -j10 && sudo make install | |
- name: config site | |
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h | |
- name: configure | |
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/[email protected]/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" CXXFLAGS="-fPIC" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
build-mac-video-vid-toolbox: | |
# video enabled with vpx and video toolbox | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install dependencies | |
run: brew install [email protected] libvpx swig | |
- name: config site | |
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n#define PJMEDIA_HAS_VID_TOOLBOX_CODEC 1\n" > pjlib/include/pj/config_site.h | |
- name: configure | |
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/[email protected]/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/[email protected]/lib" CXXFLAGS="-fPIC" ./configure | |
- name: make | |
run: make | |
- name: swig bindings | |
run: cd pjsip-apps/src/swig && make | |
build-windows-default: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: get swig | |
run: Invoke-WebRequest -Uri "http://nchc.dl.sourceforge.net/project/swig/swigwin/swigwin-4.0.1/swigwin-4.0.1.zip" -OutFile ".\swigwin.zip" | |
shell: powershell | |
- name: expand swig | |
run: | | |
Expand-Archive -LiteralPath .\swigwin.zip -DestinationPath .\swigwin\; pwd | |
cd swigwin\swigwin-4.0.1 | |
Add-Content ..\..\swig_path.txt $pwd.Path | |
shell: powershell | |
- name: config site | |
run: | |
type nul > pjlib/include/pj/config_site.h | |
shell: cmd | |
- name: MSBuild | |
run: | | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Debug /p:Platform=win32 | |
shell: cmd | |
- name: build swig | |
run: | | |
set /P SWIG_PATH=<swig_path.txt | |
set PATH=%PATH%;%SWIG_PATH% | |
dir pjlib/include/pj/config_site.h | |
type pjlib/include/pj/config_site.h | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
set INCLUDE=%INCLUDE%;%JAVA_HOME%\include;%JAVA_HOME%\include\win32 | |
cd pjsip-apps/build | |
msbuild swig_java_pjsua2.vcxproj /p:PlatformToolset=v143 /p:Configuration=Debug /p:Platform=win32 /p:UseEnv=true | |
shell: cmd | |
build-windows-with-openssl-unit-test-1: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: get openssl | |
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1q.zip" -OutFile ".\openssl.zip" | |
shell: powershell | |
- name: expand openssl | |
run: | | |
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; | |
cd openssl_build\openssl-1.1\x86 | |
Add-Content ..\..\..\openssl_dir.txt $pwd.Path | |
shell: powershell | |
- name: check openssl folder | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
dir %OPENSSL_DIR%\include | |
dir %OPENSSL_DIR%\lib | |
shell: cmd | |
- name: config site | |
run: | |
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1" | |
shell: powershell | |
- name: check VsDevCmd.bat | |
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
shell: cmd | |
- name: MSBuild | |
working-directory: . | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include | |
set LIB=%LIB%;%OPENSSL_DIR%\lib | |
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true | |
shell: cmd | |
- name: unit tests | |
run: | | |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt | |
$env:PATH+=";$env:OPENSSL_DIR\bin" | |
cd pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe | |
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe | |
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe | |
shell: powershell | |
build-windows-with-openssl-unit-test-2: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: get openssl | |
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1q.zip" -OutFile ".\openssl.zip" | |
shell: powershell | |
- name: expand openssl | |
run: | | |
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd | |
cd openssl_build\openssl-1.1\x86 | |
Add-Content ..\..\..\openssl_dir.txt $pwd.Path | |
shell: powershell | |
- name: check openssl folder | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
dir "%OPENSSL_DIR%\include" | |
dir "%OPENSSL_DIR%\lib" | |
shell: cmd | |
- name: config site | |
run: | |
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1" | |
shell: powershell | |
- name: check VsDevCmd.bat | |
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
shell: cmd | |
- name: MSBuild | |
working-directory: . | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include | |
set LIB=%LIB%;%OPENSSL_DIR%\lib | |
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true | |
shell: cmd | |
- name: build test tools cmp_wav | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
cd tests/pjsua/tools | |
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include | |
set LIB=%LIB%;%OPENSSL_DIR%\lib | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
msbuild cmp_wav.vcxproj /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true | |
shell: cmd | |
- name: set up Python 2.7 for pjsua test | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 2.7 | |
- name: unit tests | |
run: | | |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt | |
$env:PATH+=";$env:OPENSSL_DIR\bin" | |
cd tests/pjsua; python runall.py | |
cd ../../pjsip/bin; ./pjsip-test-i386-Win32-vc14-Release.exe | |
shell: powershell | |
build-windows-gnu-tls: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: get gnutls | |
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/gnutls/releases/download/gnutls_3_6_11/libgnutls_gnutls_3_6_11_msvc14.zip" -Outfile ".\libgnutls.zip" | |
shell: powershell | |
- name: expand gnutls | |
run: | | |
Expand-Archive -LiteralPath .\libgnutls.zip -DestinationPath .\libgnutls_build\; pwd | |
cd libgnutls_build | |
Add-Content ..\libgnutls_dir.txt $pwd.Path | |
shell: powershell | |
- name: check gnutls folder | |
run: | | |
set /P LIBGNUTLS_DIR=<libgnutls_dir.txt | |
dir "%LIBGNUTLS_DIR%\include" | |
dir "%LIBGNUTLS_DIR%\lib\x86" | |
shell: cmd | |
- name: config site | |
run: | | |
echo "" > pjlib\include\pj\config_site.h | |
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1" | |
Add-Content config_site.h "#define PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_GNUTLS" | |
shell: powershell | |
- name: check VsDevCmd.bat | |
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
shell: cmd | |
- name: MSBuild | |
working-directory: . | |
run: | | |
set /P LIBGNUTLS_DIR=<gnutls_dir.txt | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
set INCLUDE=%INCLUDE%;%LIBGNUTLS_DIR%\include | |
set LIB=%LIB%;%LIBGNUTLS_DIR%\lib\x86 | |
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true | |
shell: cmd | |
build-windows-with-video-libvpx-unit-test-1: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: get openssl | |
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1q.zip" -OutFile ".\openssl.zip" | |
shell: powershell | |
- name: expand openssl | |
run: | | |
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd | |
cd openssl_build\openssl-1.1\x86 | |
Add-Content ..\..\..\openssl_dir.txt $pwd.Path | |
shell: powershell | |
- name: check openssl folder | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
dir "%OPENSSL_DIR%\include" | |
dir "%OPENSSL_DIR%\lib" | |
shell: cmd | |
- name: get libvpx | |
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/libvpx/releases/download/v1.8.2/libvpx_v1.8.2_msvc14.zip" -Outfile "libvpx.zip" | |
shell: powershell | |
- name: expand libvpx | |
run: | | |
Expand-Archive -LiteralPath .\libvpx.zip -DestinationPath .\libvpx_build\; pwd | |
cd libvpx_build | |
Add-Content ..\libvpx_dir.txt $pwd.Path | |
shell: powershell | |
- name: check libvpx folder | |
run: | | |
set /P LIBVPX_DIR=<libvpx_dir.txt | |
dir "%LIBVPX_DIR%\include" | |
dir "%LIBVPX_DIR%\lib\x86" | |
shell: cmd | |
- name: get libsdl | |
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip" | |
shell: powershell | |
- name: expand libsdl | |
run: | | |
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd | |
cd libsdl_build | |
Add-Content ..\libsdl_dir.txt $pwd.Path | |
shell: powershell | |
- name: check libsdl folder | |
run: | | |
set /P LIBSDL_DIR=<libsdl_dir.txt | |
dir "%LIBSDL_DIR%\include\SDL" | |
dir "%LIBSDL_DIR%\lib\x86" | |
shell: cmd | |
- name: config site | |
run: | | |
cd pjlib/include/pj; cp config_site_test.h config_site.h | |
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1" | |
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1" | |
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1" | |
Add-Content config_site.h "#define PJMEDIA_HAS_LIBYUV 1" | |
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1" | |
Add-Content config_site.h "#define PJMEDIA_HAS_VPX_CODEC 1" | |
shell: powershell | |
- name: check VsDevCmd.bat | |
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
shell: cmd | |
- name: MSBuild | |
working-directory: . | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
set /P LIBVPX_DIR=<libvpx_dir.txt | |
set /P LIBSDL_DIR=<libsdl_dir.txt | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%LIBVPX_DIR%\include;%LIBSDL_DIR%\include\SDL | |
set LIB=%LIB%;%OPENSSL_DIR%\lib;%LIBVPX_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86 | |
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true | |
shell: cmd | |
- name: build test tools cmp_wav | |
run: | | |
set /P OPENSSL_DIR=<openssl_dir.txt | |
set /P LIBVPX_DIR=<libvpx_dir.txt | |
set /P LIBSDL_DIR=<libsdl_dir.txt | |
cd tests/pjsua/tools | |
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%LIBVPX_DIR%\include;%LIBSDL_DIR%\include\SDL | |
set LIB=%LIB%;%OPENSSL_DIR%\lib;%LIBVPX_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86 | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
msbuild cmp_wav.vcxproj /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true | |
shell: cmd | |
- name: set up Python 2.7 for pjsua test | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 2.7 | |
- name: unit tests | |
run: | | |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt | |
$env:LIBVPX_DIR = Get-Content .\libvpx_dir.txt | |
$env:LIBSDL_DIR = Get-Content .\libsdl_dir.txt | |
$env:PATH+=";$env:OPENSSL_DIR\bin;$env:LIBVPX_DIR\bin\x86;$env:LIBSDL_DIR\bin\x86;" | |
cd tests/pjsua; python runall.py | |
cd ../../pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe | |
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe | |
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe | |
shell: powershell | |
build-windows-video-ffmpeg: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: get ffmpeg | |
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/FFmpeg/releases/download/4.3.r96746/libffmpeg_4.3.r96746_msvc14_x86.zip" -Outfile "libffmpeg.zip" | |
shell: powershell | |
- name: expand ffmpeg | |
run: | | |
Expand-Archive -LiteralPath .\libffmpeg.zip -DestinationPath .\libffmpeg_build\; pwd | |
cd libffmpeg_build | |
Add-Content ..\libffmpeg_dir.txt $pwd.Path | |
shell: powershell | |
- name: check ffmpeg folder | |
run: | | |
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt | |
dir "%LIBFFMPEG_DIR%\include" | |
dir "%LIBFFMPEG_DIR%\lib\x86" | |
shell: cmd | |
- name: get libx264 | |
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/x264/releases/download/0.159.r2991/libx264_0.159.r2991_msvc14.zip" -Outfile ".\libx264.zip" | |
shell: powershell | |
- name: expand libx264 | |
run: | | |
Expand-Archive -LiteralPath .\libx264.zip -DestinationPath .\libx264_build\; pwd | |
cd libx264_build | |
Add-Content ..\libx264_dir.txt $pwd.Path | |
shell: powershell | |
- name: check libx264 folder | |
run: | | |
set /P LIBX264_DIR=<libx264_dir.txt | |
dir "%LIBX264_DIR%\include" | |
dir "%LIBX264_DIR%\lib\x86" | |
shell: cmd | |
- name: get libsdl | |
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip" | |
shell: powershell | |
- name: expand libsdl | |
run: | | |
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd | |
cd libsdl_build | |
Add-Content ..\libsdl_dir.txt $pwd.Path | |
shell: powershell | |
- name: check libsdl folder | |
run: | | |
set /P LIBSDL_DIR=<libsdl_dir.txt | |
dir "%LIBSDL_DIR%\include\SDL" | |
dir "%LIBSDL_DIR%\lib\x86" | |
shell: cmd | |
- name: config site | |
run: | | |
echo "" > pjlib\include\pj\config_site.h | |
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1" | |
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG 1" | |
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG_VID_CODEC 1" | |
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 1" | |
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1" | |
shell: powershell | |
- name: check VsDevCmd.bat | |
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
shell: cmd | |
- name: MSBuild | |
working-directory: . | |
run: | | |
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt | |
set /P LIBX264_DIR=<libx264_dir.txt | |
set /P LIBSDL_DIR=<libsdl_dir.txt | |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
set INCLUDE=%INCLUDE%;%LIBFFMPEG_DIR%\include;%LIBX264_DIR%\include;%LIBSDL_DIR%\include\SDL | |
set LIB=%LIB%;%LIBFFMPEG_DIR%\lib\x86;%LIBX264_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86 | |
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true | |
shell: cmd |