Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenSL ES driver. Changing the queue processing strategy. #813

Open
wants to merge 31 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
685177d
Remove WIP comment
falkTX Jul 15, 2021
caf336a
Fix custom win32 detection, fixes missing HAVE_ASIO macro
falkTX Jul 28, 2021
70488cf
Better handling of optional asio
falkTX Jul 28, 2021
8d41e43
Start of v1.9.20
falkTX Jul 28, 2021
48558c0
example-clients: Use c++ compiler for jack_simdtests
kraj Jan 16, 2020
0ba8607
First step towards automated builds
falkTX Jul 31, 2021
8340794
CI: Add build jack2 step
falkTX Jul 31, 2021
7457966
Cleanup
falkTX Jul 31, 2021
d4a1c7b
Correct win32 build commands
falkTX Jul 31, 2021
5a776bc
Fix cache; Generate MSVC lib files
falkTX Jul 31, 2021
2d64d65
Generate macOS package
falkTX Jul 31, 2021
7991635
CI: Fix win64 build, no mixed just yet
falkTX Jul 31, 2021
37d0488
CI: Now try win64 mixed mode
falkTX Jul 31, 2021
116007c
Allow custom version on macOS generate-pkg script
falkTX Jul 31, 2021
ea69335
CI: Generate windows installers
falkTX Jul 31, 2021
ee3eeea
Update windows installers as artifacts
falkTX Jul 31, 2021
8e753dc
CI: Use xvfb-run for wine stuff
falkTX Jul 31, 2021
9a33cc2
CI: Use xvfb-run for wineboot too
falkTX Jul 31, 2021
8333ea5
Revert "CI: Use xvfb-run for wineboot too"
falkTX Jul 31, 2021
b3dd666
CI: Fix macOS package path
falkTX Aug 2, 2021
8820482
Begin ubuntu-20.04 automated deb packaging
falkTX Aug 2, 2021
da28e12
Fix syntax error
falkTX Aug 2, 2021
50e0b9e
Another syntax fix
falkTX Aug 2, 2021
721e502
Build deb packages
falkTX Aug 2, 2021
5ff97c8
Fix path to deb packages
falkTX Aug 2, 2021
ef2af68
Fix deb path
falkTX Aug 2, 2021
c742b43
Build netsource tool when celt or opus are available
falkTX Aug 10, 2021
1ab3445
macOS: Pass JackMachSemaphore send right via mach_msg IPC (#788)
p--b Aug 14, 2021
596b140
Update JackNetUnixSocket.cpp
ihsinme Sep 27, 2021
0727bbc
ALSA: convert properly S24_LE
camille-sound4 Oct 1, 2021
b3175e7
OpenSL ES driver. Changing the queue processing strategy.
PavelAtr Nov 27, 2021
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
316 changes: 316 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,316 @@
name: build

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
env:
DEBIAN_FRONTEND: noninteractive
HOMEBREW_NO_AUTO_UPDATE: 1
PAWPAW_VERSION: 8c69660ab10b75cd7a488f41386dbcb4c8802c5a

jobs:
# macOS native intel build
macos:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/PawPawBuilds/builds
~/PawPawBuilds/downloads
~/PawPawBuilds/targets
key: macos
- name: Set up dependencies
run: |
brew install cmake jq meson
- name: Bootstrap macOS intel
shell: bash
run: |
if [ ! -d PawPaw ]; then
git clone https://github.com/DISTRHO/PawPaw.git
git -C PawPaw checkout ${PAWPAW_VERSION}
fi
./PawPaw/bootstrap-jack2.sh macos && ./PawPaw/.cleanup.sh macos
- name: Build jack2
shell: bash
run: |
pushd PawPaw && source local.env macos && popd
python ./waf configure --platform=darwin --prefix=/usr/local
python ./waf build -j $(sysctl -n hw.logicalcpu)
python ./waf install --destdir=$(pwd)/destdir
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Generate macOS package
shell: bash
run: |
./macosx/generate-pkg.sh $(pwd)/destdir/usr/local ${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
- uses: actions/upload-artifact@v2
with:
name: jack2-macOS-intel-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
path: macosx/jack2-osx-*.pkg

# macOS native universal build
macos_universal:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/PawPawBuilds/builds
~/PawPawBuilds/downloads
~/PawPawBuilds/targets
key: macos-universal
- name: Set up dependencies
run: |
brew install cmake jq meson
- name: Fix up Xcode
run: |
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
sudo xcode-select -s /Applications/Xcode_12.3.app
- name: Bootstrap macOS universal
shell: bash
run: |
if [ ! -d PawPaw ]; then
git clone https://github.com/DISTRHO/PawPaw.git
git -C PawPaw checkout ${PAWPAW_VERSION}
fi
./PawPaw/bootstrap-jack2.sh macos-universal && ./PawPaw/.cleanup.sh macos-universal
- name: Build jack2
shell: bash
run: |
pushd PawPaw && source local.env macos-universal && popd
python ./waf configure --platform=darwin --prefix=/usr/local
python ./waf build -j $(sysctl -n hw.logicalcpu)
python ./waf install --destdir=$(pwd)/destdir
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Generate macOS package
shell: bash
run: |
./macosx/generate-pkg.sh $(pwd)/destdir/usr/local ${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
- uses: actions/upload-artifact@v2
with:
name: jack2-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
path: macosx/jack2-osx-*.pkg

# linux with win32 cross-compilation
win32:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/PawPawBuilds/builds
~/PawPawBuilds/debs
~/PawPawBuilds/downloads
~/PawPawBuilds/targets
key: win32
- name: Restore debian packages cache
run: |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
fi
- name: Set up dependencies
run: |
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo dpkg --add-architecture i386
sudo apt-add-repository -y 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt-get install -y autopoint build-essential curl cmake jq llvm mingw-w64 qttools5-dev-tools winehq-stable xvfb \
binutils-mingw-w64-i686 g++-mingw-w64-i686
- name: Cache debian packages
run: |
mkdir -p ~/PawPawBuilds/debs && \
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
- name: Bootstrap win32 cross-compiled
shell: bash
run: |
if [ ! -d PawPaw ]; then
git clone https://github.com/DISTRHO/PawPaw.git
git -C PawPaw checkout ${PAWPAW_VERSION}
fi
./PawPaw/bootstrap-jack2.sh win32 && ./PawPaw/.cleanup.sh win32
- name: Build jack2
shell: bash
run: |
pushd PawPaw && source local.env win32 && popd
./waf configure --platform=win32 --prefix=$(pwd)/destdir --static
./waf build -j $(nproc)
./waf install
- name: Generate MSVC lib files
shell: bash
run: |
pushd $(pwd)/destdir/lib
llvm-dlltool -m i386 -D libjack.dll -d libjack.def -l libjack.lib
llvm-dlltool -m i386 -D libjacknet.dll -d libjacknet.def -l libjacknet.lib
llvm-dlltool -m i386 -D libjackserver.dll -d libjackserver.def -l libjackserver.lib
popd
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Generate Windows installer
shell: bash
run: |
# Setup wine
export WINEPREFIX=$(pwd)/innosetup
wineboot -u
# Download and install innosetup
curl -L https://jrsoftware.org/download.php/is.exe?site=2 -o is.exe
xvfb-run wine is.exe /allusers /dir=C:\\InnoSeup /nocancel /norestart /verysilent
# create installer
ln -sf $(pwd)/destdir windows/inno/win32
pushd windows/inno
echo "#define VERSION \"${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}\"" > version.iss
xvfb-run wine ${WINEPREFIX}/drive_c/InnoSeup/ISCC.exe win32-mini.iss
popd
- uses: actions/upload-artifact@v2
with:
name: jack2-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
path: windows/inno/jack2-*.exe

# linux with win64 cross-compilation
win64:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/PawPawBuilds/builds
~/PawPawBuilds/debs
~/PawPawBuilds/downloads
~/PawPawBuilds/targets
key: win64
- name: Restore debian packages cache
run: |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
fi
- name: Set up dependencies
run: |
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo dpkg --add-architecture i386
sudo apt-add-repository -y 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt-get install -y autopoint build-essential curl cmake jq llvm mingw-w64 qttools5-dev-tools winehq-stable xvfb \
binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64
- name: Cache debian packages
run: |
mkdir -p ~/PawPawBuilds/debs && \
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
- name: Bootstrap win64 cross-compiled
shell: bash
run: |
if [ ! -d PawPaw ]; then
git clone https://github.com/DISTRHO/PawPaw.git
git -C PawPaw checkout ${PAWPAW_VERSION}
fi
./PawPaw/bootstrap-jack2.sh win64 && ./PawPaw/.cleanup.sh win64
- name: Build jack2
shell: bash
run: |
pushd PawPaw && source local.env win64 && popd
export PATH+=":/usr/i686-w64-mingw32/bin"
export LDFLAGS+="-L~/PawPawBuilds/targets/win64/lib32"
./waf configure --platform=win32 --prefix=$(pwd)/destdir --static --mixed
./waf build -j $(nproc)
./waf install
- name: Generate MSVC lib files
shell: bash
run: |
# 32bit
pushd $(pwd)/destdir/lib32
llvm-dlltool -m i386 -D libjack.dll -d libjack.def -l libjack.lib
popd
# 64bit
pushd $(pwd)/destdir/lib
llvm-dlltool -m i386:x86-64 -D libjack64.dll -d libjack64.def -l libjack64.lib
llvm-dlltool -m i386:x86-64 -D libjacknet64.dll -d libjacknet64.def -l libjacknet64.lib
llvm-dlltool -m i386:x86-64 -D libjackserver64.dll -d libjackserver64.def -l libjackserver64.lib
popd
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Generate Windows installer
shell: bash
run: |
# Setup wine
export WINEPREFIX=$(pwd)/innosetup
wineboot -u
# Download and install innosetup
curl -L https://jrsoftware.org/download.php/is.exe?site=2 -o is.exe
xvfb-run wine64 is.exe /allusers /dir=C:\\InnoSeup /nocancel /norestart /verysilent
# create installer
ln -sf $(pwd)/destdir windows/inno/win64
pushd windows/inno
echo "#define VERSION \"${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}\"" > version.iss
xvfb-run wine64 ${WINEPREFIX}/drive_c/InnoSeup/ISCC.exe win64-mini.iss
popd
- uses: actions/upload-artifact@v2
with:
name: jack2-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
path: windows/inno/jack2-*.exe

# ubuntu-20.04
ubuntu_20_04:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/debs
key: ubuntu-20.04
- name: Restore debian packages cache
run: |
if [ -d ~/debs ] && [ "$(ls ~/debs | wc -l)" -ne 0 ]; then \
sudo cp ~/debs/*.deb /var/cache/apt/archives/; \
fi
- name: Set up dependencies
run: |
sudo add-apt-repository -y ppa:ubuntustudio-ppa/backports
sudo sed -i "s/# deb-src/deb-src/" /etc/apt/sources.list /etc/apt/sources.list.d/*.list
sudo apt-get update -qq
sudo apt-get build-dep jackd2
sudo apt-get install devscripts
- name: Cache debian packages
run: |
mkdir -p ~/debs && \
sudo mv /var/cache/apt/archives/*.deb ~/debs/
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Build jack2 packages
shell: bash
run: |
apt-get source -d jackd2
tar xf *.debian.tar.xz
rm -rf debian/source
dch -M -b -v "$(cat wscript | awk 'sub("VERSION=","")' | tr -d "'")~$(date +"%Y%m%d")git${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}" -D focal "automated build"
debuild -rfakeroot --no-lintian || true
- uses: actions/upload-artifact@v2
with:
name: jack2-ubuntu-20.04-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
path: ~/work/jack2/*.deb
23 changes: 14 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
build/
man/*.1
.lock*
.stamp_*
.DS_Store
__pycache__
*.dll
*.pyc
*.pkg
android/.server/
android/.client/
codeBlocks
/android/.server/
/android/.client/
/build/
/man/*.1

# common release files
/destdir/

# macos release files
macos/package.xml
macos/package-welcome.txt
/macos/package.xml
/macos/package-welcome.txt

# windows release files
windows/inno/version.iss
windows/inno/win32
windows/inno/win64
/innosetup/
/is.exe
/windows/inno/version.iss
/windows/inno/win32
/windows/inno/win64
1 change: 1 addition & 0 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Nedko Arnaudov
Olaf Hering
Olivier Humbert
Paul Davis
Peter Bridgman
Peter L Jones
Pieter Palmers
Ricardo Crudo
Expand Down
6 changes: 5 additions & 1 deletion ChangeLog.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
ChangeLog
#########

* 1.9.20 (2021-10-15)

* WIP
* Fix incomplete ASIO support on Windows

* 1.9.19 (2021-07-15)

* WIP (note to write asking CI help)
* Add jack_position_t::tick_double, and flags around it
* Add zalsa "-w" argument to wait for soundcard to be available
* Bump internal protocol version to 9 (due to struct alignment)
Expand Down
1 change: 0 additions & 1 deletion android/JackOpenSLESDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include <fcntl.h>
#include <math.h>

#include <android/log.h>
#include "opensl_io.h"

#define JACK_OPENSLES_DEFAULT_SAMPLERATE 48000
Expand Down
Loading