Handle case when OfflineAudioContext doesn't receive all the buffers

This commit is contained in:
Manish Goregaokar 2018-10-10 15:00:04 -07:00
parent 304e09732e
commit ceb2cd2279

View file

@ -151,10 +151,14 @@ impl OfflineAudioContextMethods for OfflineAudioContext {
task!(resolve: move || {
let this = this.root();
let processed_audio = processed_audio.lock().unwrap();
let processed_audio: Vec<_> = processed_audio
let mut processed_audio: Vec<_> = processed_audio
.chunks(this.length as usize)
.map(|channel| channel.to_vec())
.collect();
// it can end up being empty if the task failed
if processed_audio.len() != this.length as usize {
processed_audio.resize(this.length as usize, Vec::new())
}
let buffer = AudioBuffer::new(
&this.global().as_window(),
this.channel_count,