| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes FLAC__lpc_restore_signal_16_intrin_sse2().
It's faster than C code, but not faster than MMX-accelerated
ASM functions. It's also slower than the new SSE4.1 functions
that were added by the previous patch.
So this function wasn't very useful before, and now it's
even less useful. I don't see a reason to keep it.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Accelerates decoding of non-Subset 24-bit FLAC files (where lpc_order
> 12).
The improved function is FLAC__lpc_restore_signal_wide_intrin_sse41().
It requires SSE4.1 and it's used only by 32-bit libFLAC.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
|
|
|
|
| |
Patch-from: lvqcl <lvqcl.mail@gmail.com>
|
|
|
|
|
| |
CPP is minefield. We should simplify CPP wherever possible and work
to minimise nesting.
|
|
|
|
|
|
| |
GCC version 4.6 was throwing an error on `__has_attribute` which
seems to be Clang specific. Solution was to un-nest the CPP code
so that Clang is confirmed before the `__has_attribute` is hit.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When encoding a 24 bit multichannel W64 file on a 32 bit system, a
calculation could overflow resulting in a "got partial sample"
error and early termination of the encoding process.
The fix was to replace the cast to `size_t` (which is only 32 bits
on a 32 bit system) with a cast to `uin64_t`.
Thanks to Janne Hyvärinen for helping to track down the problem.
Closes: https://sourceforge.net/p/flac/bugs/453
|
|
|
|
| |
Patch-from: <lvqcl.mail@gmail.com>
|
|
|
|
|
|
|
|
|
| |
The underscores are wrong. The comment is also correct.
Also remove the configure.ac option. Otherwise it tries to compile the
windows unicode stuff which POSIX(cygwin) does not understand.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace
a = _mm_alignr_epi8(b, a, n);
with
a = _mm_alignr_epi8(a, b, n);
The resulting code is very slightly faster and the binaries slightly
smaller.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
|
|
|
|
| |
Patch-from: lvqcl <lvqcl.mail@gmail.com>
|
|
|
|
|
|
| |
Previously this function would abort or crash if passed `NULL` for
the encoder. Now it just returns without crashing or aborting which
is far more sane behaviour (ie much like FLAC__stream_encoder_delete).
|
|
|
|
|
|
|
|
|
| |
* Furthermore, use NDEBUG globally to detect the presence
of building with more debug output information.
AX_CHECK_ENABLE_DEBUG is easier to use, and nowadays
Gnome has also switched to it from its own custom solution.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
|
|
|
| |
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
|
|
|
|
|
| |
This version should be logically identical to the previous version
but prevents a false-positive from the cppcheck static analysis
tool.
|
|
|
|
|
|
|
| |
This adds a new msvc2005_int.h header file which is "force included"
as needed by the MSVS project file.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
|
|
|
|
|
|
|
| |
* Remove <stdint.h> because MSVC 2005 (and probably 2008) don't have it.
* Fix pointer difference caclulation between `nameend` and `nextchar`.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
|
|
|
|
| |
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
|
|
|
| |
Found using the Makefile.lite build system.
|
| |
|
|
|
|
|
|
|
| |
The orignal code had `unsigned long` inside `#ifdef MSVC`. It was then changed
to `uint64_t` which was incorrect because on Windows `sizze long == 4`.
Change it now to `uint32_t` which is always correct regardless of OS, compiler
or architecture.
|
|
|
|
|
|
| |
cpu.c was the only source to use memory.h instead of string.h.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
|
|
|
|
|
| |
* This is required, as otherwise -Wl,--as-needed could fail.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
|
|
|
| |
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|
|
|
|
|
|
|
| |
As pointed out by Ozkan Sezer, on some platforms `int32_t` is actually
a typedef for `long` so `unsigned` cannot be used interchangably with
`FLAC__uint32`. Fix is to switch from `unsigned` to explicit sized ISO
C types defined in <stdint.h>.
|
|
|
|
| |
Patch-from: Christian Weisgerber <naddy@mips.inka.de>
|
|
|
|
|
|
|
| |
As pointed out by github user @randomascii, the `compression_levels_`
struct could and should be const.
Closes: https://github.com/xiph/flac/issues/26
|
|
|
|
|
| |
Patch-from: "lvqcl.mail" <lvqcl.mail@gmail.com>
Closes: https://sourceforge.net/p/flac/bugs/447/
|
|
|
|
| |
Patch-from: Janne Hyvärinen <cse@sci.fi>
|
| |
|
|
|
|
|
| |
Pointed out by c.helmrich@ecodis.de. It was added during debugging
in commit c06a44969, but was never meant to stay.
|
| |
|
|
|
|
| |
Patch-from: Robert Kausch <robert.kausch@freac.org>
|
|
|
|
| |
Patch-from: Robert Kausch <robert.kausch@freac.org>
|
|
|
|
| |
Patch-from: "lvqcl.mail" <lvqcl.mail@gmail.com>
|
|
|
|
|
| |
As pointed out by Evan Ramos there was typo, `32786` instead of
`32768`.
|
|
|
|
|
|
|
| |
Only call `FLAC__cpu_have_cpuid_asm_ia32` if `FLAC__HAS_NASM` is
defined.
Patch-from: "lvqcl.mail" <lvqcl.mail@gmail.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Specifically, FLAC__NO_SSE_OS and FLAC__SSE_OS.
Patch-from: "lvqcl.mail" <lvqcl.mail@gmail.com>
|
|
|
|
| |
Patch-from : lvqcl.mail <lvqcl.mail@gmail.com>
|
|
|
|
|
|
| |
Assume that all OSes that are usable today support SSE.
Patch-from: lvqcl.mail <lvqcl.mail@gmail.com>
|
|
|
|
| |
Patch-from: "lvqcl.mail" <lvqcl.mail@gmail.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a seek table has already been read successfully, then the
has_seek_table flag is true. Now imagine the file comes with another
seek table, which doesn't make sense, but libFLAC accepts it happily.
If reading this second seek table fails (for example allocation
failure), read_metadata_seektable_() returns false, but the
has_seek_table flag is still true. If the calling application happens
to ignore this failure, and at some point tries to seek, the process
will crash due to NULL pointer dereference. This would sure be an
application bug that needs to be fixed, but libFLAC's internal state
is inconsistent, so let's fix this up.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
|