From 0490e3910916a2bdec676ebbbb5d16baa9be254f Mon Sep 17 00:00:00 2001 From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> Date: Wed, 23 Aug 2023 15:20:55 -0300 Subject: [PATCH] AudioFilter: keep same audio format as the input Change-Id: I82e6d9cda290afb3e4f158c7053e40d89f117ab7 --- AudioFilter/CMakeLists.txt | 2 +- AudioFilter/FilterAudioSubscriber.cpp | 17 +++++++++++++---- AudioFilter/FilterAudioSubscriber.h | 2 +- AudioFilter/main.cpp | 2 +- AudioFilter/manifest.json | 2 +- AudioFilter/package.json | 2 +- 6 files changed, 18 insertions(+), 9 deletions(-) diff --git a/AudioFilter/CMakeLists.txt b/AudioFilter/CMakeLists.txt index a7f024a..c1c59f4 100644 --- a/AudioFilter/CMakeLists.txt +++ b/AudioFilter/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10) # set the project name set (ProjectName AudioFilter) -set (Version 1.0.0) +set (Version 1.0.1) project(${ProjectName} VERSION ${Version}) diff --git a/AudioFilter/FilterAudioSubscriber.cpp b/AudioFilter/FilterAudioSubscriber.cpp index a1e41c3..0096c17 100644 --- a/AudioFilter/FilterAudioSubscriber.cpp +++ b/AudioFilter/FilterAudioSubscriber.cpp @@ -59,10 +59,19 @@ FilterAudioSubscriber::setIRFile(const std::string& irFile) } void -FilterAudioSubscriber::setFilterDescription(const int pSampleRate, const int pSamples) +FilterAudioSubscriber::setFilterDescription(const int pSampleRate, const int pSamples, const int pFormat) { int rSamples = 1024; // due to afir internal fifo int midSampleRate = pSampleRate * rSamples / pSamples; + std::string outFormat {"s16"}; + if (pFormat == AV_SAMPLE_FMT_U8) + outFormat = "u8"; + else if (pFormat == AV_SAMPLE_FMT_S32) + outFormat = "s32"; + else if (pFormat == AV_SAMPLE_FMT_FLT) + outFormat = "f32"; + else if (pFormat == AV_SAMPLE_FMT_DBL) + outFormat = "f64"; filterDescription_ = "[ input ] aformat=sample_fmts=s16:sample_rates=" + std::to_string(midSampleRate) + ":channel_layouts=stereo [ resample1 ] , " @@ -70,9 +79,9 @@ FilterAudioSubscriber::setFilterDescription(const int pSampleRate, const int pSa + std::to_string(rSamples) + ":minp=" + std::to_string(rSamples) + " [ reverb ] , " #ifdef __DEBUG__ - "[ reverb ] aformat=sample_fmts=s16p:sample_rates=" + "[ reverb ] aformat=sample_fmts=" + outFormat + "p:sample_rates=" #else - "[ reverb ] aformat=sample_fmts=s16:sample_rates=" + "[ reverb ] aformat=sample_fmts=" + outFormat + ":sample_rates=" #endif + std::to_string(pSampleRate) + ":channel_layouts=stereo "; } @@ -181,7 +190,7 @@ FilterAudioSubscriber::update(Observable<AVFrame*>*, AVFrame* const& pluginFrame return; if (firstRun) { - setFilterDescription(pluginFrame->sample_rate, pluginFrame->nb_samples); + setFilterDescription(pluginFrame->sample_rate, pluginFrame->nb_samples, pluginFrame->format); AudioFormat afmt_ = AudioFormat(pluginFrame->sample_rate, pluginFrame->ch_layout.nb_channels, static_cast<AVSampleFormat>(pluginFrame->format)); diff --git a/AudioFilter/FilterAudioSubscriber.h b/AudioFilter/FilterAudioSubscriber.h index b5ce828..a03ce6d 100644 --- a/AudioFilter/FilterAudioSubscriber.h +++ b/AudioFilter/FilterAudioSubscriber.h @@ -56,7 +56,7 @@ private: // Status variables of the processing bool firstRun {true}; - void setFilterDescription(const int pSampleRate, const int pSamples); + void setFilterDescription(const int pSampleRate, const int pSamples, const int pFormat); void setIRAVFrame(); AudioFormat getIRAVFrameInfos(); std::string irFile_{}; diff --git a/AudioFilter/main.cpp b/AudioFilter/main.cpp index 1a28e49..797af99 100644 --- a/AudioFilter/main.cpp +++ b/AudioFilter/main.cpp @@ -41,7 +41,7 @@ #define AudioFilter_VERSION_MAJOR 1 #define AudioFilter_VERSION_MINOR 0 -#define AudioFilter_VERSION_PATCH 0 +#define AudioFilter_VERSION_PATCH 1 extern "C" { diff --git a/AudioFilter/manifest.json b/AudioFilter/manifest.json index e09f37f..c08e558 100644 --- a/AudioFilter/manifest.json +++ b/AudioFilter/manifest.json @@ -2,7 +2,7 @@ "id": "AudioFilter", "name": "{{name}}", "description": "{{description_summary}}", - "version": "1.0.0", + "version": "1.0.1", "iconPath" : "icon.svg", "backgroundPath": "background.jpg" } \ No newline at end of file diff --git a/AudioFilter/package.json b/AudioFilter/package.json index b66c19e..b3d39c3 100644 --- a/AudioFilter/package.json +++ b/AudioFilter/package.json @@ -1,6 +1,6 @@ { "name": "AudioFilter", - "version": "1.0.0", + "version": "1.0.1", "extractLibs": false, "deps": [ "fmt", -- GitLab