@@ -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.
5565TRANSLATIONS = 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
7993HEADERS_JACK = src/sound/jack/sound.h
8094SOURCES_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
495542SOURCES += 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
676723SOURCES_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
678725SOURCES_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_X 86_RTCD
779+ SOURCES_OPUS_X86_SSE2 += $$SOURCES_OPUS_DNN_SSE 2
780+ SOURCES_OPUS_X86_SSE4 += $$SOURCES_OPUS_DNN_SSE 4_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
686789contains (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_X 86
796+ SOURCES_OPUS += $$SOURCES_OPUS_X 86
693797 SOURCES_OPUS_ARCH += $$SOURCES_OPUS_X 86_SSE $$SOURCES_OPUS_X 86_SSE2 $$SOURCES_OPUS_X 86_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}
699803DEFINES_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
701812DISTFILES += ChangeLog \
702813 COMPILING.md \
0 commit comments