1. 28 Jul, 2014 2 commits
    • Erik de Castro Lopo's avatar
      libFLAC/cpu.c : Simplify OS SSE support detection. · 6a28facd
      Erik de Castro Lopo authored
      Simplify the code that tries to detect whether OS supports SSE instructions.
      a) Linux: "old" vs "new" sigaction
      OBSOLETE_SIGCONTEXT_FLAVOR was disabled in Mar 2007 in commit 1ca3a445.
      According to <http://unixhelp.ed.ac.uk/CGI/man-cgi?sigaction>: "Support for
      SA_SIGINFO was added in Linux 2.2" (released in Jan 1999). If noone wants to
      use FLAC with Linux kernel 2.0 then it's safe to delete this code.
      b) MSVC: try/catch vs. sigill_handler
      TRY_CATCH_FLAVOR was enabled in Jan 2009 in commit a832ef32. According to the
      comment in cpu.c, "sigill_handler flavor resulted in several crash reports on
      win32". Also this sigill_handler flavor is not thread-safe.
      c) MinGW: fxsave/fxrestore vs. sigill_handler
      The code was added Mar 2014 in commit 99d5154f. It's better to use FXSR flavor
      instead of sigill_handler flavor. The reasons are the same as for MSVC.
      Patch-from: lvqcl <lvqcl.mail@gmail.com>
    • Erik de Castro Lopo's avatar
      libFLAC : SSE optimisations. · 02591f6b
      Erik de Castro Lopo authored
      Add new function:
      and rewrite function:
      Testing shows noticeable speed increase on Intel Core i3/5/7 (up to 30%
      for -8 mode), AMD Athlon64, Phenom, Bulldozer/Piledriver, but no increase
      or even very small speed decrease (~2% for -8 mode) on Intel Core2.
      Patch-from: lvqcl <lvqcl.mail@gmail.com>
  2. 27 Jul, 2014 4 commits
  3. 26 Jul, 2014 1 commit
  4. 19 Jul, 2014 2 commits
  5. 13 Jul, 2014 4 commits
  6. 09 Jul, 2014 1 commit
  7. 08 Jul, 2014 2 commits
  8. 06 Jul, 2014 3 commits
  9. 04 Jul, 2014 1 commit
    • Miroslav Lichvar's avatar
      stream_encoder : Improve selection of residual accumulator width · f081524c
      Miroslav Lichvar authored and Erik de Castro Lopo's avatar Erik de Castro Lopo committed
      In the precompute_partition_info_sums_ function, instead of selecting
      64-bit accumulator when the signal bps is larger than 16, revert to the
      original approach based on partition size, but make room for few extra
      bits to not overflow with unusual signals where the average residual
      magnitude may be larger than bps.
      It slightly improves the performance with standard encoding levels and
      16-bit files as the 17-bit side channel can still be processed with the
      32-bit accumulator and correctly selects the 64-bit accumulator with
      very large 16-bit partitions.
      This is related to commits 6f7ec60c and 187e596e
      Signed-off-by: Erik de Castro Lopo's avatarErik de Castro Lopo <erikd@mega-nerd.com>
  10. 03 Jul, 2014 5 commits
  11. 02 Jul, 2014 3 commits
  12. 01 Jul, 2014 2 commits
    • Erik de Castro Lopo's avatar
      test_libFLAC/md5.c : Fix the tests. · 74d81333
      Erik de Castro Lopo authored
      The previous version of this test worked on amd64 and powerpc64 but
      failed on armhf. Investigation show that the previous version of the
      test data was generated for a case where the ARRAY_LEN macro was
      exploiting undefined behaviour.
      Fix was ditching the ARRAY_LEN macro and then recalculating the
      target data.
    • Erik de Castro Lopo's avatar
      test_libFLAC/endswap.c : Improvements. · c69a2094
      Erik de Castro Lopo authored
      * Print endian-ness of test host.
      * Replace ugly macro with C code.
      * Add tests for H2LE_16 and H2LE_32 macros.
  13. 30 Jun, 2014 2 commits
  14. 29 Jun, 2014 5 commits
  15. 28 Jun, 2014 3 commits
    • Erik de Castro Lopo's avatar
      libFLAC/bitmath : Restore an ASSERT that was removed some time after 1.2.1. · a8567d4b
      Erik de Castro Lopo authored
      Restore a FLAC__ASSERT() to bitmath functions FLAC__bitmath_ilog2 and
      FLAC__bitmath_ilog2_wide functions. This prevents the return of an
      "undefined" value.
      Patch-from: lvqcl <lvqcl.mail@gmail.com>
    • Erik de Castro Lopo's avatar
      libFLAC/lpc_intrin_sseN.c : Disambiguate macro names. · 9aa15464
      Erik de Castro Lopo authored
      Previously, the files lpc_intrin_sse2.c and lpc_intrin_sse41.c both defined
      macros RESIDUAL_RESULT and DATA_RESULT. This situation made it impossible
      to merge these files which we may do at some stage.
      Patch-from: lvqcl <lvqcl.mail@gmail.com>
    • Erik de Castro Lopo's avatar
      libFLAC: CPUID detecion improvements. · 2c150525
      Erik de Castro Lopo authored
      According to docs, it's incorrect to just call CPUID with EAX=1.
      One must to ensure that this value is supported.
      CPUs that don't support CPUID level 1 are very old, but...
      if FLAC tests CPUID presence it should also test CPUID level support.
      Also the function FLAC__cpu_have_cpuid_asm_ia32 was simplified
      according to the docs at Intel website and in Wikipedia.
      Patch-from: lvqcl <lvqcl.mail@gmail.com>