Fix submitted upstream
Upstream version had a partial fix for overflow (though incomplete). I've included that fix here and completed it.
MozReview-Commit-ID: 5RyIMI5qrvC
--HG--
extra : rebase_source : 18a67d2ca8220a8129b69105413c33a81f7a6984
In bug 922912, we folded back gkmedias.dll info xul.dll, so in practice, there
is no default configuration left that exercises GKMEDIAS_SHARED_LIBRARY. And
sure enough, it's been broken for months in many different ways.
The gkmedias intermediate library is however kept for webrtc signaling tests.
DONTBUILD because it only changes comments.
This will hopefully prevent confusion like that in bug 1215903.
--HG--
extra : rebase_source : f0a601d77b5f42b4fbe090693234f934e3becc42
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
This also changes the HUGEMEM test to be independent of quality.
|oversample| has a maximum value of 32, so we know that the interpolating
resampler will use less memory when st->den_rate > 441.
--HG--
extra : transplant_source : vl%C1d%A5%FB%3Cd%FBC%86%FD%26%EC%FB%C0%5C%26%7D%8C
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Extended-Asm says
asm [volatile] ( AssemblerTemplate : [OutputOperands] [ : [InputOperands] [ : [Clobbers] ] ] )
which implies that Clobbers is optional even after the third colon, but
the gcc used for b2g_try_emulator_dep builds says
resample_neon.c: In function 'saturate_32bit_to_16bit':
resample_neon.c:50: error: expected string literal before ')' token
--HG--
extra : rebase_source : 6ca7768d5b30f67ff6827acc9a4fdc51a672bc1e
This ensures that code in resample.c will run on Intel x86 cpus even when SSE
support has been compiled, and will provide similarly for neon support when
enabled.
--HG--
rename : media/libspeex_resampler/sse-detect-runtime.patch => media/libspeex_resampler/simd-detect-runtime.patch
rename : media/libspeex_resampler/src/resample_neon.h => media/libspeex_resampler/src/resample_neon.c
rename : media/libspeex_resampler/src/resample_sse.h => media/libspeex_resampler/src/resample_sse.c
rename : media/libspeex_resampler/src/sse_detect.cpp => media/libspeex_resampler/src/simd_detect.cpp
rename : media/libspeex_resampler/src/sse_detect.h => media/libspeex_resampler/src/simd_detect.h
extra : rebase_source : bdf1ef791129dedeadce7369354a5992729a99b7
When built with FIXED_POINT speex_resampler_process_float() assumes the
samples are in the range ±0x7fff and so Gecko instead uses ConvertAudioSamples
and speex_resampler_process_int(). This decision is based on
MOZ_SAMPLE_TYPE_S16.
--HG--
extra : rebase_source : 1e67861478026dfa65b61a31e3272970a7094094
When "speex/speex_resampler.h" was included, another exported header (in
dist/include) would find the speex/speex_resampler.h in dist/include before
dist/system_wrappers. Visibility of undefined symbols depended on the order
of includes.
This patch changes includes to <speex/speex_resampler.h> so that
WRAP_SYSTEM_INCLUDES works as expected but removes the wrapper when not using
GKMEDIAS_SHARED_LIBRARY.
--HG--
extra : rebase_source : 93ca1dbdd6b489647624326e78539f44c60d0b34
Upstream SATURATE32PSHR changes conflict with Gecko's SSE runtime
detection patch. That patch is updated to reduce deviation from
upstream.
--HG--
extra : rebase_source : fdaf355f802b944fcbe286e076ca19dc6bc33f80
This is the speexdsp revision most similar to what is currently in Gecko.
We'll want to keep the HUGEMEM variant that we currently have from
opus-tools, but that will be restored in a subsequent patch.
--HG--
extra : rebase_source : 0d0d881dc1c997a42c9386136f0b93fd15aa0331
Instead of defining OUTSIDE_SPEEX and RANDOM_PREFIX everywhere
speex_resampler.h is included, it is easier to patch the header.
Symbol names in gkmedias symbols.def are updated now that RANDOM_PREFIX is
taking effect, and unused symbols are no longer exported.
--HG--
extra : transplant_source : sx%C9%ED%EB%E7%D8P%09%18%87%D4Oj%85%D5%25%C8%A5%01
This allows a client to align output samples consistently for independent
resampling of contiguous input buffers.
--HG--
extra : rebase_source : 58caba11ac7f78418b173a98556276d3b4644603
sample_frac_num is the array most likely to be non-zero after resampling a
previous stream, but the other arrays can also be left at non-zero values
in other situations.
--HG--
extra : rebase_source : dfd3974f051ff0b1794a937d712dda185352f7d5