diff --git a/src/add-ons/media/media-add-ons/mixer/AudioMixer.cpp b/src/add-ons/media/media-add-ons/mixer/AudioMixer.cpp index dd3b81f012..0866928ba5 100644 --- a/src/add-ons/media/media-add-ons/mixer/AudioMixer.cpp +++ b/src/add-ons/media/media-add-ons/mixer/AudioMixer.cpp @@ -1818,12 +1818,12 @@ AudioMixer::UpdateParameterWeb() dp = group->MakeDiscreteParameter(PARAM_ETC(70), B_MEDIA_RAW_AUDIO, "Resampling algorithm", B_INPUT_MUX); dp->AddItem(0, "Drop/repeat samples"); + dp->AddItem(2, "Linear interpolation"); // Note: The following code is outcommented on purpose // and is about to be modified at a later point /* dp->AddItem(1, "Drop/repeat samples (template based)"); - dp->AddItem(2, "Linear interpolation"); dp->AddItem(3, "17th order filtering"); */ group->MakeDiscreteParameter(PARAM_ETC(80), B_MEDIA_RAW_AUDIO, "Refuse output format changes", B_ENABLE); diff --git a/src/add-ons/media/media-add-ons/mixer/MixerCore.cpp b/src/add-ons/media/media-add-ons/mixer/MixerCore.cpp index 4e33593d69..362847f170 100644 --- a/src/add-ons/media/media-add-ons/mixer/MixerCore.cpp +++ b/src/add-ons/media/media-add-ons/mixer/MixerCore.cpp @@ -20,6 +20,7 @@ #include #include "AudioMixer.h" +#include "Interpolate.h" #include "MixerInput.h" #include "MixerOutput.h" #include "MixerUtils.h" @@ -296,9 +297,15 @@ MixerCore::ApplyOutputFormat() fResampler = new Resampler * [fMixBufferChannelCount]; for (int i = 0; i < fMixBufferChannelCount; i++) { - // TODO create Interpolate instead of Resampler if the settings say so - fResampler[i] = new Resampler(media_raw_audio_format::B_AUDIO_FLOAT, - format.format); + switch (Settings()->ResamplingAlgorithm()) { + case 2: + fResampler[i] = new Interpolate( + media_raw_audio_format::B_AUDIO_FLOAT, format.format); + break; + default: + fResampler[i] = new Resampler( + media_raw_audio_format::B_AUDIO_FLOAT, format.format); + } } TRACE("MixerCore::OutputFormatChanged:\n");