From b8d3d0a73adbcd45e368c38532f6f8a0d44fb581 Mon Sep 17 00:00:00 2001 From: ronag Date: Sat, 3 Sep 2011 18:44:35 +0000 Subject: [PATCH] git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1337 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- core/mixer/audio/audio_mixer.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/core/mixer/audio/audio_mixer.cpp b/core/mixer/audio/audio_mixer.cpp index 50ce413c4..659572210 100644 --- a/core/mixer/audio/audio_mixer.cpp +++ b/core/mixer/audio/audio_mixer.cpp @@ -127,14 +127,13 @@ public: { for(size_t n = r.begin(); n < r.end(); ++n) { - const float alpha0 = (n*2) * delta; - const float volume0 = prev_volume * (1.0f - alpha0) + next_volume * alpha0; - const float volume1 = prev_volume * (1.0f - alpha0 + delta) + next_volume * (alpha0 + delta); + const float alpha0 = (n*2+0) * delta; + const float alpha1 = (n*2+1) * delta; + const float volume0 = (prev_volume * (1.0f - alpha0)) + (next_volume * alpha0); + const float volume1 = (prev_volume * (1.0f - alpha1)) + (next_volume * alpha1); - auto sample_epi32 = _mm_load_si128(reinterpret_cast<__m128i*>(&item.audio_data[n*4])); - auto res_sample_ps = _mm_load_ps(&intermediate[n*4]); - - auto sample_ps = _mm_cvtepi32_ps(sample_epi32); + auto sample_ps = _mm_cvtepi32_ps(_mm_load_si128(reinterpret_cast<__m128i*>(&item.audio_data[n*4]))); + auto res_sample_ps = _mm_load_ps(&intermediate[n*4]); sample_ps = _mm_mul_ps(sample_ps, _mm_setr_ps(volume1, volume1, volume0, volume0)); res_sample_ps = _mm_add_ps(sample_ps, res_sample_ps); -- 2.39.2