Commit Graph

952 Commits

Author SHA1 Message Date
Erik de Castro Lopo
84c3e3d52c Add CPU features (sse3, ssse3) detection code for x86-64.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2013-09-15 09:46:20 +10:00
Erik de Castro Lopo
d11c66ffce bitmath.h : Minor improvements.
This is part of a larger patch from lvqcl.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2013-09-08 12:15:57 +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
c532d34c11 MSVS : Define _USE_MATH_DEFINES.
MSVS does defined the M_LN2 constant in <math.h> but only makes it
visible if _USE_MATH_DEFINES is defined.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2013-09-07 22:00:23 +10:00
Erik de Castro Lopo
9e392706c9 MSVS : Add FLAC__ALIGN_MALLOC_DATA definition for MSVS projects.
A preprocessor macro FLAC__ALIGN_MALLOC_DATA is defined in the Makefiles
but absent in *.vcproj files. This patch adds it to libFLAC_static.vcproj
and libFLAC_dynamic.vcproj.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2013-09-07 21:58:11 +10:00
Erik de Castro Lopo
deb209906c Add ASM function FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16.
For the 32 bit x86 ASM functions there were already versions of this
function for lags (N = 4, 8, 12). They require lpc_order less than N.
The best compression preset (flac -8) uses lpc_order up to 12; it
means that during encoding FLAC also uses unaccelerated C function.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-08-31 13:53:37 +10:00
Erik de Castro Lopo
740eb68f53 src/libFLAC/cpu.c : Remove MSVC6 only code.
Patch from: lvqcl <lvqcl.mail@gmail.com>
2013-08-26 21:45:19 +10:00
Erik de Castro Lopo
3cea079a2f Fix a couple of NASM warnings.
Suggested by Ozkan Sezer <sezeroz@gmail.com>.
2013-08-13 19:30:24 +10:00
Erik de Castro Lopo
7050033b8f src/libFLAC/ia32/nasm.h : Fix nasm warning on windows.
Patch from Ozkan Sezer <sezeroz@gmail.com>.
2013-08-13 19:30:21 +10:00
Erik de Castro Lopo
187e596e4c stream_encoder.c : Improve fix for arithmetic overflow.
Only use the 32 bit accumulator if the input data is 16 bits or less.
2013-08-02 06:21:02 +10:00
Erik de Castro Lopo
f34f31dac0 stream_encoder.c : Improve fix for arithmetic overflow.
The previous fix (patch 6f7ec60c) had the undesireable effect of slowing
down encoding speed on 16 bit files where the arithmetic overflow was
less likely to happen.

This fix forces the use of a FLAC__uint64 accumulator for 24 bit files
and restores the use of a FLAC_uint32 accumulator for 16 (and less) bit
files.

Unfortunately, I have not been able to prove to myself that this overflow
*cannot* happen with 16 bit files.
2013-07-21 21:05:31 +10:00
Cristian Rodríguez
355f4aae47 Link with -no-undefined regardless of the OS
libFLAC* must never have undefined symbols no matter
what is the target platform.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-07-21 19:51:08 +10:00
Erik de Castro Lopo
33c23b3dfa src/libFLAC/bitwriter.c : Remove dead code. 2013-07-17 20:18:46 +10:00
Erik de Castro Lopo
6f7ec60c7e stream_encoder.c : Fix an arithmetic overflow in the RICE2 partitioner.
For a specific 24 bit WAV file provided by Leigh Dyer

    http://lists.xiph.org/pipermail/flac-dev/2013-July/004284.html

encoding with compression level 7 was generating a file a couple of
orders of magintude larger than the original.

Debugging showed that variable abs_residual_partition_sum (a FLAC__uint32)
in function precompute_partition_info_sums_() was suffering from an
arithmetic overflowing on some 24 bit input files although this value
overflowing did not always cause larger output files.

Since the value abs_residual_partition_sum is eventually stored in an
array of FLAC__uint64, it makes sense to make abs_residual_partition_sum
a FLAC__uint64 anyway.

Debugging this problem was made easier by use of the Clang compiler's
-fsanitize=integer option.
2013-07-17 19:42:12 +10:00
Miroslav Lichvar
4eab6313cd Disable FLAC__bitreader_read_rice_signed_block_asm_ia32_bswap.
Don't use the assembly function since it seems to be slower than
the current version of FLAC__bitreader_read_rice_signed_block.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-06-06 19:57:21 +10:00
Dagobert Michelsen
349c6adcf7 Sun Studio can not include static function from extern inline
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-05-27 18:06:51 +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
Ulrich Klauer
d672efaa05 Fix gcc version check for private macros
Use Benjamin Stiglitz' MIN macros from gcc 4.3 (according to the
changelog, __COUNTER__ was introduced in this version). Previously,
the macros weren't used on any existing gcc version; the first one
would have been 5.5.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-05-26 08:26:45 +10:00
Robert Kausch
411ba53c7b bitwriter.c : Add missing "extern" declaration
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-05-26 07:42:22 +10:00
Robert Kausch
bb79a59a9f Fix mistyped variable name
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-05-26 07:42:19 +10:00
Ulrich Klauer
c9f05ed210 Correctly initialize FLAC_API_SUPPORTS_OGG_FLAC
Commits a7e3705d05 and
a4c321e492, while trying to simplify how
the FLAC_API_SUPPORTS_OGG_FLAC global variable was initialized,
inadvertently caused it to be always set to false, whether Ogg support
was compiled in or not.

This commit reverts the relevant part to how it looked in the 1.2.1
release, which is verbose but correct.

The problem was found by Robert Kausch <robert.kausch@freac.org>.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-05-26 07:42:13 +10:00
Erik de Castro Lopo
1b1d05bb25 Version 1.3.0pre4. 2013-04-28 19:00:30 +10:00
Erik de Castro Lopo
fc21768d44 Fix compile when compiling with FLAC__INTEGER_ONLY_LIBRARY.
Problem reported by Martijn van Beurden <mvanb1@gmail.com>.
2013-04-21 19:51:56 +10:00
Cristian Rodríguez
92db3c951e Ensure AM_LDFLAGS is used consistently
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-04-21 17:26:33 +10:00
Erik de Castro Lopo
2de567fb11 src/libFLAC/include/private/macros.h : Add default MIN/MAX macros. 2013-04-07 20:21:24 +10:00
Erik de Castro Lopo
03a9e6064d src/libFLAC/include/private/macros.h : Check GNUC version for MIN macro. 2013-04-07 20:15:09 +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
6a9a18ff7a For windows, make UTF-8 mode into a runtime choice.
The smaller patch makes the utf-8 library use ANSI codepage by
default. When frontends call the "get_utf8_argv" function it
changes Unicode conversion codepage from ANSI to UTF-8.

Patch from Janne Hyvärinen <cse@sci.fi>.
2013-04-07 13:11:19 +10:00
Ulrich Klauer
5da86630be Fix pkg-config files to avoid overlinking
Libraries that are used internally by libFLAC(++) but are not part of
their API should be listed in pkg-config "private" clauses. Otherwise
executables that are linked dynamically against libFLAC(++) will have
unneeded direct dependencies (overlinking).

Based on a patch by Brad Smith from
  https://sourceforge.net/p/flac/bugs/397/
that I updated to only include ogg if libFLAC is actually built with
ogg support.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2013-04-07 11:03:52 +10:00
Erik de Castro Lopo
ae7eda1815 Rename all parameters and locals from 'index' to 'indx'. 2013-04-05 20:21:22 +11:00
Erik de Castro Lopo
da57d2a48d flac*.pc : Add -logg if configured with Ogg support. 2013-04-02 20:45:54 +11:00
Erik de Castro Lopo
d6218bf3ec MSVC version patch from Janne Hyvärinen <cse@sci.fi>. 2013-04-02 06:34:38 +11:00
Erik de Castro Lopo
0cd2e9ed69 Purge FLAC__STRINGS_IN_UTF8 from VC project files. 2013-04-01 20:01:37 +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
7dc5e3a8ff Rename _flac_stat to flac_stat_s. 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
14c28ae485 Replace a couple of safe_strncpy/cat with snprintf. 2013-03-21 17:28:47 +11:00
Erik de Castro Lopo
2d6354ff2a Replace broken str* functions with safe versions. 2013-03-19 20:23:44 +11:00
Erik de Castro Lopo
c152d1adf9 More Microsoft Visual Studio project file updates.
Patch from Janne Hyvärinen <cse@sci.fi>.
2013-03-18 06:22:57 +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
9edb817dd2 MS VS inline/extern fix from Ben Alison plus comments.
Add explicit extern to functions that are locally declared inline
but which also have non-inline public prototypes.

It seems MS VS does not quite meet the C99 spec (section 6.7.4).
2013-03-12 17:12:07 +11:00
Erik de Castro Lopo
96a5ba7120 Fix -Wshadow warnings. 2013-03-11 06:06:34 +11:00
Erik de Castro Lopo
0a2b901e99 src/libFLAC/include/private/macros.h : Fix flac_min.
The existing flac_min macro was generating -Wshadow compiler warnings
when nested.
2013-03-11 06:06:34 +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
168c258aa3 Purge old un-maintained MSVC 6 project files. 2013-03-10 11:17:20 +11:00
Erik de Castro Lopo
1ad32efb89 Version 1.3.0pre2. 2013-03-09 22:06:12 +11:00
Erik de Castro Lopo
139ffb090d Fix version number in Visual Studio project files.
Patch from Ben Allison <benski@winamp.com> and tweaked to change
version from 1.3.0 (which hasn't been released yet) to 1.3.0pre1.
2013-03-08 21:06:48 +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
fb13acc457 Revert parts of 96d081c1 that touched source code or autotools files. 2013-01-03 06:25:21 +11:00