Skip to content

Commit e320601

Browse files
committed
Add Deep PLC and DRED files for OPUS
1 parent 5097306 commit e320601

File tree

1 file changed

+120
-9
lines changed

1 file changed

+120
-9
lines changed

Jamulus.pro

Lines changed: 120 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,16 @@ contains(CONFIG, "headless") {
5050
QT += multimedia
5151
}
5252

53+
# DRED is a superset of Deep PLC and requires it
54+
contains(CONFIG, "opus_dred") {
55+
message("Building OPUS with Deep Redundancy.")
56+
CONFIG += "opus_deep_plc"
57+
}
58+
59+
contains(CONFIG, "opus_deep_plc") {
60+
message("Building OPUS with Deep PLC.")
61+
}
62+
5363
# Do not set LRELEASE_DIR explicitly when using embed_translations.
5464
# It doesn't work with multiple targets or architectures.
5565
TRANSLATIONS = src/translation/translation_de_DE.ts \
@@ -75,6 +85,10 @@ INCLUDEPATH_OPUS = libs/opus/include \
7585
libs/opus/silk/fixed \
7686
libs/opus
7787

88+
contains(CONFIG, "opus_deep_plc") {
89+
INCLUDEPATH_OPUS += libs/opus/dnn
90+
}
91+
7892
# As JACK is used in multiple OS, we declare it globally
7993
HEADERS_JACK = src/sound/jack/sound.h
8094
SOURCES_JACK = src/sound/jack/sound.cpp
@@ -490,7 +504,40 @@ HEADERS_OPUS_X86 = libs/opus/celt/x86/celt_lpc_sse.h \
490504
libs/opus/celt/x86/pitch_sse.h \
491505
libs/opus/celt/x86/vq_sse.h \
492506
libs/opus/celt/x86/x86cpu.h \
493-
$$files(libs/opus/silk/x86/*.h)
507+
libs/opus/silk/x86/SigProc_FIX_sse.h \
508+
libs/opus/silk/x86/main_sse.h
509+
510+
HEADERS_OPUS_DEEP_PLC = \
511+
libs/opus/dnn/lpcnet.h \
512+
libs/opus/dnn/burg.h \
513+
libs/opus/dnn/common.h \
514+
libs/opus/dnn/freq.h \
515+
libs/opus/dnn/fargan.h \
516+
libs/opus/dnn/fargan_data.h \
517+
libs/opus/dnn/lpcnet_private.h \
518+
libs/opus/dnn/nnet.h \
519+
libs/opus/dnn/plc_data.h \
520+
libs/opus/dnn/vec.h \
521+
libs/opus/dnn/vec_avx.h \
522+
libs/opus/dnn/vec_neon.h \
523+
libs/opus/dnn/pitchdnn.h \
524+
libs/opus/dnn/pitchdnn_data.h \
525+
libs/opus/dnn/x86/dnn_x86.h \
526+
libs/opus/dnn/nnet_arch.h \
527+
libs/opus/dnn/arm/dnn_arm.h
528+
529+
HEADERS_OPUS_DRED = \
530+
libs/opus/dnn/dred_coding.h \
531+
libs/opus/dnn/dred_config.h \
532+
libs/opus/dnn/dred_decoder.h \
533+
libs/opus/dnn/dred_encoder.h \
534+
libs/opus/dnn/dred_rdovae.h \
535+
libs/opus/dnn/dred_rdovae_constants.h \
536+
libs/opus/dnn/dred_rdovae_enc.h \
537+
libs/opus/dnn/dred_rdovae_enc_data.h \
538+
libs/opus/dnn/dred_rdovae_dec.h \
539+
libs/opus/dnn/dred_rdovae_dec_data.h \
540+
libs/opus/dnn/dred_rdovae_stats_data.h
494541

495542
SOURCES += src/plugins/audioreverb.cpp \
496543
src/buffer.cpp \
@@ -674,29 +721,93 @@ SOURCES_OPUS_X86_SSE = libs/opus/celt/x86/x86cpu.c \
674721
libs/opus/celt/x86/x86_celt_map.c \
675722
libs/opus/celt/x86/pitch_sse.c
676723
SOURCES_OPUS_X86_SSE2 = libs/opus/celt/x86/pitch_sse2.c \
677-
libs/opus/celt/x86/vq_sse2.c
724+
libs/opus/celt/x86/vq_sse2.c
678725
SOURCES_OPUS_X86_SSE4 = libs/opus/celt/x86/celt_lpc_sse4_1.c \
679-
libs/opus/celt/x86/pitch_sse4_1.c \
680-
libs/opus/silk/x86/NSQ_sse4_1.c \
681-
libs/opus/silk/x86/NSQ_del_dec_sse4_1.c \
682-
libs/opus/silk/x86/x86_silk_map.c \
683-
libs/opus/silk/x86/VAD_sse4_1.c \
684-
libs/opus/silk/x86/VQ_WMat_EC_sse4_1.c
726+
libs/opus/celt/x86/pitch_sse4_1.c \
727+
libs/opus/silk/x86/NSQ_sse4_1.c \
728+
libs/opus/silk/x86/NSQ_del_dec_sse4_1.c \
729+
libs/opus/silk/x86/x86_silk_map.c \
730+
libs/opus/silk/x86/VAD_sse4_1.c \
731+
libs/opus/silk/x86/VQ_WMat_EC_sse4_1.c
732+
733+
SOURCES_OPUS_DEEP_PLC = \
734+
libs/opus/dnn/burg.c \
735+
libs/opus/dnn/freq.c \
736+
libs/opus/dnn/fargan.c \
737+
libs/opus/dnn/fargan_data.c \
738+
libs/opus/dnn/lpcnet_enc.c \
739+
libs/opus/dnn/lpcnet_plc.c \
740+
libs/opus/dnn/lpcnet_tables.c \
741+
libs/opus/dnn/nnet.c \
742+
libs/opus/dnn/nnet_default.c \
743+
libs/opus/dnn/plc_data.c \
744+
libs/opus/dnn/parse_lpcnet_weights.c \
745+
libs/opus/dnn/pitchdnn.c \
746+
libs/opus/dnn/pitchdnn_data.c
747+
748+
SOURCES_OPUS_DRED = \
749+
libs/opus/dnn/dred_rdovae_enc.c \
750+
libs/opus/dnn/dred_rdovae_enc_data.c \
751+
libs/opus/dnn/dred_rdovae_dec.c \
752+
libs/opus/dnn/dred_rdovae_dec_data.c \
753+
libs/opus/dnn/dred_rdovae_stats_data.c \
754+
libs/opus/dnn/dred_encoder.c \
755+
libs/opus/dnn/dred_coding.c \
756+
libs/opus/dnn/dred_decoder.c
757+
758+
SOURCES_OPUS_DNN_X86_RTCD = \
759+
libs/opus/dnn/x86/x86_dnn_map.c
760+
SOURCES_OPUS_DNN_AVX2 = \
761+
libs/opus/dnn/x86/nnet_avx2.c
762+
SOURCES_OPUS_DNN_SSE4_1 = \
763+
libs/opus/dnn/x86/nnet_sse4_1.c
764+
SOURCES_OPUS_DNN_SSE2 = \
765+
libs/opus/dnn/x86/nnet_sse2.c
766+
767+
SOURCES_OPUS_DNN_ARM_RTCD = \
768+
libs/opus/dnn/arm/arm_dnn_map.c
769+
SOURCES_OPUS_DNN_DOTPROD = \
770+
libs/opus/dnn/arm/nnet_dotprod.c
771+
SOURCES_OPUS_DNN_NEON = \
772+
libs/opus/dnn/arm/nnet_neon.c
773+
774+
contains(CONFIG, "opus_deep_plc") {
775+
HEADERS_OPUS += $$HEADERS_OPUS_DEEP_PLC
776+
SOURCES_OPUS += $$SOURCES_OPUS_DEEP_PLC
777+
SOURCES_OPUS_ARM += $$SOURCES_OPUS_DNN_ARM_RTCD $$SOURCES_OPUS_DNN_DOTPROD $$SOURCES_OPUS_DNN_NEON
778+
SOURCES_OPUS_X86 += $$SOURCES_OPUS_DNN_X86_RTCD
779+
SOURCES_OPUS_X86_SSE2 += $$SOURCES_OPUS_DNN_SSE2
780+
SOURCES_OPUS_X86_SSE4 += $$SOURCES_OPUS_DNN_SSE4_1
781+
#SOURCES_OPUS_X86_AVX2 += $$SOURCES_OPUS_DNN_AVX2
782+
}
783+
784+
contains(CONFIG, "opus_dred") {
785+
HEADERS_OPUS += $$HEADERS_OPUS_DRED
786+
SOURCES_OPUS += $$SOURCES_OPUS_DRED
787+
}
685788

686789
contains(QT_ARCH, armeabi-v7a) | contains(QT_ARCH, arm64-v8a) {
687790
HEADERS_OPUS += $$HEADERS_OPUS_ARM
688791
SOURCES_OPUS_ARCH += $$SOURCES_OPUS_ARM
689792
DEFINES_OPUS += OPUS_ARM_PRESUME_NEON=1 OPUS_ARM_PRESUME_NEON_INTR=1
690-
contains(QT_ARCH, arm64-v8a):DEFINES_OPUS += OPUS_ARM_PRESUME_AARCH64_NEON_INTR
793+
contains(QT_ARCH, arm64-v8a):DEFINES_OPUS += OPUS_ARM_PRESUME_AARCH64_NEON_INTR=1
691794
} else:contains(QT_ARCH, x86) | contains(QT_ARCH, x86_64) {
692795
HEADERS_OPUS += $$HEADERS_OPUS_X86
796+
SOURCES_OPUS += $$SOURCES_OPUS_X86
693797
SOURCES_OPUS_ARCH += $$SOURCES_OPUS_X86_SSE $$SOURCES_OPUS_X86_SSE2 $$SOURCES_OPUS_X86_SSE4
694798
DEFINES_OPUS += OPUS_X86_MAY_HAVE_SSE OPUS_X86_MAY_HAVE_SSE2 OPUS_X86_MAY_HAVE_SSE4_1
695799
# x86_64 implies SSE2
696800
contains(QT_ARCH, x86_64):DEFINES_OPUS += OPUS_X86_PRESUME_SSE=1 OPUS_X86_PRESUME_SSE2=1
697801
DEFINES_OPUS += CPU_INFO_BY_C
698802
}
699803
DEFINES_OPUS += OPUS_BUILD=1 USE_ALLOCA=1 OPUS_HAVE_RTCD=1 HAVE_LRINTF=1 HAVE_LRINT=1
804+
contains(CONFIG, "opus_deep_plc") {
805+
DEFINES_OPUS += ENABLE_DEEP_PLC=1
806+
}
807+
808+
contains(CONFIG, "opus_dred") {
809+
DEFINES_OPUS += ENABLE_DRED=1
810+
}
700811

701812
DISTFILES += ChangeLog \
702813
COMPILING.md \

0 commit comments

Comments
 (0)