Commit Graph

487 Commits

Author SHA1 Message Date
Ralph Giles
22d4893d28 Fix bswap16 issue on Debian 6.
Versions of GCC prior to 4.8 didn't provide an implementation
of __builtin_bswap16 on x86_64. Detect those versions and
supply a fallback implementation. A cleaner fix would be
to detect bswap16 independently of bswap32 in configure
and handle them separately.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2014-07-03 18:59:49 +10:00
Erik de Castro Lopo
0d1cb19525 include/share/endswap.h : Fix fallback ENDSWAP_16 macro. 2014-06-30 09:20:09 +10:00
Erik de Castro Lopo
699e7c457a include/share/endswap.h : Add endswapping of 16 bit values.
Also add macros H2LE_16 and H2LE_32, which do host to little-endian
swapping of 16 and 32 bit values respectively.
2014-06-29 20:20:06 +10:00
Erik de Castro Lopo
db1619d4f3 Underscore fixes.
* Replace _declspec with __declspec.
* Replace __wgetmainargs_ with __wgetmainargs_t and __wgetmainargs
  with wgetmainargs because identifiers with leading underscores are
  reserved for the compiler.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:17:32 +10:00
Erik de Castro Lopo
46bedb58d3 Update URLs as nedeed.
Sourceforge.net links updated as nedeed with some of them
being changed to point to xiph.org/flac.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:12:45 +10:00
Erik de Castro Lopo
731655ad23 replaygain_analysis : Rename float_t -> flac_float_t.
There were a number of reports that float_t clashed with a type
defined in Linux system header files.
2014-06-24 21:01:02 +10:00
Erik de Castro Lopo
b4f7528e9a replaygain_analysis : Switch to standard C sized integer types. 2014-06-16 07:24:43 +10:00
Erik de Castro Lopo
b1b6caf8e1 replaygain_synthesis.h : Fix FLAC_SHARE__MAX_SUPPORTED_CHANNELS.
Was previously hard coded as 2 when it should be FLAC__MAX_CHANNELS.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-05-11 03:24:32 -07:00
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
3f5208c300 Fix clang compiler warnings.
These were most arising from -Wenum-conversion where an enum of
one type was being assigned to a variable on another.

Originally reported by Lenny Maiorani <lenny@colorado.edu> on the
flac-dev mailing list.
2014-04-09 18:09:03 +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
f5902a474c Fix pragma warning.
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
95552e11ba Fix numerous warnings arising from addition of -Weffc++. 2013-09-15 18:10:55 +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
Ulrich Klauer
cd4ddabe0f Language fix: "difference licenses"
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-05-27 18:08:57 +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
Martijn van Beurden
d4b68b2ba5 Replace dead anchor
This fixes a wrong link (dead anchor) in the Doxygen api documentation

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-05-25 16:56:35 +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
71d630dbba FLAC/ordinals.h : Add <stdint.h> definitions for MSVC < 2010. 2013-03-09 10:25:39 +11:00
Erik de Castro Lopo
ae663c36af FLAC/ordinals.h : Provide links for <stdint.h> replacements. 2013-03-08 21:13:13 +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