mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 05:37:11 +00:00
10f5941b9c
- Bug 1246051 - have MediaQueue<T>::Peek/PeekFront return a RefPtr<> to avoid dangling pointers per comment 0. r=gerald. (00f334efb1) - Bug 1264199: P1. Perform audio conversion in the MSDM taskqueue and ahead of use. r=kinetik (001936e3ea) - Bug 1267983 - include MediaQueue.h; r=jwwang (036107d765) - Bug 1264199: P0. Fix nsDequeue/MediaQueue methods constness. r=jwwang (9aa33dfcb5) - Bug 1264199: P0.1. Export SaferMultDiv method. r=gerald (0b7a35ae4d) - Bug 1264199: P2. Ensure the AudioStream only ever receive the same content format. r=kinetik (a180d09279) - Bug 1264199: P3. Attempt to minimize audio quality loss and unnecessary processing. r=kinetik (29d57b5a33) - Bug 1264199: P4. Add mono to stereo upmix to AudioConverter. r=rillian (49c029bd86) - Bug 1264199: P5. Perform all downmixing operations in DecodedAudioDataSink. r=kinetik (05a479f095) - Bug 1264199: P6. Drain resampler when changing format or reaching the end. r=kinetik (8639102a94) - Bug 1264199: P8. Handle potential resampling errors. r=kinetik (1267e4e73d) - Bug 1264199: P9. Include pending frames in HasUnplayedFrames calculation. r=jwwang (ce7097fc90)
47 lines
1.7 KiB
Diff
47 lines
1.7 KiB
Diff
diff --git a/media/libspeex_resampler/src/resample.c b/media/libspeex_resampler/src/resample.c
|
|
index 83ad119..a3859e3 100644
|
|
--- a/media/libspeex_resampler/src/resample.c
|
|
+++ b/media/libspeex_resampler/src/resample.c
|
|
@@ -811,6 +811,12 @@ EXPORT SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels,
|
|
return NULL;
|
|
}
|
|
st = (SpeexResamplerState *)speex_alloc(sizeof(SpeexResamplerState));
|
|
+ if (!st)
|
|
+ {
|
|
+ if (err)
|
|
+ *err = RESAMPLER_ERR_ALLOC_FAILED;
|
|
+ return NULL;
|
|
+ }
|
|
st->initialised = 0;
|
|
st->started = 0;
|
|
st->in_rate = 0;
|
|
@@ -832,9 +838,12 @@ EXPORT SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels,
|
|
st->buffer_size = 160;
|
|
|
|
/* Per channel data */
|
|
- st->last_sample = (spx_int32_t*)speex_alloc(nb_channels*sizeof(spx_int32_t));
|
|
- st->magic_samples = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t));
|
|
- st->samp_frac_num = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t));
|
|
+ if (!(st->last_sample = (spx_int32_t*)speex_alloc(nb_channels*sizeof(spx_int32_t))))
|
|
+ goto fail;
|
|
+ if (!(st->magic_samples = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t))))
|
|
+ goto fail;
|
|
+ if (!(st->samp_frac_num = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t))))
|
|
+ goto fail;
|
|
for (i=0;i<nb_channels;i++)
|
|
{
|
|
st->last_sample[i] = 0;
|
|
@@ -857,6 +866,12 @@ EXPORT SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels,
|
|
*err = filter_err;
|
|
|
|
return st;
|
|
+
|
|
+fail:
|
|
+ if (err)
|
|
+ *err = RESAMPLER_ERR_ALLOC_FAILED;
|
|
+ speex_resampler_destroy(st);
|
|
+ return NULL;
|
|
}
|
|
|
|
EXPORT void speex_resampler_destroy(SpeexResamplerState *st)
|