Commit Graph

3363 Commits

Author SHA1 Message Date
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
Evan Ramos
f658ea5ae7 Further updates to the Makefile.lite build system.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2014-06-27 19:37:33 +10:00
Erik de Castro Lopo
097c0e7728 Fix Makefile.lite build system on Linux. 2014-06-26 19:18:29 +10:00
Erik de Castro Lopo
f48c79a406 .gitignore : Tweaked. 2014-06-26 19:02:39 +10:00
Evan Ramos
9df6736ec0 Update Makefile.lite build system.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2014-06-24 21:02:24 +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
6c9abe3690 Makefile.ams : Drop passing of include/share as an include directory.
Some files needed to be updated to incude "share/xxx.h" instead of
"xxx.h".

Suggested-by: lvqcl <lvqcl.mail@gmail.com>
2014-06-16 14:23:57 +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
19b549f82f regainplay_analysis : Work around GCC optimizer bug.
Discussion: http://lists.xiph.org/pipermail/flac-dev/2014-June/004720.html
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-06-15 20:32:48 +10:00
Erik de Castro Lopo
b8d58e327c Revert "Replace FLAC__CPU_X86_64 with FLaC__CPU_X86_64."
This reverts commit 151739921b.

This patch only when part way to replace all FLAC_* with FLaC_*
and its really not worth going all the way.
2014-06-15 20:29:34 +10:00
Erik de Castro Lopo
151739921b Replace FLAC__CPU_X86_64 with FLaC__CPU_X86_64.
Previous autorconf versions had problems with variable begining witj
'FLAC_' (autoconf uses 'AC_').

Reported-by: lvqcl <lvqcl.mail@gmail.com>
2014-06-01 17:33:54 +10:00
Erik de Castro Lopo
cdb465787c src/ : Fix two typos.
* 'norrmal' -> 'normal'.
* 'fames' -> 'frames'.

Reported-by: lvqcl <lvqcl.mail@gmail.com>
2014-06-01 17:33:34 +10:00
Erik de Castro Lopo
be0a894278 configure.ac : Add -fvisibility=hidden to OSX build.
Patch-from : Ozkan Sezer <sezeroz@gmail.com>
2014-05-25 19:42:57 +10:00
Erik de Castro Lopo
2be824a1e3 replaygain_synthesis.c : Replace an int64_t/int32_t operation with a shift.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-05-18 13:49:56 +10:00
Erik de Castro Lopo
0da01cb255 src/share/replaygain_synthesis/ : Remove old fast float math hack.
Old code was for the Intel compiler, had no appreciable performance benefits
and doesn't actually work with current version of that compiler.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-05-18 13:44:23 +10:00
Erik de Castro Lopo
93d951f46e Remove Monkey's Audio from FLAC.sln.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-05-14 21:57:09 +10:00
Erik de Castro Lopo
96a5c54feb Purge src/monkeys_audio_utilities/ tree.
Monkey's Audio Utilities seem to have been dead for some time.
2014-05-14 21:48:13 +10:00
Erik de Castro Lopo
3d394924ff libFLAC/ : Refactoring and add comments.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-05-14 21:28:55 +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
7963120a0d src/libFLAC/memory.c : Wrap inclusion of <stdint.h> in #ifdef.
Lack of the #ifdef was causing problems on VS2008.
2014-05-11 03:06:49 -07:00
Erik de Castro Lopo
d4d5060e9e src/flac/decode.c : Decode WAVEFORMATEXTENSIBLE_CHANNEL_MASK.
When decoding, read the contents of the WAVEFORMATEXTENSIBLE_CHANNEL_MASK
tag and write write the channel mask to the WAV file.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-04-28 05:10:16 +10:00
Erik de Castro Lopo
11b004cacf libFLAC/stream_encoder.c : Fix if else wibble.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-04-15 18:36:46 +10:00
Erik de Castro Lopo
c2aeedca3e src/flac/utils.c : Fix compile guard for ioctl(). 2014-04-15 18:31:58 +10:00
Erik de Castro Lopo
619d821b68 Add files missing from commit 93f6109c90. 2014-04-12 07:13:08 +10:00
Erik de Castro Lopo
93f6109c90 Add intrinsics version of two lpc functions.
Functions:
- FLAC__fixed_compute_best_predictor
- FLAC__fixed_compute_best_predictor_wide

Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-04-11 06:21:15 +10:00
Erik de Castro Lopo
d456cdd28a Suppress MSVS warnings when compiling for x86-64.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-04-11 06:18:52 +10:00
Erik de Castro Lopo
1a6df83163 Use _M_X64 instead of _WIN64.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
2014-04-11 06:16:37 +10: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