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

Add optional RNNoise support to AudioBridge #3185

Merged
merged 21 commits into from
Apr 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
21c1c33
Add optional RNNoise support to AudioBridge
lminiero Mar 17, 2023
1302a29
Aligned with latest changes in master
lminiero May 24, 2023
f52afc3
Use two separate denoisers, when dealing with stereo participants
lminiero May 24, 2023
3c30a17
Fixed denoising artifacts when using mono 8000/16000
lminiero May 24, 2023
a594c53
Fixed broken audio when denoising stereo participants
lminiero May 25, 2023
4060993
Move denoising code to a separate function
lminiero May 26, 2023
ddb216d
Aligned with latest changes
lminiero Jul 13, 2023
c49061d
Aligned with new version of the AudioBridge plugin
lminiero Aug 4, 2023
1feba68
Refactor denoising algorithm
atoppi Nov 16, 2023
8fc4e30
Prefill with zeroes denoised buffers. Define FRAME_SIZE macro. Cast p…
atoppi Nov 16, 2023
ebf2fbe
Tiny styling change in index expression
atoppi Nov 16, 2023
fe0b345
audiobridge: fix boolean setting for the first packet received
atoppi Nov 20, 2023
ec52fbb
audiobrige: use fec only when received packet is expected plus one
atoppi Nov 20, 2023
23386f4
Use speex resampler for upsampling and downsampling
atoppi Nov 22, 2023
812cc05
Fixed denoise not tweakable via configure requests
lminiero Nov 22, 2023
36e54a6
Do not destroy resamplers when hanging up
atoppi Nov 22, 2023
2ca13b5
Create resamplers just once. Add missing macros.
atoppi Nov 22, 2023
975502c
Create resamplers later when handling changeroom
atoppi Nov 22, 2023
5189caf
Initialize denoiser stuff only in participant thread. Use quality=8 f…
atoppi Nov 23, 2023
06d9818
Aligned to latest changes in AudioBridge (suspend/resume)
lminiero Dec 5, 2023
096e945
Aligned to latest changes, and local speexdsp dependency
lminiero Apr 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions conf/janus.plugin.audiobridge.jcfg.sample
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
# audio_level_average = 25 (average value of audio level, 127=muted, 0='too loud', default=25)
# default_expectedloss = percent of packets we expect participants may miss, to help with FEC (default=0, max=20; automatically used for forwarders too)
# default_bitrate = default bitrate in bps to use for the all participants (default=0, which means libopus decides; automatically used for forwarders too)
# denoise = true|false (whether denoising via RNNoise should be performed for each participant by default)
# record = true|false (whether this room should be recorded, default=false)
# record_file = "/path/to/recording.wav" (where to save the recording)
# record_dir = "/path/to/" (path to save the recording to, makes record_file a relative path if provided)
Expand Down
10 changes: 10 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -819,6 +819,16 @@ PKG_CHECK_MODULES([OGG],
AC_SUBST([OGG_CFLAGS])
AC_SUBST([OGG_LIBS])

PKG_CHECK_MODULES([RNNOISE],
[rnnoise],
[
AC_DEFINE(HAVE_RNNOISE)
],
[
])
AC_SUBST([RNNOISE_CFLAGS])
AC_SUBST([RNNOISE_LIBS])

PKG_CHECK_MODULES([LUA],
[lua],
[
Expand Down
11 changes: 6 additions & 5 deletions src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -396,13 +396,14 @@ plugins_libadd = \

if ENABLE_PLUGIN_AUDIOBRIDGE
plugin_LTLIBRARIES += plugins/libjanus_audiobridge.la
plugins_libjanus_audiobridge_la_SOURCES = plugins/janus_audiobridge.c
plugins_libjanus_audiobridge_la_SOURCES = plugins/janus_audiobridge.c \
plugins/audiobridge-deps/jitter.c plugins/audiobridge-deps/arch.h \
plugins/audiobridge-deps/os_support.h plugins/audiobridge-deps/speex/speex_jitter.h \
plugins/audiobridge-deps/jitter.c plugins/audiobridge-deps/resample.c plugins/audiobridge-deps/arch.h \
plugins/audiobridge-deps/os_support.h plugins/audiobridge-deps/speex/speex_jitter.h plugins/audiobridge-deps/speex/speex_resampler.h \
plugins/audiobridge-deps/speex/speexdsp_types.h plugins/audiobridge-deps/speex/speexdsp_config_types.h
plugins_libjanus_audiobridge_la_CFLAGS = $(plugins_cflags) $(OPUS_CFLAGS) $(OGG_CFLAGS) $(LIBSRTP_CFLAGS)
plugins_libjanus_audiobridge_la_LDFLAGS = $(plugins_ldflags) $(OPUS_LDFLAGS) $(OPUS_LIBS) $(OGG_LDFLAGS) $(OGG_LIBS)
plugins_libjanus_audiobridge_la_LIBADD = $(plugins_libadd) $(OPUS_LIBADD) $(OGG_LIBADD)
plugins_libjanus_audiobridge_la_CFLAGS = $(plugins_cflags) $(OPUS_CFLAGS) $(OGG_CFLAGS) $(RNNOISE_CFLAGS) $(LIBSRTP_CFLAGS)
plugins_libjanus_audiobridge_la_LDFLAGS = $(plugins_ldflags) $(OPUS_LDFLAGS) $(OPUS_LIBS) $(OGG_LDFLAGS) $(OGG_LIBS) $(RNNOISE_LDFLAGS) $(RNNOISE_LIBS)
plugins_libjanus_audiobridge_la_LIBADD = $(plugins_libadd) $(OPUS_LIBADD) $(OGG_LIBADD) $(RNNOISE_LIBADD)
conf_DATA += ../conf/janus.plugin.audiobridge.jcfg.sample
EXTRA_DIST += ../conf/janus.plugin.audiobridge.jcfg.sample
endif
Expand Down