mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 874952 - Always create enough last chunks for an engine, even if we don't end up calling into its ProduceAudioBlock function; r=roc
This commit is contained in:
parent
ff55db5503
commit
03aface63f
@ -394,13 +394,19 @@ AudioNodeStream::ProduceOutput(GraphTime aFrom, GraphTime aTo)
|
||||
|
||||
AudioSegment* segment = track->Get<AudioSegment>();
|
||||
|
||||
mLastChunks.SetLength(1);
|
||||
mLastChunks[0].SetNull(0);
|
||||
uint16_t outputCount = std::max(uint16_t(1), mEngine->OutputCount());
|
||||
mLastChunks.SetLength(outputCount);
|
||||
|
||||
if (mInCycle) {
|
||||
// XXX DelayNode not supported yet so just produce silence
|
||||
mLastChunks[0].SetNull(WEBAUDIO_BLOCK_SIZE);
|
||||
for (uint16_t i = 0; i < outputCount; ++i) {
|
||||
mLastChunks[i].SetNull(WEBAUDIO_BLOCK_SIZE);
|
||||
}
|
||||
} else {
|
||||
for (uint16_t i = 0; i < outputCount; ++i) {
|
||||
mLastChunks[i].SetNull(0);
|
||||
}
|
||||
|
||||
// We need to generate at least one input
|
||||
uint16_t maxInputs = std::max(uint16_t(1), mEngine->InputCount());
|
||||
OutputChunks inputChunks;
|
||||
|
11
content/media/test/crashtests/874952.html
Normal file
11
content/media/test/crashtests/874952.html
Normal file
@ -0,0 +1,11 @@
|
||||
<script>
|
||||
var Context0= new AudioContext()
|
||||
var ChannelSplitter0=Context0.createChannelSplitter();
|
||||
var BiquadFilter0=Context0.createBiquadFilter();
|
||||
var WaveShaper0=Context0.createWaveShaper();
|
||||
|
||||
ChannelSplitter0.connect(BiquadFilter0,3,0);
|
||||
ChannelSplitter0.connect(WaveShaper0);
|
||||
BiquadFilter0.disconnect();
|
||||
WaveShaper0.connect(ChannelSplitter0);
|
||||
</script>
|
@ -18,3 +18,4 @@ load 852838.html
|
||||
load 874869.html
|
||||
load 874915.html
|
||||
load 874934.html
|
||||
load 874952.html
|
||||
|
Loading…
Reference in New Issue
Block a user