| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
Fixes build failure on platforms with MAY_HAVE_SSE4_1 (but not PRESUME_SSE4_1) with --enable-intrinsics.
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
|
|
|
|
| |
These were causing "syntax error near unexpected token `fi'" in the
generated configure on some systems, because they produced an
else
fi
with no commands between the two.
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
|
| |
Some of the fields present in NE10's float state struct are not
present in the fixed-point version, but we were generating
initializers for them anyway.
Also, the float modes were not up-to-date with the output of
dump_modes.
|
|
|
|
|
|
|
| |
Extends usage of NEON optimized fixed-point FFT optimizations
in libNE10 to clt_mdct_forward and clt_mdct_backward.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
|
| |
Uses NEON optimized fixed point FFT routines in NE10 library.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
| |
Signed-off-by: Viswanath Puttagunta <viswanath.puttagunta@linaro.org>
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimize opus decode (float only) use case using ARM NE10.
Mainly effects opus_ifft and ctl_mdct_backward and related
functions.
Work based on previous Encode optimization using ARM NE10
library. See previous commit for details on how to enable
this.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimize opus encode (float only) usecase using ARM NE10
library. Mainly effects opus_fft and ctl_mdct_forward
and related functions.
This optimization can be used for ARM CPUs that have NEON
VFP unit. This patch only enables optimizations for ARMv7.
Official ARM NE10 library page available at
http://projectne10.github.io/Ne10/
To enable this optimization, use
--enable-intrinsics --with-NE10=<install_prefix>
or
--enable-intrinsics --with-NE10-libraries=<NE10_lib_dir> --with-NE10-includes=<NE10_includes_dir>
Compile time checks made during configure process to make sure
optimization option available only when compiler supports NEON
instrinsics.
Runtime checks made to make sure optimized functions only called
on appropriate hardware.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
|
|
|
| |
This library is linked statically with libopus.so, so nothing
changes on an installed system.
This merely simplifies linking in the unit tests.
Based in part on a patch originally by Viswanath Puttagunta
<viswanath.puttagunta@linaro.org>.
|
|
|
|
|
| |
This is needed for the SMALL_DIV_TABLE constants added in commit
ec5d01cbe486.
|
|
|
|
|
|
| |
Brings MIPS in sync with the ARM/SSE optimizations that added "arch" parameters.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
| |
Fix out-of-bounds memory read in multichannel surround analysis
with float input that contains NaNs. Found by afl-fuzz.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
| |
|
|
|
|
|
|
|
| |
autoreconf looks for ACLOCAL_*FLAGS in Makefile.am and will
pass that on when it invokes aclocal. Furthermore, setting
a local like this doesn't make it available to subcommands,
so the line has no effect.
|
|
|
|
|
|
|
|
|
|
| |
This patch lets you pass paths for opus_demo and opus_compare to the
run_vectors.sh script.
The motivation for this was for my aarch64 patches (forthcoming),
which I've been testing under qemu. I want to run an emulated
opus_demo, but a native opus_compare, so the script completes in a
reasonable amount of time.
|
|
|
|
|
|
|
|
|
| |
be used.
This patch adds a macro abstracting the condition under which the silk
math macros use opus_int64-based calculations rather than opus_int32.
No substantive change, but will make it easier to adjust if additional
such platforms are found in the future.
|
|
|
|
|
|
| |
so build dependencies are right.
Actually add source code to opus_demo project, and fix its include paths.
|
| |
|
|
|
|
|
|
|
|
| |
Enable x86 intrinsics when building in floating-point mode.
Support SSE as an arch value.
Use RTCD to conditionally enable existing floating-point Celt SSE code.
Call functions directly (without RTCD) when their architecture can be presumed.
Use SSE4.1 intrinsics optimized code for Silk even in floating-point mode.
|
|
|
|
| |
with appropriate compiler flags. Otherwise, compilers are allowed to take advantage of (e.g.) -msse4.1 to generate code that uses SSE4.1 instructions, even when no SSE4.1 intrinsics are explicitly used in the source.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
_mm_cvtepi16_epi32, only for _mm_cvtepi8_epi32. Adjust comment accordingly.
|
|
|
|
|
|
|
| |
Actually try to compile intrinsics rather than using the output of --help.
Allow caller of configure script to set custom compiler options to enable intrinsics.
Detect when intrinsics are always available, without needing special compiler options.
Make naming of #defines for detected intrinsics support more systematic.
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
|
|
| |
The bug was caused by an improper feedback of the per-frame bitrate, causing
the bitrate to jump up and down from frame to frame, within a packet.
The patch avoids this, and also gives a slight improvement in general for
multi-frame packets, even without FEC.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
|
|
|
|
| |
This allows the libopus source files to be compiled with a C++ compiler,
by ensuring that the "extern const MLP net" declaration is visible at
the point of the "const MLP net" in src/mlp_data.c. Otherwise it will
default to static linkage in C++, resulting in an undefined symbol.
Note that if compiled with a C++ compiler the symbols will be mangled,
so don't do that if you want to be able to call it from C code or run
the tests (which still require a C compiler).
|
| |
|
|
|
|
| |
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
| |
on sensible platforms, and correct everywhere.
|
| |
|
|
|
|
|
| |
Based on max size of void*, opus_int32 and opus_val32, rounded up to the
nearest power of two
|
|
|
|
|
| |
This version resolves some issues with the packet size limits
raised by Mark Harris.
|
|
|
|
|
| |
We use at most 16 when using fixed-point (for the API or the
internal implementation), but we didn't tell anyone this.
|
|
|
|
|
|
|
|
| |
Keep a copy of the release tarball sha-256 checksums in the
repository for reference. Having a copy with the code in
distributed version control adds a verification path.
This should match http://downloads.xiph.org/releases/opus/SHA256SUMS.txt
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
1. Removed an inappropriate normative MAY.
2. Gave an explicit range of sample rates deemed to be "non-crazy".
3. Give explicit guidance on packet sizes that SHOULD and MAY be rejected.
|
| |
|