| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
We now include the object files for those rather than attempt to
problems.
|
|
|
|
|
|
|
|
|
|
|
| |
The optimization is bit exact with C function.
This optimization speeds up fixed-point SILK encoder on NEON about
5% to 8%. (Tested on Acer Chromebook, ARMv7 Processor rev 3 (v7l).)
Change-Id: I582f6f3585b7946149e16a2ad3084ebc0ae79a4f
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
| |
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
|
|
|
|
|
| |
It checks that no clearly unstable filter passes the LPC_inv_pred_gain()
test. Also, this will make it possible to check assembly for correctness.
Modified from an original patch from Linfeng Zhang <linfengz@google.com>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove version.mk and references to it in the repo.
genversion.bat will now generate the same version strings as
update_version script, i.e. without 'v' prefix and without a
fallback if git archive is used.
If run from a release tarball it'll use package_version,
like configure. If run from a git repo, it will use the same
'git describe' with '-dirty' as update_version.
Signed-off-by: Ralph Giles <giles@thaumas.net>
|
| |
|
|
|
|
|
|
|
| |
Since DLL builds can't include both fixed and float, separate DLL_fixed
configurations added that include fixed silk code and also set FIXED_POINT.
Signed-off-by: Ralph Giles <giles@mozilla.com>
|
|
|
|
|
|
|
|
|
| |
Run before any other project.
Avoids trying to create and replace version.h more than once which
led to file-locking errors with multicore builds.
Signed-off-by: Ralph Giles <giles@mozilla.com>
|
|
|
|
| |
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
|
| |
consistency with x86.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
| |
Thanks to derf for the report.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimize celt_pitch_xcorr function (for floating point)
using ARM NEON intrinsics for SoCs that have NEON VFP unit.
To enable this optimization, use --enable-intrinsics
configure option.
Compile time and runtime checks are also supported to make sure
this optimization is only enabled when the compiler supports
NEON intrinsics.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
optimization, default is disabled.
3. Official test cases are verified and passed.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch in 76e831d917ff got us most of the way there, but
out-of-tree builds required a second Makefile.am rule, which was
missing @ARM2GNU_PARAMS@.
Also, the arm2gnu.pl was terminating argument processing on any
argument beginning with --, rather than an argument that was just
-- by itself (as is the normal convention in GNU programs).
That meant it never saw the --apple flag even when it was passed.
Thanks to Jonathan Lennox for the report and for testing.
|
|
|
|
|
|
|
|
|
| |
This allows building the arm assembly for iOS.
This checks for the __APPLE__ preprocessor built-in define to
determine whether this extra handling should be enabled.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
| |
Don't include the generated celt/arm/celt_pitch_xcorr_arm-gnu.S in the
dist tarball, but do include its celt_pitch_xcorr_arm.s source file.
|
|
|
|
|
|
|
|
|
| |
Automake's dependency tracking seems to be confused by our asm
generation double-indirection. It's sufficient to have just
CLEANFILES = $(CELT_AM_SOURCES_ARM_ASM:.s.in=-gnu.S)
to fix the error about 'armopts-gnu.S' not being cleaned, but
celt_pitch_xcorr_arm-gnu.S is also not cleaned without raising
a warning. Therefore we explicitly clean both sets of ARM_ASM.
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
| |
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
| |
|
|
|
|
|
| |
Code is still float, but at least tonality esitmation seems to work.
Speech/music analysis is still disabled.
|
| |
|
| |
|
|
|
|
| |
Automake 1.13 complains that INCLUDES is obsoleted now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drop the test for getopt, it's not used anywhere anymore.
Switch the last uses of AC_TRY_COMPILE to AC_COMPILE_IFELSE now.
The former is marked as obsolete, and this will leave no confusion
about which to cut and paste if new tests are added.
Double quote all the parameters to AC_LANG_SOURCE and AC_LANG_PROGRAM.
This is actually required, even if you can get away with not doing it
sometimes, so again set a good example for future changes to follow,
to hopefully avoid people getting bitten harder than they need to be.
Don't bother checking for alloca if we're never going to use it
(ie. if we have C99 variable-size array support).
The test for this is a bit sketchy anyway ... we separately test for
HAVE_ALLOCA_H and USE_ALLOCA, but the test for USE_ALLOCA depends upon
having alloca.h present, yet the use of these macros in stack_alloc.h
only tests for HAVE_ALLOCA_H inside of a test for USE_ALLOCA.
I'm not going to change this logic right now, since I don't know what
crazy system it was attempting to cater for, though I suspect it was
one that was not using the autoconf build system ... since with the
current test that combination should not be possible to obtain.
Use LT_LIB_M instead of the song and dance with testing for exp().
This should also work for BeOS which is what the exp test was added for.
It also means we don't unconditionally add -lm to everything via LIBS.
Use LIBM now instead of hardcoding -lm everywhere.
Use AS_HELP_STRING to format all option descriptions.
Don't bother to test for doxygen if using it is --disable'd.
Drop the SYMBOL_VISIBILITY export, it isn't used anywhere (we add the
compiler flag to CFLAGS).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run-time CPU detection (RTCD) is enabled by default if target platform support
it.
It can be disable at compile time with --disable-rtcd option.
Add RTCD support for ARM architecture.
Thanks to Timothy B. Terriberry for help and code review
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Needed by commit 972a34ec2c79d241318af24389b8ee042d10556a.
Use autoreconf in autogen.sh instead of the handwritten version,
it's simpler, and also updates things that we weren't handling.
Drop the hand-written INSTALL file. Its information content was
~zero, and autotools wants to overwrite it with its own version,
so don't fight that, just .gitignore it.
|
|
|
|
|
|
| |
There's currently at least one way that people can legitimately get a
tarball that doesn't include it, via the gitweb snapshots, so create
it rather than considering that an error to be manually fixed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This one meets or exceeds the following requirements:
- Version is checked/updated for every build action when in the git repo.
Does not require the user to re- ./configure to get the correct version.
- Version is not updated automatically when using exported tarball source.
Avoids accidentally getting a wrong version from some other git repo in
a parent directory of the source, and allows setting the correct version
for distro package exports.
- Automatic updating can be manually suppressed.
For developers doing lots of change/rebuild cycles they don't plan to
release, when they don't want a full rebuild triggered for every commit,
and again for every change made immediately after a commit.
The version will still always be updated if they do a `make dist`.
- Does not require any manual updating of versions in the mainline git
repo for each release aside from normal tagging. The version is
recorded in one file only, that is automatically generated and will
never need to be committed.
- Does not require gnu-make features for the autoconf builds.
It does not currently:
- Keep a checksum of every source file in tarball releases to mangle the
version if people modify the tarball source. Responsible people can
manually update the version easily though in such cases.
The version.mk file is now only used by the VC project files. Once they
are updated to use the package_version file too, then it can be deleted
from the repository.
|
|
|
|
|
|
|
|
| |
This is a heavily modified version of the demonstration program
Jüri Aedla posted to the mailing list. Verified to pass with
the current commit, but fail with the tree from two commits ago.
http://lists.xiph.org/pipermail/opus/2012-November/001834.html
|
|
|
|
|
|
|
| |
Fixes a regression in the recursive builds introduced in 5467ce7b3f8
that causes `make check-opus` to fail horribly.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
celt/celt.c
celt/mdct.c
include/opus_defines.h
src/opus_encoder.c
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Instead use cd inside the makefiles.
This fixes 'make check', etc. with some non-gnu makes. (HPUX, for example)
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we defined the release version string in configure.ac,
and overrode that with 'git describe --tags' if possible. This
made it difficult for non-autoconf builds to set their version
string correctly.
Instead we create, and check into version control, a file called
version.mk which defines OPUS_VERSION. The configure script reads
that file and uses it as a fallback if the git revision isn't available.
The expectation is that version.mk will be manually updated for
releases, just as the previous configure.ac version was. However,
since this is a simpler format, it is easier for alternate build
systems to use, reducing the number of places which must be updated.
Also removes the OPUS_MINOR_VERSION, etc. defines from config.h.
|
| | |
|
| | |
|