From: ronag Date: Sat, 3 Sep 2011 18:44:35 +0000 (+0000) Subject: git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches... X-Git-Tag: 2.0.1~20 X-Git-Url: https://git.sesse.net/?p=casparcg;a=commitdiff_plain;h=b8d3d0a73adbcd45e368c38532f6f8a0d44fb581 git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1337 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- 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);