|
@@ -112,8 +112,10 @@ void AudioStreamPlayer3D::_mix_audio() {
|
|
|
AudioFrame vol_inc = (target_volume - vol_prev) / float(buffer_size);
|
|
|
AudioFrame vol = stream_paused_fade_in ? AudioFrame(0.f, 0.f) : current.vol[k];
|
|
|
|
|
|
- AudioFrame *target = AudioServer::get_singleton()->thread_get_channel_mix_buffer(current.bus_index, k);
|
|
|
+ if (!AudioServer::get_singleton()->thread_has_channel_mix_buffer(current.bus_index, k))
|
|
|
+ continue; //may have been deleted, will be updated on process
|
|
|
|
|
|
+ AudioFrame *target = AudioServer::get_singleton()->thread_get_channel_mix_buffer(current.bus_index, k);
|
|
|
current.filter.set_mode(AudioFilterSW::HIGHSHELF);
|
|
|
current.filter.set_sampling_rate(AudioServer::get_singleton()->get_mix_rate());
|
|
|
current.filter.set_cutoff(attenuation_filter_cutoff_hz);
|
|
@@ -159,6 +161,9 @@ void AudioStreamPlayer3D::_mix_audio() {
|
|
|
|
|
|
if (current.reverb_bus_index >= 0) {
|
|
|
|
|
|
+ if (!AudioServer::get_singleton()->thread_has_channel_mix_buffer(current.reverb_bus_index, k))
|
|
|
+ continue; //may have been deleted, will be updated on process
|
|
|
+
|
|
|
AudioFrame *rtarget = AudioServer::get_singleton()->thread_get_channel_mix_buffer(current.reverb_bus_index, k);
|
|
|
|
|
|
if (current.reverb_bus_index == prev_outputs[i].reverb_bus_index) {
|