Skip to content

Fixed TURN session use after free (#3814) #23

Fixed TURN session use after free (#3814)

Fixed TURN session use after free (#3814) #23

Workflow file for this run

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