Commit Graph

3440 Commits

Author SHA1 Message Date
Erik de Castro Lopo
491475e61a libFLAC/.../crc.h : Remove un-nneded parens in FLAC__CRC16_UPDATE macro.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-19 18:13:17 +10:00
Erik de Castro Lopo
7251201819 flac/main.c : Improved option validation with --force-raw-format.
Patch-from:  lvqcl <lvqcl.mail@gmail.com>
2014-07-13 20:53:19 +10:00
Erik de Castro Lopo
879a0ce2a5 test/test_flac.sh : Add --force-raw-format as needed.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-13 20:38:59 +10:00
Erik de Castro Lopo
b08c520d33 include/share/endswap.h : Fix default ENDSWAP_16.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-13 20:37:00 +10:00
Erik de Castro Lopo
4a63f10f78 build/config.mk : Define CPU_IS_LITTLE_ENDIAN as needed.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-13 20:35:14 +10:00
Erik de Castro Lopo
31948291a2 Makefile.ams: Add MSVS project files to EXTRA_DIST.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-09 19:02:35 +10:00
Erik de Castro Lopo
1988855b82 test_replaygain.sh : Add --force-raw-format option.
This test was failing due to the lack of this option.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-08 21:12:18 +10:00
Erik de Castro Lopo
9443151da3 src/flac/utils.c : Make sure get_console_width() returns value > 0.
Previous version of get_console_width() may return 0 which will result in
a division by 0 in stats_print_name():

	console_width = get_console_width();
	len = strlen_console(name)+2;
	console_chars_left = console_width  - (len % console_width);

Bug-report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739613
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-08 18:25:19 +10:00
Erik de Castro Lopo
d043785d41 Add project files for Visual Studio 2010 and later.
Also allows building for x86-64 Windows.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-06 20:48:53 +10:00
Erik de Castro Lopo
eb0c5a3792 libFLAC : Remove FLAC__bitreader_read_rice_signed_block_asm_ia32_bswap().
This function was un-used because it showed no speed improvement over the
C version. As a result the bitreader_read_from_client_() function can be
made static again.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-06 20:27:31 +10:00
Erik de Castro Lopo
c43691586a libFLAC : Remove FLAC__precompute_partition_info_sums_32bit_asm_ia32_().
This function offer no speed up from the C version of the function and were
commented out after the release of 1.3.0. We will now drop them completely.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-06 20:21:04 +10:00
Miroslav Lichvar
f081524c19 stream_encoder : Improve selection of residual accumulator width
In the precompute_partition_info_sums_ function, instead of selecting
64-bit accumulator when the signal bps is larger than 16, revert to the
original approach based on partition size, but make room for few extra
bits to not overflow with unusual signals where the average residual
magnitude may be larger than bps.

It slightly improves the performance with standard encoding levels and
16-bit files as the 17-bit side channel can still be processed with the
32-bit accumulator and correctly selects the 64-bit accumulator with
very large 16-bit partitions.

This is related to commits 6f7ec60c and 187e596e.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2014-07-04 21:22:44 +10:00
Erik de Castro Lopo
71246dcc81 test_libFLAC/test_libFLAC.vcproj : One more CPU_IS_LITTLE_ENDIAN fix.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-04 09:02:21 +10:00
Erik de Castro Lopo
5e8854fa84 src/ : Remove un-needed MSVC6 workaround.
MSVC6 was not able to cast from a uint64_t to a double and this
commit removes some #ifdef hackery designed to work around this
problem.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-04 08:32:01 +10:00
Erik de Castro Lopo
eda98c49a8 test_libFLAC/endswap.c : Add casts to prevent compiler warnings. 2014-07-03 20:24:33 +10:00
Erik de Castro Lopo
e51058343b test_libFLAC/test_libFLAC.vcproj : Add define for CPU_IS_LITTLE_ENDIAN. 2014-07-03 19:19:08 +10:00
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
7422e084f4 test_libFLAC : Fix Windows build after addidion of endian tests.
* Use "share/compat.h" instead of <stdint.h>.
* Update test_libFLAC.vcproj project file.
* Update Makefile.lite build system.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-03 05:38:12 +10:00
Erik de Castro Lopo
c6ff539ac0 src/flac/main.c : Improve raw format help text help.
The --endian and --sign options aren't just for raw input, but also
for raw output.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-03 05:35:59 +10:00
Erik de Castro Lopo
08cb913c98 src/flac/encode.c : Fix compression failure warning when encoding from stdin.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-07-02 18:33:33 +10:00
Erik de Castro Lopo
74d8133387 test_libFLAC/md5.c : Fix the tests.
The previous version of this test worked on amd64 and powerpc64 but
failed on armhf. Investigation show that the previous version of the
test data was generated for a case where the ARRAY_LEN macro was
exploiting undefined behaviour.
Fix was ditching the ARRAY_LEN macro and then recalculating the
target data.
2014-07-01 13:05:24 +10:00
Erik de Castro Lopo
c69a20944f test_libFLAC/endswap.c : Improvements.
* Print endian-ness of test host.
* Replace ugly macro with C code.
* Add tests for H2LE_16 and H2LE_32 macros.
2014-07-01 12:59:43 +10:00
Erik de Castro Lopo
6bd45d1115 src/test_libFLAC : Add tests for end swap macros. 2014-06-30 20:26:39 +10:00
Erik de Castro Lopo
4a38f75f85 src/flac/decode.c : Add comment about ubuf union. 2014-06-30 19:55:21 +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
3eb4094b85 src/flac/encode.c : Fix cast-align warning on ARM systems.
Use the union of pointers trick again.
2014-06-29 22:57:59 +10:00
Erik de Castro Lopo
7590d99b29 libFLAC/md5: Fix for cast-align warnings on ARM.
Rather than the buffer into format_input_() as a FLAC__byte pointer, pass
it as a pointer to a union of three pointers, one each for for FLAC__byte,
FLAC__int16 and FLAC_int32.
This should have zero measurable performance impact.
2014-06-29 21:53:01 +10:00
Erik de Castro Lopo
51c6567f62 libFLAC/md5.c : Massive refactoring of format_input_ function.
This refactoring is in preparation for fixing the cast-align warning when
compiling on ARM (and possibly others). Testing on stereo 16 bit files
suggests that the difference between the performance of this code and the
old code is negligible (tested only on amd64/linux).
2014-06-29 21:07:07 +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
a8567d4b4e libFLAC/bitmath : Restore an ASSERT that was removed some time after 1.2.1.
Restore a FLAC__ASSERT() to bitmath functions FLAC__bitmath_ilog2 and
FLAC__bitmath_ilog2_wide functions. This prevents the return of an
"undefined" value.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 22:25:18 +10:00
Erik de Castro Lopo
9aa1546436 libFLAC/lpc_intrin_sseN.c : Disambiguate macro names.
Previously, the files lpc_intrin_sse2.c and lpc_intrin_sse41.c both defined
macros RESIDUAL_RESULT and DATA_RESULT. This situation made it impossible
to merge these files which we may do at some stage.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 22:25:18 +10:00
Erik de Castro Lopo
2c15052550 libFLAC: CPUID detecion improvements.
According to docs, it's incorrect to just call CPUID with EAX=1.
One must to ensure that this value is supported.

CPUs that don't support CPUID level 1 are very old, but...
if FLAC tests CPUID presence it should also test CPUID level support.

Also the function FLAC__cpu_have_cpuid_asm_ia32 was simplified
according to the docs at Intel website and in Wikipedia.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 22:25:18 +10:00
Erik de Castro Lopo
99257e177e flac: Fix channel order for mono files.
* The default channel mask for mono files was 0x0001 (front left) but it
  makes more sense to use 0x0004 (front center) for such files.

* Also FLAC will accept not only mono WAV files with 0x0001 mask, but also
  with 0x0002 (requested at https://sourceforge.net/p/flac/bugs/390/)
  and 0x0004 (e.g. SoX creates mono files with this mask).

* The comment about channel support was updated.

* The error message
     "Use --channel-map=none option to store channels in current order; FLAC files
     must also be decoded with --channel-map=none to restore correct order."
  is misleading: FLAC never changes the order of channels.
  Decoding with this options also sets the channel mask of the resulting WAV
  file to 0. Without this option the mask is equal to the value of
  WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 22:25:18 +10:00
Erik de Castro Lopo
1d12d98eda flac: Fix encoder and decode progress messages with --ogg.
Problem discussed here:

   http://lists.xiph.org/pipermail/flac-dev/2014-June/004808.html

The values for the interval between two updates (e->stats_mask,
e->stats_frames_interval) were set ~10 years ago, and it is small
for current CPUs. It was now been increased too (0x3f -> 0xff, etc).
The update interval is still less than 1 second.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 22:25:18 +10:00
Erik de Castro Lopo
a5c3a37c2a flac : Fix handling of raw input option.
FLAC was silently ignoring options for raw input for encoding mode (but
prints an error and aborts when _de_coding).

This can lead to bug reports such as https://sourceforge.net/p/flac/bugs/389/

FLAC now prints a message about options misuse for encoding mode.

Help messages were also updated.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 22:25:18 +10:00
Erik de Castro Lopo
b4579dc0de test_libFLAC/md5.c: Add tests for MD5 calculation.
Test all channel counts from 1 to 8 inclusive and all byte widths
from 1 to 4 inclusive.
2014-06-28 22:25:07 +10:00
Erik de Castro Lopo
804dc50d09 AUTHORS : Tweaks. 2014-06-28 09:52:52 +10:00
Erik de Castro Lopo
a3b35e7fc8 flac: Fix padding for --replay-gain option.
Patches ported from the flac 1.2.1 maintenance branch.

    http://flac.cvs.sourceforge.net/viewvc/flac/flac/src/flac/encode.c?
    r1=1.194&r2=1.194.2.1&pathrev=FLAC_RELEASE_1_2_1_MAINTENANCE_BRANCH

    http://flac.cvs.sourceforge.net/viewvc/flac/flac/src/flac/main.c?
    r1=1.169&r2=1.169.2.1&pathrev=FLAC_RELEASE_1_2_1_MAINTENANCE_BRANCH

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:33:02 +10:00
Erik de Castro Lopo
6ccef14727 stream_decoder : Two read_metadata() fixes from 1.2.1 maintenance branch.
* Fix leaks in read_metadata_() that could occur because of read errors or
  malformed streams.
    http://flac.cvs.sourceforge.net/viewvc/flac/flac/src/libFLAC/
    stream_decoder.c?
    r1=1.147&r2=1.147.2.1&pathrev=FLAC_RELEASE_1_2_1_MAINTENANCE_BRANCH

* Fix metadata block initialization bug in read_metadata_().
    http://flac.cvs.sourceforge.net/viewvc/flac/flac/src/libFLAC/
    stream_decoder.c?
    r1=1.147.2.1&r2=1.147.2.2&pathrev=FLAC_RELEASE_1_2_1_MAINTENANCE_BRANCH

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:27:33 +10:00
Erik de Castro Lopo
0854575312 README updates.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:21:08 +10:00
Erik de Castro Lopo
4bc4255f6c test/test_replaygain.sh : Update tests after work aroind for GCC bug.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:20:03 +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
987f74ae7a Correections for comments.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:10:32 +10:00
Erik de Castro Lopo
2116df235c Remove un-needed code.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:08:50 +10:00
Erik de Castro Lopo
9f62979d44 Fix VS project file for iffscan.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:07:39 +10:00
Erik de Castro Lopo
23f36ed699 replaygain_analysis: Add include guard for <stdint.h>.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:06:09 +10:00
Erik de Castro Lopo
b23de89e86 Vcprojs : Remove include/share from include paths.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-28 09:04:00 +10:00
Erik de Castro Lopo
40e817dc52 src/flac/decode.c : Fix a cast-align warning from GCC.
The old code was creating an array of FLAC__int8, and then casting
that to a set of signed and unsigned 16 and 32 bit integers. This
was replaced with a single union containing all the requred array.

This solution means that there are fewer pointer casts and actually
gives the compiler more information with which to generate fast code.
2014-06-27 22:06:39 +10:00
Erik de Castro Lopo
1f7c085960 AUTHORS : Update and add contributors. 2014-06-27 21:12:47 +10:00