Commit Graph

528 Commits

Author SHA1 Message Date
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
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
Miroslav Lichvar
a43f56c0b2 Update library version-info. 2012-12-04 17:45:51 +11:00
Miroslav Lichvar
19c78e58d7 Hide symbols with gcc.
With gcc >= 4 and ELF, set default visibility to hidden and make visible
only the symbols with FLAC_API or FLACPP_API.

A convenience libFLAC-static.la is created for test_libFLAC as it
depends on the hidden symbols.
2012-12-04 17:45:06 +11:00
Erik de Castro Lopo
b21f190861 Add a convenience function to create a Metadata::Padding object with a
certain size in one statement.

Patch from Bastiaan Timmer <basjetimmer@yahoo.com>
2012-09-11 15:52:24 +10: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
Bastiaan Timmer
1294b64996 Adds last functions from C metadata api to C++ metadata api
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2012-06-22 14:35:07 +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
Bastiaan Timmer
04ca6fd9e1 Quick patch to fix FLAC_metadata_object api docs.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2012-06-08 19:58:41 +10:00
Erik de Castro Lopo
601e96102c Add missing functions to VorbisComment class.
Patch from Bastiaan Timmer <basjetimmer@yahoo.com> sent to the
<flac-dev@xiph.org> mailing list.
2012-05-08 19:12:58 +10:00
Erik de Castro Lopo
d9fde55674 Fix all links to libtool version info rules. 2012-05-07 19:45:23 +10:00
Erik de Castro Lopo
cd9053cd31 Add functionality present in the C library to the to C++ SeekTable class.
Patch from Bastiaan Timmer <basjetimmer@yahoo.com> sent to the
<flac-dev@xiph.org> mailing list.
2012-05-07 19:22:37 +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
Cristian Rodríguez
9b7cb22f84 Update and improve autotools build
- INCLUDES is deprecated, and CPPFLAGS is an user-defined
  variable, use the proper AM_CPPFLAGS instead

- Remove FLAC__INLINE definition, providing proper
  replacement for MSVC compilers.

- Detect if we have C99 's lround and provide a replacement
  for windows...
2012-04-08 09:03:03 +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
c506b2f43e include/FLAC/ordinals.h : Remove CPP hackery.
This change assumes that a C99 <stdint.h> header is available. For
compilers where that is not the case, the user should provide a
minimal replacement header.
2012-02-10 19:19:11 +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
Erik de Castro Lopo
6184fd7452 include/share/Makefile.am : Add compat.h to EXTRA_DIST. 2012-02-05 09:21:29 +11:00
Erik de Castro Lopo
59afe36f71 Add file include/share/compat.h and start moving CPP hackery into it. 2012-02-04 16:13:37 +11:00
Erik de Castro Lopo
6b3b137099 Fix a couple of -Winline warnings. 2012-02-01 19:49:54 +11:00
Josh Coalson
c2593cc1bd license must be BSD since it is used by libFLAC 2009-10-05 18:45:10 +00:00
Josh Coalson
dea0f5a044 add 2009 copyright 2009-01-07 07:31:28 +00:00
Josh Coalson
c9ed238c3d Allow MM:SS:FF and MM:SS.SS time formats in non-CD-DA cuesheets (SF#1947353, SF#2182432: https://sourceforge.net/tracker2/?func=detail&aid=1947353&group_id=13478&atid=363478 https://sourceforge.net/tracker2/index.php?func=detail&aid=2182432&group_id=13478&atid=113478) 2009-01-07 07:03:17 +00:00
Josh Coalson
0915a551eb Fixes for Sun Studio/Forte; us AC_C_INLINE to detect inline keyword for compiler; eliminate floating point calcs in RG analysis array size calculations (SF#1701960: https://sourceforge.net/tracker2/?func=detail&aid=1701960&group_id=13478&atid=313478) 2009-01-03 02:13:17 +00:00
Josh Coalson
8e28e43b25 remove some inlining directives 2009-01-03 02:10:18 +00:00
Josh Coalson
290c3f7a14 better check for stdint.h 2008-11-29 21:01:20 +00:00
Josh Coalson
1be89c498d add FLAC__format_blocksize_is_subset() 2008-05-27 05:19:52 +00:00
Josh Coalson
82b128050e update copyright for 2008 2008-02-28 05:34:21 +00:00
Josh Coalson
841fdd30a6 bump libtool version numbers 2007-09-15 01:08:15 +00:00
Josh Coalson
504dcafeb4 minor comments 2007-09-13 15:42:47 +00:00
Josh Coalson
9f28b59ce1 minor comments 2007-09-13 00:37:50 +00:00
Josh Coalson
8679516bc5 add link to new example code page 2007-09-13 00:36:43 +00:00
Josh Coalson
8c4ac1dcb7 msvc fixes 2007-09-12 05:28:48 +00:00
Josh Coalson
4d20d894dd inline all safe alloc funcs 2007-09-12 01:04:24 +00:00
Josh Coalson
7fb67ac1e4 add not about OPT: sections 2007-09-12 01:03:57 +00:00
Josh Coalson
0221d87c89 handle SIZE_T_MAX 2007-09-11 04:46:34 +00:00
Josh Coalson
582e675d67 remove unnecessary #includes 2007-09-11 00:26:07 +00:00
Josh Coalson
223b9cae7d add alloc.h 2007-09-10 05:58:43 +00:00
Josh Coalson
17af340739 fix #include for off_t (SF#1786225: https://sourceforge.net/tracker/index.php?func=detail&aid=1786225&group_id=13478&atid=313478) 2007-09-08 22:49:07 +00:00
Josh Coalson
367c1587f5 add --disable-cpplibs configure option (SF#1723295: https://sourceforge.net/tracker/index.php?func=detail&aid=1723295&group_id=13478&atid=313478 2007-08-29 05:45:19 +00:00
Josh Coalson
a8bd44b80e #include for off_t, minor comments 2007-08-21 08:07:29 +00:00
Josh Coalson
4e56b06d63 add FLAC__metadata_simple_iterator_get_application_id() 2007-08-15 05:59:09 +00:00
Josh Coalson
09ccf20ae6 add FLAC__metadata_simple_iterator_get_block_offset(), FLAC__metadata_simple_iterator_get_block_length(), FLAC__metadata_simple_iterator_is_last() 2007-08-14 00:34:50 +00:00
Josh Coalson
c90a5cad24 bump libtool number in prep for release 2007-07-10 02:09:38 +00:00
Josh Coalson
1296cb8f19 add porting guide item for 1.1.4->1.2.0 2007-07-07 07:02:11 +00:00
Josh Coalson
b47ab0d250 merge decoder part from RICE_EXT_BRANCH: blocking strategy bit, new rice2 ecm, frame header support for 88.2/176.4/192kHz, new reserved bit, deprecated blocksize-from-streaminfo bit 2007-06-16 00:50:28 +00:00
Josh Coalson
62cb525f3a *** empty log message *** 2007-06-14 06:17:57 +00:00
Josh Coalson
a4f93918cd add FLAC::Decoder::Stream::get_decode_position() 2007-04-05 00:49:41 +00:00
Josh Coalson
2258fa8ec9 add FLAC__format_sample_rate_is_subset() 2007-03-30 01:02:40 +00:00
Josh Coalson
d67319f240 add porting item for 1.1.4 2007-02-14 05:59:47 +00:00
Josh Coalson
4296e1a40a bump libtool .so revision number 2007-02-14 05:59:09 +00:00