Skip to content
Snippets Groups Projects
  1. Jul 06, 2016
  2. May 18, 2016
  3. Oct 07, 2015
    • Viswanath Puttagunta's avatar
      armv7(float): Optimize encode usecase using NE10 library · f48abe83
      Viswanath Puttagunta authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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: default avatarTimothy B. Terriberry <tterribe@xiph.org>
      f48abe83
    • Timothy B. Terriberry's avatar
      Move the external ARM asm to a separate library. · 0fe51435
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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>.
      0fe51435
  4. Sep 01, 2015
    • Jonathan Lennox's avatar
      Reorganize x86 SSE intrinsics code. · 43120f00
      Jonathan Lennox authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      43120f00
    • Jonathan Lennox's avatar
      Move SSE2 and SSE4.1 intrinsics functions to separate files, to be compiled... · cb0875e0
      Jonathan Lennox authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      cb0875e0
    • Jonathan Lennox's avatar
      Reorganize configure's detection of intrinsics functions: · b4aa5dc8
      Jonathan Lennox authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      b4aa5dc8
  5. Feb 11, 2015
  6. Dec 25, 2014
  7. Oct 12, 2014
  8. Oct 04, 2014
  9. Mar 26, 2014
    • Timothy B. Terriberry's avatar
      Fix iOS builds with assembly. · 4ae4bc61
      Timothy B. Terriberry authored
      The patch in 76e831d9 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.
      4ae4bc61
  10. Mar 19, 2014
  11. Nov 19, 2013
    • Ron's avatar
      More make dist fixes · 135d1c98
      Ron authored
      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.
      135d1c98
    • Ralph Giles's avatar
      Fix 'make distclean'. · d5cb0630
      Ralph Giles authored
      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.
      d5cb0630
  12. Nov 18, 2013
  13. Nov 04, 2013
  14. Sep 06, 2013
  15. Jul 02, 2013
  16. Jun 29, 2013
  17. Jun 28, 2013
    • Ron's avatar
      More autoconf housekeeping · 5bac4f26
      Ron authored
      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).
      5bac4f26
  18. Jun 27, 2013
  19. Jun 04, 2013
  20. May 26, 2013
  21. May 20, 2013
    • Ron's avatar
      Add support for autoconf macros in m4/ · 50b395bf
      Ron authored
      Needed by commit 972a34ec.
      
      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.
      50b395bf
  22. May 10, 2013
    • Ron's avatar
      Don't fail hard if package_version does not exist · 8d925ec2
      Ron authored
      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.
      8d925ec2
    • Ron's avatar
      Fully automate version updating · 2f2f9d63
      Ron authored
      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.
      2f2f9d63
  23. Dec 01, 2012
  24. Oct 19, 2012
  25. Sep 01, 2012
  26. Aug 30, 2012
  27. Aug 29, 2012
  28. Aug 19, 2012
  29. Aug 16, 2012
    • Ralph Giles's avatar
      Move the release version string to version.mk. · 59c5a82e
      Ralph Giles authored
      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.
      59c5a82e
  30. Aug 10, 2012
  31. Aug 09, 2012
  32. Aug 08, 2012
  33. Jul 13, 2012
Loading