Commit graph

142 commits

Author SHA1 Message Date
sezero
484af2580b
configure: adjust x86 get cpu info inline assembly method for PIC case
.. just like the way it is done in celt/x86/x86cpu.c.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2020-07-07 23:10:17 -04:00
Jean-Marc Valin
e85ed7726d
Bump LT version
Adding the OPUS_GET_IN_DTX() query
2019-04-12 16:26:57 -04:00
Jean-Marc Valin
83d5155f15
Bump LT version numbers
We're adding the ambisonics API
2018-10-16 19:44:13 -04:00
Jean-Marc Valin
c6d977a966
Clarify configure --help 2018-09-14 13:13:13 -04:00
Jean-Marc Valin
722a66b84b
Remove ambisonics experimental flag 2018-07-26 19:49:35 -04:00
Jean-Marc Valin
ac044500cc
Enable ambisonics by default 2018-07-26 09:56:12 -04:00
Jean-Marc Valin
2c0061c19b
Enable hardening by default 2018-07-26 01:01:33 -04:00
Jean-Marc Valin
ef203135b4
Adding ENABLE_HARDENING
Enables "safes" assertions even with ENABLE_ASSERTIONS isn't set
2018-03-27 15:13:25 -04:00
Jean-Marc Valin
e1c0770a49
Don't enable -fstack-protector-strong on Windows for now
It adds a libssp-0.dll dependency and prevents static linking
2018-03-02 15:08:21 -05:00
Jean-Marc Valin
610c14ce80
Adding -D_FORTIFY_SOURCE=2 when possible 2018-02-22 17:18:57 -05:00
Jean-Marc Valin
76d966f436
Enable -fstack-protector-strong by default on x86
The size overhead seems to be about 1% and the speed overhead is
"in the noise" (<2%).
The automake code is copied from opus-tools
2018-02-22 15:51:25 -05:00
Jean-Marc Valin
d8b1fd4ad0
Enable RFC 8251 changes by default 2017-10-29 01:01:35 -04:00
Ralph Giles
9f7e7c8ce0 Fix configure output formatting.
Put the colon ':' before the continuation dots like all the
other entries.
2017-10-23 12:50:14 -07:00
Alexander Kochetkov
ec29ffd944
Fix typo with NE10 prefix
Prefix passed using '--with-NE10=PFX' not used as NE10 include path.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: Ralph Giles <giles@thaumas.net>
2017-09-11 09:18:54 -07:00
Jean-Marc Valin
defbc370ec
bump LT revision 2017-06-26 14:04:09 -04:00
Jean-Marc Valin
352786c9cb
bump LT version numbers 2017-06-19 16:32:23 -04:00
Michael Bradshaw
c930cc57d2
Reduce the scope of Ne10 includes
libopus only uses the DSP module of Ne10, and never uses the init functions.

Signed-off-by: Michael Bradshaw <mjbshaw@google.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-02-15 16:54:06 -05:00
Felicia Lim
32b302c495
Add --enable-check-asm
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-01-23 13:22:27 -05:00
Mark Harris
aef475641a
configure: Improve error message 2017-01-18 00:13:37 -08:00
Chris Rudmin
19b13443b3 Fix error message
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2017-01-09 11:23:58 -08:00
Jean-Marc Valin
80052fe3cc
Fixes NE10 configure problem
As reported by agatx in https://trac.xiph.org/ticket/2291
2016-11-01 18:41:23 -04:00
Ralph Giles
76fa939bde Make use of dot optional in generating documentation.
Different distributions of doxygen have different default
values of HAVE_DOT setting, so we need to pick a specific
setting to avoid 'missing dot' warnings on some platforms.

Doxygen uses it to generate inclusion graphs for our various
header files, which is somewhat useful, but not essential.
We therefore enable dot if it's present (usually through
the parent graphviz package) but disable it if it's not
available, silencing the warning, but not giving uniform
results.
2016-10-27 10:53:27 -07:00
Jean-Marc Valin
12fb15f42b
Add configure option --enable-update-draft 2016-08-31 13:39:59 -04:00
Jean-Marc Valin
03fb50eb37 bump OPUS_LT_REVISION 2016-07-08 14:20:05 -04:00
Timothy B. Terriberry
096f5d3769 Remove tabs from source code.
There are no tabs in source code.
2016-07-06 15:00:02 -07:00
Jonathan Lennox
879736037b Add configure check for Aarch64-specific Neon intrinsics.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:02 -07:00
Jonathan Lennox
87c670dbe1 Clean up formatting of configure output for ARM intrinsics detection.
This makes it match the formatting of the output for ARM assembly
better, and removes some redundant repetition of the word
"intrinsics".  It also fixes the output if a compiler supports RTCD
for Neon intrinsics but not assembly.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:02 -07:00
Jonathan Lennox
92f9c82a8a Clean up some intrinsics-related wording in configure.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:02 -07:00
Jonathan Lennox
6d27902343 Enable intrinsics by default.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:02 -07:00
Jonathan Lennox
920ff71814 Enable Neon intrinsics for aarch64.
Enables existing Neon intrinsic optimizations to work on aarch64
targets.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:01 -07:00
Jonathan Lennox
8cb1487288 Rename OPUS_ARM_NEON_INTR AM_CONDITIONAL as HAVE_ARM_NEON_INTR, for consistency with x86.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:01 -07:00
Michael Graczyk
3925668bbb Add experimental support for ambisonic encoding
The implementation currently only codes each channel independently with no
special allocation rules.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2016-06-29 14:25:30 -04:00
Jonathan Lennox
dc92dab20a Modify autoconf tests for intrinsics to stop clang from optimizing them away.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2016-05-31 17:55:28 -04:00
Jean-Marc Valin
9efa779bbe bump libtool revision for 1.1.2 2016-01-12 13:13:13 -05:00
Jean-Marc Valin
b24c097948 bump libtool revision 2015-11-26 10:42:46 -05:00
Radu Velea
1632152b83 Adding AVX config switches
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-11-05 01:23:05 -08:00
Timothy B. Terriberry
57842da5e8 configure: Remove empty else clauses from AS_IF
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.
2015-10-16 13:02:24 -07:00
Viswanath Puttagunta
ba8713ccb5 armv7: Optimize fixed point FFT using NE10 library
Uses NEON optimized fixed point FFT routines in NE10 library.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-10-07 18:09:20 -04:00
Viswanath Puttagunta
f48abe8308 armv7(float): Optimize encode usecase using NE10 library
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>
2015-10-07 18:09:20 -04:00
Jonathan Lennox
43120f0075 Reorganize x86 SSE intrinsics code.
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.
2015-09-01 17:21:31 -04:00
Jonathan Lennox
cb0875e07d Move SSE2 and SSE4.1 intrinsics functions to separate files, to be compiled 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. 2015-09-01 17:21:31 -04:00
Jonathan Lennox
ee6ec6349e Fix instruction used for cpuid test. 2015-09-01 17:21:31 -04:00
Jonathan Lennox
b4aa5dc858 Reorganize configure's detection of intrinsics functions:
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.
2015-09-01 17:21:31 -04:00
Viswanath Puttagunta
0b0a2b4d06 armv7: celt_pitch_xcorr: Introduce ARM NEON intrinsics
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>
2014-12-25 14:36:46 -08:00
Ron
7424bb0a24 Fix the quoting of AC_LANG_PROGRAM
It was under-quoted in c95c9a048f, which
leads to a flood of warnings when it gets incorrectly expanded, like:

configure.ac:354: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
2014-12-20 19:46:20 +10:30
xiangmingzhu
c95c9a048f Cisco optimization for x86 & fixed point
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>
2014-10-03 21:16:00 -04:00
Martin Storsjo
76e831d917 Make the arm2gnu.pl converter handle apple specific details
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>
2014-03-19 16:33:03 -07:00
Peter Korsgaard
253e15f7e8 configure.ac: fix bashism in ARM optimization handling
Breaks configure when /bin/sh isn't bash with:

configure: Trying to force-enable ARMv6 media instructions...
checking if assembler supports ARMv6 media instructions on ARM... yes
configure: Trying to force-enable NEON instructions...
checking if assembler supports NEON instructions on ARM... yes
./configure.lineno: 12799: Bad substitution

Fix it by using the %% expansion to remove everything from the first
space instead.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-12-17 00:22:42 -05:00
Jean-Marc Valin
65471dd567 Bump soname 2013-12-04 18:26:45 -05:00
Jean-Marc Valin
17dcb27026 Revert "Disables assembly optimizations by default because of several problems reported"
This reverts commit 2446445b15.
2013-12-03 13:31:24 -05:00