Skip to content

Commit 4f14337

Browse files
committed
merge opus 1.6.0
2 parents fb521b5 + 2785f8d commit 4f14337

260 files changed

Lines changed: 17282 additions & 3669 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Autotools-cross-MIPS
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
7+
AutoMakeBuild:
8+
name: AutoMake/${{ matrix.config.name }}
9+
runs-on: ${{ matrix.config.os }}
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
config:
14+
- {
15+
name: "MIPS32/GCC",
16+
os: ubuntu-latest,
17+
vcpu: 24Kf,
18+
toolchain-triple: mipsel-unknown-linux-musl,
19+
buildconfig: ,
20+
cflags: -mips32 -mtune=24kf,
21+
}
22+
- {
23+
name: "MIPS32/GCC/Fixed",
24+
os: ubuntu-latest,
25+
vcpu: 24Kc,
26+
toolchain-triple: mipsel-unknown-linux-muslsf,
27+
buildconfig: --enable-fixed-point,
28+
cflags: -mips32 -mtune=24kc,
29+
}
30+
- {
31+
name: "MIPS32/GCC/Fixed/DSP",
32+
os: ubuntu-latest,
33+
vcpu: 24KEc,
34+
toolchain-triple: mipsel-unknown-linux-muslsf,
35+
buildconfig: --enable-fixed-point,
36+
cflags: -mips32r2 -mdsp -mtune=24kec,
37+
}
38+
- {
39+
name: "MIPS64/GCC",
40+
os: ubuntu-latest,
41+
vcpu: MIPS64R2-generic,
42+
toolchain-triple: mips64el-unknown-linux-musl,
43+
buildconfig: ,
44+
cflags: -mips64,
45+
}
46+
- {
47+
name: "MIPS64/GCC/Fixed",
48+
os: ubuntu-latest,
49+
vcpu: MIPS64R2-generic,
50+
toolchain-triple: mips64el-unknown-linux-musl,
51+
buildconfig: --enable-fixed-point,
52+
cflags: -mips64,
53+
}
54+
- {
55+
name: "MIPS64/GCC/Fixed/DSP",
56+
os: ubuntu-latest,
57+
vcpu: mips64dspr2,
58+
toolchain-triple: mips64el-unknown-linux-musl,
59+
buildconfig: --enable-fixed-point,
60+
cflags: -mips64r2 -mdsp,
61+
}
62+
steps:
63+
- uses: actions/checkout@v3
64+
- name: Install QEMU
65+
run: sudo apt-get update && sudo apt-get install -y qemu-user
66+
- name: Install prebuilt toolchain
67+
run: wget https://github.com/cross-tools/musl-cross/releases/download/20250815/${{ matrix.config.toolchain-triple }}.tar.xz -O toolchain.tar.xz && sudo tar -C /opt/ -xf toolchain.tar.xz
68+
- name: Autogen
69+
run: ./autogen.sh
70+
- name: Configure
71+
run: CC=/opt/${{ matrix.config.toolchain-triple }}/bin/${{ matrix.config.toolchain-triple }}-gcc CFLAGS="${{ matrix.config.cflags }} -g -O2 -fvisibility=hidden -D_FORTIFY_SOURCE=2 -W -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes" ./configure --disable-shared --enable-assertions --enable-custom-modes --enable-check-asm --host=${{ matrix.config.toolchain-triple }} ${{ matrix.config.buildconfig }}
72+
- name: Build
73+
run: make -j 2
74+
- name: Test
75+
run: QEMU_LD_PREFIX=/opt/${{ matrix.config.toolchain-triple }}/${{ matrix.config.toolchain-triple }}/sysroot/ QEMU_CPU=${{ matrix.config.vcpu }} make check -j 2

.github/workflows/cmake.yml

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ name: CMake
22

33
on: [push, pull_request]
44

5+
env:
6+
NDK_VERSION: 27.3.13750724
7+
58
jobs:
69
CMakeVersionTest:
710
name: Test build with CMake 3.16.0
8-
runs-on: ubuntu-20.04
11+
runs-on: ubuntu-22.04
912
steps:
1013
- uses: actions/checkout@v3
1114
with:
@@ -18,12 +21,14 @@ jobs:
1821
chmod +x cmakeinstall.sh
1922
sudo ./cmakeinstall.sh --prefix=/usr/local --exclude-subdir
2023
rm cmakeinstall.sh
21-
sudo apt-get install libidn11
2224
- name: Create Work Dir
2325
run: mkdir build
2426
- name: Configure
2527
working-directory: ./build
26-
run: cmake .. -DOPUS_BUILD_PROGRAMS=ON -DBUILD_TESTING=ON
28+
run: |
29+
which cmake
30+
cmake --version
31+
cmake .. -DOPUS_BUILD_PROGRAMS=ON -DBUILD_TESTING=ON
2732
- name: Build
2833
working-directory: ./build
2934
run: make -j 2 -s
@@ -44,6 +49,8 @@ jobs:
4449
run: sudo apt-get install -y mingw-w64
4550
- name: Create Work Dir
4651
run: mkdir build
52+
- name: CMake Version
53+
run: cmake --version
4754
- name: Configure
4855
working-directory: ./build
4956
run: cmake .. -DOPUS_BUILD_PROGRAMS=ON -DBUILD_TESTING=ON -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc
@@ -62,26 +69,26 @@ jobs:
6269
name: "Android/So/ARMv8/Release",
6370
os: ubuntu-latest,
6471
config: Release,
65-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DBUILD_SHARED_LIBS=ON"
72+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DBUILD_SHARED_LIBS=ON"
6673
}
6774
# TODO: Android ARMv7
6875
# - {
6976
# name: "Android/So/ARMv7/Release",
7077
# os: ubuntu-latest,
7178
# config: Release,
72-
# args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DBUILD_SHARED_LIBS=ON"
79+
# args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DBUILD_SHARED_LIBS=ON"
7380
# }
7481
- {
7582
name: "Android/So/X86/Release",
7683
os: ubuntu-latest,
7784
config: Release,
78-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86 -DBUILD_SHARED_LIBS=ON"
85+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86 -DBUILD_SHARED_LIBS=ON"
7986
}
8087
- {
8188
name: "Android/So/X64/Release",
8289
os: ubuntu-latest,
8390
config: Release,
84-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64 -DBUILD_SHARED_LIBS=ON"
91+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64 -DBUILD_SHARED_LIBS=ON"
8592
}
8693
- {
8794
name: "Windows/Dll/X86/Release",
@@ -174,26 +181,26 @@ jobs:
174181
name: "Android/Lib/ARMv8/Release",
175182
os: ubuntu-latest,
176183
config: Release,
177-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a"
184+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a"
178185
}
179186
# TODO: Android ARMv7
180187
# - {
181188
# name: "Android/Lib/ARMv7/Release",
182189
# os: ubuntu-latest,
183190
# config: Release,
184-
# args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a"
191+
# args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a"
185192
# }
186193
- {
187194
name: "Android/Lib/X86/Release",
188195
os: ubuntu-latest,
189196
config: Release,
190-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86"
197+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86"
191198
}
192199
- {
193200
name: "Android/Lib/X64/Release",
194201
os: ubuntu-latest,
195202
config: Release,
196-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64"
203+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64"
197204
}
198205
- {
199206
name: "CustomModes/Linux/Lib/X64/Release",
@@ -238,6 +245,8 @@ jobs:
238245
run: ./autogen.sh
239246
- name: Create Work Dir
240247
run: mkdir build
248+
- name: CMake Version
249+
run: cmake --version
241250
- name: Configure
242251
working-directory: ./build
243252
run: cmake .. ${{ matrix.config.args }} -DCMAKE_BUILD_TYPE=${{ matrix.config.config }} -DOPUS_BUILD_PROGRAMS=ON -DBUILD_TESTING=ON

.github/workflows/dred.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ name: DRED
33

44
on: [push, pull_request]
55

6+
env:
7+
NDK_VERSION: 27.3.13750724
8+
69
jobs:
710
CMakeBuild:
811
name: CMake/${{ matrix.config.name }}
@@ -33,13 +36,13 @@ jobs:
3336
name: "Android/Lib/X64/Release",
3437
os: ubuntu-latest,
3538
config: Release,
36-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64"
39+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64"
3740
}
3841
- {
3942
name: "Android/Lib/ARMv8/Release",
4043
os: ubuntu-latest,
4144
config: Release,
42-
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a"
45+
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/${NDK_VERSION}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a"
4346
}
4447
- {
4548
name: "MacOSX/Lib/X64/Release",

.github/workflows/makefile.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Makefile
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
7+
MakefileBuild:
8+
name: Makefile/${{ matrix.config.name }}
9+
runs-on: ${{ matrix.config.os }}
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
config:
14+
- {
15+
name: "Linux/GCC",
16+
os: ubuntu-latest,
17+
compiler: gcc,
18+
}
19+
steps:
20+
- uses: actions/checkout@v3
21+
- name: Build
22+
run: make -f Makefile.unix -j 2
23+
- name: Test
24+
run: make -f Makefile.unix check -j 2
25+
- name: Clean
26+
run: make -f Makefile.unix clean

.github/workflows/repository.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ jobs:
1212
fetch-depth: 0
1313
- name: Check Whitespaces
1414
run: |
15-
git diff-tree --check origin/opus-ng HEAD
15+
git diff-tree --check origin/main HEAD

.gitlab-ci.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,15 @@ meson arm64:
120120
variables:
121121
# arm64 build has a compiler warning still, so let's not use --werror for now
122122
MESON_EXTRA_ARGS: '-Dwerror=false'
123+
124+
makefile:
125+
stage: build
126+
image: 'gcc'
127+
before_script:
128+
- apt-get update &&
129+
apt-get install -y zip doxygen git make wget
130+
- !reference [.snippets, git_prep]
131+
script:
132+
- make -f Makefile.unix -j8
133+
- make -f Makefile.unix check -j8
134+
- make -f Makefile.unix clean

CMakeLists.txt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ include(GNUInstallDirs)
1414
include(CMakeDependentOption)
1515
include(FeatureSummary)
1616

17+
# Detect clang-cl
18+
set(MSVC_CLANG_CL false BOOL)
19+
if (MSVC)
20+
if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
21+
set(MSVC_CLANG_CL true BOOL)
22+
endif()
23+
endif()
24+
1725
set(OPUS_BUILD_SHARED_LIBRARY_HELP_STR "build shared library.")
1826
option(OPUS_BUILD_SHARED_LIBRARY ${OPUS_BUILD_SHARED_LIBRARY_HELP_STR} OFF)
1927
if(OPUS_BUILD_SHARED_LIBRARY OR BUILD_SHARED_LIBS OR OPUS_BUILD_FRAMEWORK)
@@ -484,20 +492,20 @@ if(NOT OPUS_DISABLE_INTRINSICS)
484492
add_sources_group(opus lpcnet ${dnn_sources_sse4_1})
485493
endif()
486494
target_compile_definitions(opus PRIVATE OPUS_X86_MAY_HAVE_SSE4_1)
487-
if(NOT MSVC)
495+
if(NOT MSVC OR MSVC_CLANG_CL)
488496
set_source_files_properties(${celt_sources_sse4_1} ${silk_sources_sse4_1} ${dnn_sources_sse4_1} PROPERTIES COMPILE_FLAGS -msse4.1)
489497
endif()
490498

491499
if(OPUS_FIXED_POINT)
492500
add_sources_group(opus silk ${silk_sources_fixed_sse4_1})
493-
if(NOT MSVC)
501+
if(NOT MSVC OR MSVC_CLANG_CL)
494502
set_source_files_properties(${silk_sources_fixed_sse4_1} PROPERTIES COMPILE_FLAGS -msse4.1)
495503
endif()
496504
endif()
497505
endif()
498506
if(OPUS_X86_PRESUME_SSE4_1)
499507
target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_SSE4_1)
500-
if(NOT MSVC)
508+
if(NOT MSVC OR MSVC_CLANG_CL)
501509
target_compile_options(opus PRIVATE -msse4.1)
502510
endif()
503511
endif()
@@ -555,6 +563,7 @@ if(NOT OPUS_DISABLE_INTRINSICS)
555563
target_compile_definitions(opus PRIVATE OPUS_HAVE_RTCD)
556564
add_sources_group(opus celt ${celt_sources_arm_rtcd})
557565
add_sources_group(opus silk ${silk_sources_arm_rtcd})
566+
add_sources_group(opus lpcnet ${dnn_sources_arm_rtcd})
558567
else()
559568
message(ERROR "Runtime cpu capability detection needed for MAY_HAVE_NEON")
560569
endif()
@@ -590,7 +599,8 @@ endif()
590599
target_compile_definitions(opus
591600
PRIVATE
592601
$<$<BOOL:${HAVE_LRINT}>:HAVE_LRINT>
593-
$<$<BOOL:${HAVE_LRINTF}>:HAVE_LRINTF>)
602+
$<$<BOOL:${HAVE_LRINTF}>:HAVE_LRINTF>
603+
$<$<BOOL:${HAVE_ELF_AUX_INFO}>:HAVE_ELF_AUX_INFO>)
594604

595605
if(OPUS_BUILD_FRAMEWORK)
596606
set_target_properties(opus PROPERTIES

Makefile.am

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ noinst_HEADERS = $(OPUS_HEAD) $(SILK_HEAD) $(CELT_HEAD) $(LPCNET_HEAD)
156156
if EXTRA_PROGRAMS
157157
noinst_PROGRAMS = celt/tests/test_unit_cwrs32 \
158158
celt/tests/test_unit_dft \
159+
celt/tests/test_unit_mini_kfft \
159160
celt/tests/test_unit_entropy \
160161
celt/tests/test_unit_laplace \
161162
celt/tests/test_unit_mathops \
@@ -177,6 +178,7 @@ noinst_PROGRAMS = celt/tests/test_unit_cwrs32 \
177178

178179
TESTS = celt/tests/test_unit_cwrs32 \
179180
celt/tests/test_unit_dft \
181+
celt/tests/test_unit_mini_kfft \
180182
celt/tests/test_unit_entropy \
181183
celt/tests/test_unit_laplace \
182184
celt/tests/test_unit_mathops \
@@ -260,6 +262,9 @@ if OPUS_ARM_EXTERNAL_ASM
260262
celt_tests_test_unit_dft_LDADD += libarmasm.la
261263
endif
262264

265+
celt_tests_test_unit_mini_kfft_SOURCES = celt/tests/test_unit_mini_kfft.c
266+
celt_tests_test_unit_mini_kfft_LDADD = $(LIBM)
267+
263268
celt_tests_test_unit_entropy_SOURCES = celt/tests/test_unit_entropy.c
264269
celt_tests_test_unit_entropy_LDADD = $(LIBM)
265270

@@ -302,10 +307,13 @@ endif
302307

303308
if EXTRA_PROGRAMS
304309
if ENABLE_DEEP_PLC
305-
noinst_PROGRAMS += fargan_demo dump_data dump_weights_blob
310+
noinst_PROGRAMS += fargan_demo dump_data dump_weights_blob dred_compare
306311
fargan_demo_SOURCES = dnn/fargan_demo.c
307312
fargan_demo_LDADD = $(LPCNET_OBJ) $(CELT_OBJ) $(LIBM)
308313

314+
dred_compare_SOURCES = dnn/dred_compare.c
315+
dred_compare_LDADD = $(LPCNET_OBJ) $(CELT_OBJ) $(LIBM)
316+
309317
dump_data_SOURCES = dnn/dump_data.c
310318
dump_data_LDADD = $(LPCNET_OBJ) $(CELT_OBJ) $(LIBM)
311319

@@ -323,13 +331,24 @@ lossgen_demo_SOURCES = dnn/lossgen_demo.c $(LOSSGEN_SOURCES)
323331
lossgen_demo_LDADD = $(LIBM)
324332
endif
325333

334+
if ENABLE_OSCE
335+
noinst_PROGRAMS += bwe_demo
336+
bwe_demo_SOURCES = dnn/bwe_demo.c
337+
bwe_demo_LDADD = $(LPCNET_OBJ) $(CELT_OBJ) $(LIBM)
338+
endif
339+
340+
if ENABLE_QEXT
341+
noinst_PROGRAMS += qext_compare
342+
qext_compare_SOURCES = src/qext_compare.c
343+
qext_compare_LDADD = libopus.la $(LIBM)
344+
endif
345+
326346
endif
327347

328348

329349
EXTRA_DIST = opus.pc.in \
330350
opus-uninstalled.pc.in \
331351
opus.m4 \
332-
Makefile.mips \
333352
Makefile.unix \
334353
CMakeLists.txt \
335354
cmake/CFeatureCheck.cmake \
@@ -361,6 +380,8 @@ EXTRA_DIST = opus.pc.in \
361380
tests/meson.build \
362381
doc/meson.build \
363382
tests/run_vectors.sh \
383+
celt/mini_kfft.c \
384+
celt/arm/meson.build \
364385
celt/arm/arm2gnu.pl \
365386
celt/arm/celt_pitch_xcorr_arm.s
366387

0 commit comments

Comments
 (0)