зеркало из https://github.com/mozilla/gecko-dev.git
b=937057 provide a null ptr instead of a zero buffer when processing resampler tail r=padenot
--HG-- extra : transplant_source : %8EK%22q%A6%E9%82%F1%5E-%9E%BEs%01%F1%D1Jj%097
This commit is contained in:
Родитель
40a355cd1f
Коммит
3d689d137a
|
@ -382,20 +382,12 @@ MediaDecodeTask::Decode()
|
|||
if (sampleRate != destSampleRate) {
|
||||
int inputLatency = speex_resampler_get_input_latency(resampler);
|
||||
int outputLatency = speex_resampler_get_output_latency(resampler);
|
||||
AudioDataValue* zero = (AudioDataValue*)calloc(inputLatency, sizeof(AudioDataValue));
|
||||
|
||||
if (!zero) {
|
||||
// Out of memory!
|
||||
ReportFailureOnMainThread(WebAudioDecodeJob::UnknownError);
|
||||
return;
|
||||
}
|
||||
|
||||
for (uint32_t i = 0; i < channelCount; ++i) {
|
||||
uint32_t inSamples = inputLatency;
|
||||
uint32_t outSamples = outputLatency;
|
||||
|
||||
WebAudioUtils::SpeexResamplerProcess(
|
||||
resampler, i, zero, &inSamples,
|
||||
resampler, i, (AudioDataValue*)nullptr, &inSamples,
|
||||
mDecodeJob.mChannelBuffers[i] + mDecodeJob.mWriteIndex,
|
||||
&outSamples);
|
||||
|
||||
|
@ -404,8 +396,6 @@ MediaDecodeTask::Decode()
|
|||
MOZ_ASSERT(mDecodeJob.mWriteIndex <= resampledFrames);
|
||||
}
|
||||
}
|
||||
|
||||
free(zero);
|
||||
}
|
||||
|
||||
mPhase = PhaseEnum::AllocateBuffer;
|
||||
|
|
|
@ -137,12 +137,8 @@ nsReturnRef<HRTFKernel> HRTFElevation::calculateKernelForAzimuthElevation(int az
|
|||
// Feed in zeros get the data remaining in the resampler.
|
||||
spx_uint32_t out_index = out_len;
|
||||
in_len = speex_resampler_get_input_latency(resampler);
|
||||
nsAutoTArray<AudioDataValue, 256> zeros;
|
||||
zeros.SetLength(in_len);
|
||||
PodZero(zeros.Elements(), in_len);
|
||||
out_len = resampled.Length() - out_index;
|
||||
RESAMPLER_PROCESS(resampler, 0,
|
||||
zeros.Elements(), &in_len,
|
||||
RESAMPLER_PROCESS(resampler, 0, nullptr, &in_len,
|
||||
resampled.Elements() + out_index, &out_len);
|
||||
out_index += out_len;
|
||||
// There may be some uninitialized samples remaining for very low
|
||||
|
|
Загрузка…
Ссылка в новой задаче