Skip to content
This repository has been archived by the owner on Feb 12, 2023. It is now read-only.

Commit

Permalink
refactor(filter_audio): completely remove filter_audio dependency
Browse files Browse the repository at this point in the history
The filter_audio API is not working for qTox/Tox and thus disabled by default via compiler switch. In current qTox UI, it is not configurable, even when this switch is enabled. According to issue #3194 the library is no longer maintained as well. I don't see any reason to keep it in qTox.
  • Loading branch information
antis81 committed Jun 4, 2016
1 parent a77afca commit cc50811
Show file tree
Hide file tree
Showing 12 changed files with 2 additions and 257 deletions.
27 changes: 1 addition & 26 deletions qtox.pro
Expand Up @@ -68,21 +68,12 @@ contains(DISABLE_PLATFORM_EXT, YES) {
DEFINES += QTOX_PLATFORM_EXT
}

contains(DISABLE_FILTER_AUDIO, NO) {
DEFINES += QTOX_FILTER_AUDIO
}

contains(JENKINS,YES) {
INCLUDEPATH += ./libs/include/
} else {
INCLUDEPATH += libs/include
}

contains(DEFINES, QTOX_FILTER_AUDIO) {
HEADERS += src/audio/audiofilterer.h
SOURCES += src/audio/audiofilterer.cpp
}

contains(DEFINES, QTOX_PLATFORM_EXT) {
HEADERS += src/platform/timer.h
SOURCES += src/platform/timer_osx.cpp \
Expand All @@ -103,13 +94,6 @@ win32 {
LIBS += -lqrencode -lsqlcipher -lcrypto
LIBS += -lopengl32 -lole32 -loleaut32 -lvfw32 -lws2_32 -liphlpapi -lgdi32 -lshlwapi -luuid
LIBS += -lstrmiids # For DirectShow
contains(DEFINES, QTOX_FILTER_AUDIO) {
contains(STATICPKG, YES) {
LIBS += -Wl,-Bstatic -lfilteraudio
} else {
LIBS += -lfilteraudio
}
}
} else {
macx {
BUNDLEID = chat.tox.qtox
Expand All @@ -120,7 +104,6 @@ win32 {
LIBS += -framework AVFoundation -framework Foundation -framework CoreMedia -framework ApplicationServices
LIBS += -lqrencode -lsqlcipher
contains(DEFINES, QTOX_PLATFORM_EXT) { LIBS += -framework IOKit -framework CoreFoundation }
contains(DEFINES, QTOX_FILTER_AUDIO) { LIBS += -lfilteraudio }
#Files to be includes into the qTox.app/Contents/Resources folder
#OSX-Migrater.sh part of migrateProfiles() compatabilty code
APP_RESOURCE.files = img/icons/qtox_profile.icns OSX-Migrater.sh
Expand Down Expand Up @@ -167,16 +150,8 @@ win32 {
LIBS += -lX11 -lXss
}

contains(DEFINES, QTOX_FILTER_AUDIO) {
contains(STATICPKG, YES) {
LIBS += -Wl,-Bstatic -lfilteraudio
} else {
LIBS += -lfilteraudio
}
}

contains(JENKINS, YES) {
LIBS = ./libs/lib/libtoxav.a ./libs/lib/libvpx.a ./libs/lib/libopus.a ./libs/lib/libtoxdns.a ./libs/lib/libtoxencryptsave.a ./libs/lib/libtoxcore.a ./libs/lib/libopenal.a ./libs/lib/libsodium.a ./libs/lib/libfilteraudio.a ./libs/lib/libavdevice.a ./libs/lib/libavformat.a ./libs/lib/libavcodec.a ./libs/lib/libavutil.a ./libs/lib/libswscale.a ./libs/lib/libqrencode.a -ldl -lX11 -lXss
LIBS = ./libs/lib/libtoxav.a ./libs/lib/libvpx.a ./libs/lib/libopus.a ./libs/lib/libtoxdns.a ./libs/lib/libtoxencryptsave.a ./libs/lib/libtoxcore.a ./libs/lib/libopenal.a ./libs/lib/libsodium.a ./libs/lib/libavdevice.a ./libs/lib/libavformat.a ./libs/lib/libavcodec.a ./libs/lib/libavutil.a ./libs/lib/libswscale.a ./libs/lib/libqrencode.a -ldl -lX11 -lXss
contains(ENABLE_SYSTRAY_UNITY_BACKEND, YES) {
LIBS += -lgobject-2.0 -lappindicator -lgtk-x11-2.0
}
Expand Down
37 changes: 0 additions & 37 deletions src/audio/audio.cpp
Expand Up @@ -32,10 +32,6 @@

#include <cassert>

#ifdef QTOX_FILTER_AUDIO
#include "audiofilterer.h"
#endif

/**
@internal
Expand Down Expand Up @@ -108,10 +104,6 @@ Audio::Audio()

moveToThread(audioThread);

#ifdef QTOX_FILTER_AUDIO
filterer.startFilter(AUDIO_SAMPLE_RATE);
#endif

connect(&captureTimer, &QTimer::timeout, this, &Audio::doCapture);
captureTimer.setInterval(AUDIO_FRAME_DURATION/2);
captureTimer.setSingleShot(false);
Expand All @@ -128,9 +120,6 @@ Audio::~Audio()
audioThread->wait();
cleanupInput();
cleanupOutput();
#ifdef QTOX_FILTER_AUDIO
filterer.closeFilter();
#endif
delete d;
}

Expand Down Expand Up @@ -580,17 +569,6 @@ void Audio::doCapture()
int16_t buf[AUDIO_FRAME_SAMPLE_COUNT * AUDIO_CHANNELS];
alcCaptureSamples(alInDev, buf, AUDIO_FRAME_SAMPLE_COUNT);

#ifdef QTOX_FILTER_AUDIO
if (Settings::getInstance().getFilterAudio())
{
#ifdef ALC_LOOPBACK_CAPTURE_SAMPLES
// compatibility with older versions of OpenAL
getEchoesToFilter(filterer, AUDIO_FRAME_SAMPLE_COUNT * AUDIO_CHANNELS);
#endif
filterer.filterAudio(buf, AUDIO_FRAME_SAMPLE_COUNT * AUDIO_CHANNELS);
}
#endif

for (quint32 i = 0; i < AUDIO_FRAME_SAMPLE_COUNT * AUDIO_CHANNELS; ++i)
{
// gain amplification with clipping to 16-bit boundaries
Expand Down Expand Up @@ -698,18 +676,3 @@ void Audio::stopLoop()
alSourcei(alMainSource, AL_LOOPING, AL_FALSE);
alSourceStop(alMainSource);
}

#if defined(QTOX_FILTER_AUDIO) && defined(ALC_LOOPBACK_CAPTURE_SAMPLES)
void Audio::getEchoesToFilter(AudioFilterer* filterer, int samples)
{
ALint samples;
alcGetIntegerv(&alOutDev, ALC_LOOPBACK_CAPTURE_SAMPLES, sizeof(samples), &samples);
if (samples >= samples)
{
int16_t buf[samples];
alcCaptureSamplesLoopback(&alOutDev, buf, samples);
filterer->passAudioOutput(buf, samples);
filterer->setEchoDelayMs(5); // This 5ms is configurable I believe
}
}
#endif
10 changes: 1 addition & 9 deletions src/audio/audio.h
Expand Up @@ -42,9 +42,6 @@
#include <AL/alext.h>
#endif

#ifdef QTOX_FILTER_AUDIO
#include "audiofilterer.h"
#endif

// Public default audio settings
static constexpr uint32_t AUDIO_SAMPLE_RATE = 48000; ///< The next best Opus would take is 24k
Expand Down Expand Up @@ -115,9 +112,7 @@ class Audio : public QObject
void playMono16SoundCleanup();
/// Called on the captureTimer events to capture audio
void doCapture();
#if defined(QTOX_FILTER_AUDIO) && defined(ALC_LOOPBACK_CAPTURE_SAMPLES)
void getEchoesToFilter(AudioFilterer* filter, int samples);
#endif


private:
Private* d;
Expand All @@ -137,9 +132,6 @@ class Audio : public QObject
bool outputInitialized;

QList<ALuint> outSources;
#ifdef QTOX_FILTER_AUDIO
AudioFilterer filterer;
#endif
};

#endif // AUDIO_H
69 changes: 0 additions & 69 deletions src/audio/audiofilterer.cpp

This file was deleted.

55 changes: 0 additions & 55 deletions src/audio/audiofilterer.h

This file was deleted.

28 changes: 0 additions & 28 deletions src/core/coreav.cpp
Expand Up @@ -31,10 +31,6 @@
#include <QCoreApplication>
#include <QtConcurrent/QtConcurrentRun>

#ifdef QTOX_FILTER_AUDIO
#include "src/audio/audiofilterer.h"
#endif

IndexedList<ToxFriendCall> CoreAV::calls;
IndexedList<ToxGroupCall> CoreAV::groupCalls;

Expand Down Expand Up @@ -251,30 +247,6 @@ bool CoreAV::sendCallAudio(uint32_t callId, const int16_t *pcm, size_t samples,
return true;
}

#if 0
#ifdef QTOX_FILTER_AUDIO
if (Settings::getInstance().getFilterAudio())
{
if (!call.filterer)
{
call.filterer = new AudioFilterer();
call.filterer->startFilter(AUDIO_SAMPLE_RATE);
}

#ifdef ALC_LOOPBACK_CAPTURE_SAMPLES
// compatibility with older versions of OpenAL
Audio::getInstance().getEchoesToFilter(call.filterer, AUDIO_FRAME_SAMPLE_COUNT * AUDIO_CHANNELS);
#endif
call.filterer->filterAudio(buf, AUDIO_FRAME_SAMPLE_COUNT * AUDIO_CHANNELS);
}
else if (call.filterer)
{
delete call.filterer;
call.filterer = nullptr;
}
#endif
#endif

// TOXAV_ERR_SEND_FRAME_SYNC means toxav failed to lock, retry 5 times in this case
TOXAV_ERR_SEND_FRAME err;
int retries = 0;
Expand Down
4 changes: 0 additions & 4 deletions src/core/coreav.h
Expand Up @@ -27,10 +27,6 @@
#include "src/core/toxcall.h"
#include <tox/toxav.h>

#ifdef QTOX_FILTER_AUDIO
class AudioFilterer;
#endif

class QTimer;
class QThread;
class CoreVideoSource;
Expand Down
4 changes: 0 additions & 4 deletions src/core/toxcall.cpp
Expand Up @@ -7,10 +7,6 @@
#include <QTimer>
#include <QtConcurrent/QtConcurrent>

#ifdef QTOX_FILTER_AUDIO
#include "src/audio/audiofilterer.h"
#endif

using namespace std;

ToxCall::ToxCall(uint32_t CallId)
Expand Down
15 changes: 0 additions & 15 deletions src/persistence/settings.cpp
Expand Up @@ -238,7 +238,6 @@ void Settings::loadGlobal()
outDev = s.value("outDev", "").toString();
audioInGainDecibel = s.value("inGain", 0).toReal();
outVolume = s.value("outVolume", 100).toInt();
filterAudio = s.value("filterAudio", false).toBool();
s.endGroup();

s.beginGroup("Video");
Expand Down Expand Up @@ -469,7 +468,6 @@ void Settings::saveGlobal()
s.setValue("outDev", outDev);
s.setValue("inGain", audioInGainDecibel);
s.setValue("outVolume", outVolume);
s.setValue("filterAudio", filterAudio);
s.endGroup();

s.beginGroup("Video");
Expand Down Expand Up @@ -1414,19 +1412,6 @@ void Settings::setOutVolume(int volume)
outVolume = volume;
}

bool Settings::getFilterAudio() const
{
QMutexLocker locker{&bigLock};
// temporary disable filteraudio, as it doesn't work as expected
return false;
}

void Settings::setFilterAudio(bool newValue)
{
QMutexLocker locker{&bigLock};
filterAudio = newValue;
}

QSize Settings::getCamVideoRes() const
{
QMutexLocker locker{&bigLock};
Expand Down

0 comments on commit cc50811

Please sign in to comment.