X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fmixer%2Faudio%2Faudio_mixer.cpp;h=6e35f66b57ff1df0765329e5533076983b387930;hb=efa58f1b76624ca8dd0064a9154414d08b52c8b6;hp=7b997d5f107cae19ddc7f6e8fa2c4fffa6eb3e30;hpb=17c59c250c4c7966c2d76e7ccc52b201d7d4707d;p=casparcg diff --git a/core/mixer/audio/audio_mixer.cpp b/core/mixer/audio/audio_mixer.cpp index 7b997d5f1..6e35f66b5 100644 --- a/core/mixer/audio/audio_mixer.cpp +++ b/core/mixer/audio/audio_mixer.cpp @@ -171,6 +171,14 @@ public: std::vector result_ps(audio_cadence_.front(), 0.0f); BOOST_FOREACH(auto& stream, audio_streams_ | boost::adaptors::map_values) { + //CASPAR_LOG(debug) << stream.audio_data.size() << L" : " << result_ps.size(); + + if(stream.audio_data.size() < result_ps.size()) + { + stream.audio_data.resize(result_ps.size(), 0.0f); + CASPAR_LOG(trace) << L"[audio_mixer] Appended zero samples"; + } + auto out = boost::range::transform(result_ps, stream.audio_data, std::begin(result_ps), std::plus()); stream.audio_data.erase(std::begin(stream.audio_data), std::begin(stream.audio_data) + std::distance(std::begin(result_ps), out)); } @@ -183,7 +191,7 @@ public: auto max = boost::range::max_element(result); - graph_->update_value("volume", static_cast(std::abs(*max))/std::numeric_limits::max()); + graph_->set_value("volume", static_cast(std::abs(*max))/std::numeric_limits::max()); return result; }