orottier / web-audio-api-rs

A Rust implementation of the Web Audio API, for use in non-browser contexts
https://docs.rs/web-audio-api/
MIT License
300 stars 16 forks source link

ScriptProcessorNode: setting numberOfOutputs to more than 1 panics #495

Closed b-ma closed 7 months ago

b-ma commented 7 months ago
thread '<unnamed>' panicked at src/render/quantum.rs:241:14:
index out of bounds: the len is 1 but the index is 1

I didn't really dig into the issue

orottier commented 7 months ago

Thanks, I will have a look soon. The relevant stacktrace is


thread '<unnamed>' panicked at src/render/quantum.rs:241:14:
index out of bounds: the len is 1 but the index is 1
stack backtrace:
   0: rust_begin_unwind
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
   1: core::panicking::panic_fmt
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:208:5
   3: web_audio_api::render::quantum::AudioRenderQuantum::channel_data_mut
             at ./src/render/quantum.rs:241:14
   4: <web_audio_api::node::script_processor::ScriptProcessorRenderer as web_audio_api::render::processor::AudioProcessor>::onmessage::{{closure}}::{{closure}}
             at ./src/node/script_processor.rs:258:40
   5: core::iter::traits::iterator::Iterator::for_each::call::{{closure}}
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/traits/iterator.rs:855:29
   6: <core::iter::adapters::zip::Zip<A,B> as core::iter::adapters::zip::ZipImpl<A,B>>::fold
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/adapters/zip.rs:287:25
   7: <core::iter::adapters::zip::Zip<A,B> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/adapters/zip.rs:103:9
   8: core::iter::traits::iterator::Iterator::for_each
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/traits/iterator.rs:858:9
   9: <web_audio_api::node::script_processor::ScriptProcessorRenderer as web_audio_api::render::processor::AudioProcessor>::onmessage::{{closure}}
             at ./src/node/script_processor.rs:255:17
  10: core::iter::traits::iterator::Iterator::for_each::call::{{closure}}
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/traits/iterator.rs:855:29
  11: <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold::enumerate::{{closure}}
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/adapters/enumerate.rs:107:27
  12: <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/slice/iter/macros.rs:232:27
  13: <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/adapters/enumerate.rs:113:9
  14: core::iter::traits::iterator::Iterator::for_each
             at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/iter/traits/iterator.rs:858:9
  15: <web_audio_api::node::script_processor::ScriptProcessorRenderer as web_audio_api::render::processor::AudioProcessor>::onmessage
             at ./src/node/script_processor.rs:254:13