Commit Graph

110 Commits

Author SHA1 Message Date
Erik de Castro Lopo
ce3e09e718 share/compat.h : Remove duplicate flac_stat definition.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-04-11 06:14:40 +10:00
Erik de Castro Lopo
006b8356d5 Fix all instances of '#if HAVE_CONFIG_H'.
Should be '#ifdef HAVE_CONFIG_H'.

Closes: https://sourceforge.net/p/flac/bugs/410/
2014-03-24 12:06:49 +11:00
Erik de Castro Lopo
4bc1220b32 Move FLAC__STRCASECMP definition to compat.h.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-03-14 15:33:11 +11:00
Erik de Castro Lopo
d40e986a1e Add FLAC__SSE_SUPPORTED and FLAC__SSE2_SUPPORTED flags.
* Allow compiling using GCC GCC w/o SSE support.
* Allow SSE4.1 intrinsic functions to be enabled.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-01-30 21:49:55 +11:00
Erik de Castro Lopo
b84f07248e compat.h : Simplify definition of FLAC__U64L.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-01-07 21:26:45 +11:00
Erik de Castro Lopo
cf28c0144b Adds use of restrict keyword to improve encoding speed.
Restrict works very poorly in Visual Studio (much slower than without)
so defined flac_restrict in share/compat.h and use that in:

    lpc_compute_residual...()
    lpc_restore_signal...()

As a result, FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41()
offers no advantage for 64-bit compiles and was removed from x86-64 part
of stream_encoder.c

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2013-10-10 18:24:19 +11:00
Erik de Castro Lopo
ecd0acba75 Improve x86 instrinsic implementation.
* Splits lpc_x86intrin.c to lpc_intrin_sse.c and lpc_intrin_sse2.c
* Add FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2()
  function to lpc_intrin_sse2.c
* Add lpc_intrin_sse41.c with two ..._wide_intrin_sse41() functions
  (useful for 24-bit en-/decoding)
* Add precompute_partition_info_sums_intrin_sse2() / ...ssse3() and
  disables precompute_partition_info_sums_32bit_asm_ia32_().
  SSE2 version uses 4 SSE2 instructions instead of 1 SSSE3 instruction
  PABSD so it is slightly slower.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2013-10-04 01:41:48 +10:00
Erik de Castro Lopo
31a79d7e9a Move M_PI definition to include/share/compat.h.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2013-09-27 03:05:06 +10:00
Erik de Castro Lopo
ce6832bb62 Move defintion of M_LN2 to include/share/compat.h. 2013-09-07 22:00:23 +10:00
Erik de Castro Lopo
3ece67d71f include/share/compat.h : Remove deinition of restrict.
Wasn't being used anywhere in the code and clashes with a symbol in
MSVC.

Suggested-by: lvqcl <lvqcl.mail@gmail.com>
2013-09-01 10:32:52 +10:00
Erik de Castro Lopo
b1982fbc5f Set version to 1.3.0 and update coyprights throughout. 2013-05-26 19:17:53 +10:00
Erik de Castro Lopo
52fab8ba7e Win utf8 treatment for CreateFile.
Patch from Janne Hyvärinen <cse@sci.fi>.
2013-04-21 17:53:07 +10:00
Erik de Castro Lopo
0b736a5605 Fix compiler warnings related to win utf8 stuff. 2013-04-21 17:24:59 +10:00
Erik de Castro Lopo
d35b21e7b9 include/share/compat.h : Include cleanup.
Patch from Janne Hyvärinen <cse@sci.fi>.
2013-04-07 18:41:24 +10:00
Erik de Castro Lopo
e8d7b7f5f9 Fix Windows SIZE_T_MAX definition.
Problem reported by Ulrich Klauer <ulrich@chirlu.de>.
Patch from Janne Hyvärinen <cse@sci.fi>.
2013-04-07 18:12:35 +10:00
Erik de Castro Lopo
b9574fe589 Fix a bunch of compiler warnings (mainly MinGW). 2013-04-07 13:44:45 +10:00
Erik de Castro Lopo
f44c353e59 Two small patches for utf8 I/O.
Thanks to LRN <lrn1986@gmail.com>.
2013-04-02 06:27:12 +11:00
Erik de Castro Lopo
c7603948de include/share/Makefile.am : Add win_utf8_io.h. 2013-04-02 06:05:47 +11:00
Erik de Castro Lopo
932c7ba26c Purge more strcpy/strcat usage. 2013-04-01 22:00:59 +11:00
Erik de Castro Lopo
2199d08692 Enable utf8 I/O stuff when compiling with MinGW. 2013-04-01 19:57:13 +11:00
Erik de Castro Lopo
b3dab5416d include/share/compat.h : Cleanup. 2013-03-29 21:25:59 +11:00
Erik de Castro Lopo
7dc5e3a8ff Rename _flac_stat to flac_stat_s. 2013-03-29 21:25:59 +11:00
Erik de Castro Lopo
608e246f52 Rename all 'utf8_io' -> 'win_utf8_io'. 2013-03-29 21:25:59 +11:00
Erik de Castro Lopo
5705b4d7b2 Huge Windows utf8 I/O patch.
Patch from Janne Hyvärinen <cse@sci.fi>.
2013-03-29 21:25:59 +11:00
Erik de Castro Lopo
9a93680d2b include/share/compat.h : Simplify. 2013-03-23 22:02:56 +11:00
Erik de Castro Lopo
15a011c43d Add new file include/share/safe_str.h.
New functions safe_strncat() and safe_strncpy() which always return
a NUL terminated string and do not overflow the destination buffer.
2013-03-19 20:15:49 +11:00
Erik de Castro Lopo
5a14742dad include/share/private.h : Add FLAC_API to private functions.
Patch from Janne Hyvärinen <cse@sci.fi>.
2013-03-17 22:04:43 +11:00
Erik de Castro Lopo
06af237c70 Add file src/share/grabbag/snprintf.c to grabbag library.
Define function flac_snprintf() which has ISO C99 snprintf() behavior
even when compiling with Microsoft Visual Studio, by wrapping the
MSVS snprintf_s() function.
2013-03-17 20:52:04 +11:00
Erik de Castro Lopo
ca7a3cb822 Restore code dropped in commit f25b2602dc. 2013-03-15 06:37:59 +11:00
Erik de Castro Lopo
f25b2602dc Fix a couple of Windows 2Gig file size issues.
Patch submitted by Janne Hyvärinen <cse@sci.fi>.
2013-03-14 18:22:37 +11:00
Erik de Castro Lopo
dd1fa80883 Fix -Wstrict-prototypes -Wmissing-prototypes warnings.
The files src/flac/encode.c and src/libFLAC/stream_encoder.c use
functions in libFLAC that are marked as 'unpublished debug routines'.
This patch moves these functions to new file include/share/private.h
and marks them as 'unpublished debug routines'.
2013-03-11 06:06:33 +11:00
Erik de Castro Lopo
b85cc57d73 include/share/compat.h : feeko and ftello fixes for MinGW.
Patch from LRN <lrn1986@gmail.com>.
2013-03-10 18:38:07 +11:00
Erik de Castro Lopo
fd6b192d25 Another MSVC patch from Ben Alison. 2013-03-08 20:47:43 +11:00
Erik de Castro Lopo
a4c321e492 Large patch from Ben Allison fixing the MSVC build.
Patch tweaked a little to fix Linux build and clean up minor problems.
2013-03-06 22:17:51 +11:00
Erik de Castro Lopo
91790ef965 Fix compiler warnings from new compiler flags. 2013-03-06 07:42:08 +11:00
Erik de Castro Lopo
b104c6d8af include/share/compat.h : For MSVC define inline as __inline. 2013-01-26 10:11:39 +11:00
Max Horn
66c0a581d2 autogen.sh: replace this by a simple call to autoreconf
The autoreconf tool is provided by autoconf to do what custom
autogen.sh scripts in many projects used to do. Only it is more
robust and widely tested. It has been available for several years,
too. No reason to rely on custom code for this.

Signed-off-by: Max Horn <max@quendi.de>
2012-12-13 08:12:14 +11:00
Miroslav Lichvar
6a1f59b58f Update FSF address. 2012-12-06 06:17:26 +11:00
Erik de Castro Lopo
a7e3705d05 Move code inside #ifdef _MSC_VER to compat.h. 2012-06-22 16:03:04 +10:00
Erik de Castro Lopo
5b62b770bc Move all definitions of FLAC__U64L to one place. 2012-06-22 14:52:53 +10:00
Erik de Castro Lopo
8749dc278d Fix building when configured with --disable-shared.
The problem was that the function safe_malloc_mul_2op_() was originally
defined as static inline in inclide/share/alloc.h but had to be moved
because GCC was refusing to inline it. Once moved however, static linking
would fail when building the flac executable because the function ended
up beiong linked twice.
2012-06-22 14:23:56 +10:00
Cristian Rodríguez
c2417da842 replace local_strtoull with _strtoui64 in windows
Previous patch replaced the other local_strtoll with _strtoi64
2012-04-18 22:00:59 +10:00
Cristian Rodríguez
7e62afe9fa Remove local_strtoull, windows has equivalent function _strtoui64 2012-04-18 21:59:11 +10:00
Erik de Castro Lopo
2f8b6a0349 Rename ENDSWAP_INT to ENDSWAP_32. 2012-03-05 21:12:20 +11:00
Erik de Castro Lopo
b48909780b Fix a couple 'inlining failed' warning messages. 2012-02-26 20:00:36 +11:00
Earl Chew
0554a4aee6 Support 56kHz to 19.2kHz gain analysis (Patch v4)
This implementation uses decimation to generate an estimate of the
required ReplayGain adjustment for tracks sampled at high rates.

This approach avoids having to generate filters with commensurately more taps,
and also the subsequent effect on performance as these additional
taps are evaluated for high sample rate tracks.

Filter table entries with coefficients that are unchanged are
marked /* ORIGINAL */.

The remaining entries are new and have coefficient values obtained
from src/utils/loudness/loudness.sci. See:

        http://lists.xiph.org/pipermail/flac-dev/2012-February/003220.html

Because these filter coefficients can be generated from a known source,
they are preferred to the FooBar2000 coefficients whose provenance is
unknown.

Signed-off-by: Earl Chew <earl_chew@yahoo.com>
2012-02-26 12:19:56 +11:00
Erik de Castro Lopo
3789c44e14 Remove '#if 0'-ed out code. 2012-02-17 18:00:10 +11:00
Erik de Castro Lopo
587e118bfc Fix a bunch of -Wtype-limits warnings. 2012-02-17 17:52:12 +11:00
Erik de Castro Lopo
d7bfc779c8 Add XIPH_BSWAP32 configure macro to detect __builtin_bswap32() intrinsic. 2012-02-06 07:15:48 +11:00
Erik de Castro Lopo
a5d1d4f0c5 Improve endswapping (especially purge ntohl). 2012-02-05 11:24:14 +11:00