From f39b46f7c11b041ee2f8cc91b1e06bd5694a4869 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Fri, 6 Nov 2020 15:10:57 +0100 Subject: [PATCH] [HTML5] Fix audio buffer size and latency hint. The size of the audio buffer was incorrectly doubled when creating the script processor. latencyHint is expressed in seconds, not milliseconds. Additionally, on some browsers it actually affect the performance and stability of the audio driver. For this reason it has been completely disabled (interactive) and a not has been left for future reference. --- platform/javascript/audio_driver_javascript.cpp | 2 +- platform/javascript/native/library_godot_audio.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/javascript/audio_driver_javascript.cpp b/platform/javascript/audio_driver_javascript.cpp index 36f6cb13d89..15fe5c8dcae 100644 --- a/platform/javascript/audio_driver_javascript.cpp +++ b/platform/javascript/audio_driver_javascript.cpp @@ -101,7 +101,7 @@ Error AudioDriverJavaScript::init() { int latency = GLOBAL_GET("audio/output_latency"); channel_count = godot_audio_init(mix_rate, latency); - buffer_length = closest_power_of_2((latency * mix_rate / 1000) * channel_count); + buffer_length = closest_power_of_2(latency * mix_rate / 1000); buffer_length = godot_audio_create_processor(buffer_length, channel_count); if (!buffer_length) { return FAILED; diff --git a/platform/javascript/native/library_godot_audio.js b/platform/javascript/native/library_godot_audio.js index d300280ccdb..4e7f3e2af51 100644 --- a/platform/javascript/native/library_godot_audio.js +++ b/platform/javascript/native/library_godot_audio.js @@ -47,7 +47,7 @@ var GodotAudio = { godot_audio_init: function(mix_rate, latency) { GodotAudio.ctx = new (window.AudioContext || window.webkitAudioContext)({ sampleRate: mix_rate, - latencyHint: latency + // latencyHint: latency / 1000 // Do not specify, leave 'interactive' for good performance. }); return GodotAudio.ctx.destination.channelCount; },