Martijn van Beurden
775d214cdd
Fix leak in metaflac
...
This leak seems to have been introduced by b3b9176
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57641
2023-04-08 09:21:03 +02:00
orbea
bacc9d8c66
getopt: Fix the build with clang-16
...
Clang-16 no longer allows these legacy declarations.
2023-04-01 10:13:04 +02:00
Zhipeng Xue
9ee21a0e68
Fix potential dead store
2023-03-28 07:07:06 +02:00
Martijn van Beurden
43bc8101ce
Switch default bitreader/bitwriter word size to 64-bit
2023-03-27 22:10:00 +02:00
Martijn van Beurden
00cb41ee03
Add use of x86 BMI2 to bitreader_read_rice_signed_block
2023-03-27 22:10:00 +02:00
Martijn van Beurden
75d596a234
Only calculate mid-side signal when necessary ( #567 )
...
The calculation of the mid-side signal components is moved, so this
is only performed when necessary. This gives a speed up of about
2% for preset 1 on a representative sample
2023-03-27 11:58:49 +02:00
Martijn van Beurden
68f605bd28
Fix mistakes in _compute_best_predictor_limit_residual_intrin_* ( #572 )
...
I made a few mistakes in these functions, adding instead of or-ing
and xor-ing instead of or-ing. The issue linked below seems to
relate to something completely different, but it is in fact a
result of triggering these mistakes further down the line.
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57071
2023-03-20 19:21:23 +01:00
Martijn van Beurden
6633d2f9bf
Set stdin/stdout to binary on Windows for binary input/output
...
Also fix tests on Windows
2023-03-19 22:37:40 +01:00
Martijn van Beurden
c10b059588
Limit hexdump characters to what is allowed in UTF-8
...
CI tests failed on MacOS printf using a non-UTF8 locale, printing
characters for bytes values above 127. To have a consistent
interface, only print characters with a byte value lower than
128.
2023-03-19 22:37:40 +01:00
Martijn van Beurden
6fa51a7acc
Fix error of metaflac --append testing, add troubleshooting
2023-03-19 22:37:40 +01:00
Martijn van Beurden
436a3577dc
Add tests for metaflac --append
2023-03-19 22:37:40 +01:00
Martijn van Beurden
0b3d86ebc3
Check is_last flags on writing a chain
2023-03-19 22:37:40 +01:00
Martijn van Beurden
21bf406fda
Add checks so metaflac --append doesn't create invalid files
...
Checks are added that no streaminfo or seektable blocks can be
added, and no vorbis comment block is one already exists
2023-03-19 22:37:40 +01:00
Martijn van Beurden
8e563a697d
Add --append option to metaflac
2023-03-19 22:37:40 +01:00
Martijn van Beurden
b11677e052
Add API function FLAC__metadata_object_set_raw
...
Add an API function to directly input binary FLAC data to get a
FLAC__StreamMetadata struct. The use mirrors
FLAC__metadata_object_get_raw
2023-03-19 22:37:40 +01:00
Martijn van Beurden
904d027518
Add test for metaflac --data-format=binary-headerless
2023-03-19 22:37:40 +01:00
Martijn van Beurden
b3b9176330
Add data-format option to metaflac, enabling binary output
2023-03-19 22:37:40 +01:00
Martijn van Beurden
b54eabdf0d
Add API function FLAC__metadata_object_get_raw
...
Add an API function to directly output binary FLAC data corresponding
to a certain FLAC__StreamMetadata struct
2023-03-19 22:37:40 +01:00
Martijn van Beurden
eed37c39fa
Enable fuzzer_tool_metaflac to fuzz with stdin
2023-03-19 18:31:16 +01:00
Martijn van Beurden
5b145aff12
Convert asserts into explicit checks
...
An assert checking whether the bit depth of a FLAC file was valid
was triggered by fuzzing. This assert is converted to a explicit
check.
Similarly, an assert was triggered with a file of sample rate 0
when trying to add seekpoints spaced with seconds.
2023-03-19 18:31:16 +01:00
Martijn van Beurden
b5c763d908
Fix double free in iconvert code
2023-03-19 18:31:16 +01:00
Martijn van Beurden
eba4b6f63b
Check whether exceeding max seekpoints on growing seektable
2023-03-19 18:31:16 +01:00
Martijn van Beurden
ae1db7147a
Fix problems reading vorbis comment data being ignored
2023-03-19 18:31:16 +01:00
Martijn van Beurden
ac39a0078d
Improve fuzzer_tool_metaflac
2023-03-19 18:31:16 +01:00
Martijn van Beurden
2568bf69aa
Fix metaflac memory leak
2023-03-19 18:31:16 +01:00
Martijn van Beurden
5f39e88a88
Fix strlen being used on uninitialized data
2023-03-19 18:31:16 +01:00
Martijn van Beurden
cad22e0e3a
Prevent strcmp being used on invalid data
2023-03-19 18:31:16 +01:00
Martijn van Beurden
67d2e1ee4c
Add fuzzer for metaflac command-line tool
2023-03-19 18:31:16 +01:00
Martijn van Beurden
e683286bb4
Add use of stdin to fuzzer_tool_flac, and redirect stdout
2023-03-18 22:55:35 +01:00
Martijn van Beurden
0e1535ccce
Check for invalid blocksize (65536)
2023-03-18 22:55:35 +01:00
Martijn van Beurden
f4220895bb
Fix null dereference
...
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57032
2023-03-18 22:55:35 +01:00
Martijn van Beurden
9593b949c2
Try to unblock fuzzer_tool_flac by resetting global variables
2023-03-18 22:55:35 +01:00
Harish Mahendrakar
9c83e6e434
Add missing *local_fixed_compute_best_predictor_wide member
2023-03-11 15:47:17 +01:00
Martijn van Beurden
383512d551
Try to make tool_flac fuzzer not only fuzz with arguments
2023-03-09 14:31:49 +01:00
Martijn van Beurden
6db29d1050
Check for got_stream_info instead of samplerate being 0
...
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56427
2023-03-09 14:31:49 +01:00
Martijn van Beurden
4d6d8b342f
Speed up set_partitioned_rice_
2023-03-08 12:26:44 +01:00
Martijn van Beurden
e2faeb80ec
Check for 0 samples before outputting gnuplot data
...
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56339
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56374
2023-03-07 06:49:45 +01:00
Martijn van Beurden
07471c89e7
Swap small and large loop for further speed up in format_input
2023-03-06 11:15:02 +01:00
Martijn van Beurden
724a8aa32e
Further speed up format_input for 24-bit PCM by about 25%
2023-03-06 11:15:02 +01:00
Martijn van Beurden
6884355d87
Speed up format_input for 24-bit PCM by 50%
2023-03-06 11:15:02 +01:00
Martijn van Beurden
2b66d94b34
Speed up format_input for 32-bit PCM
2023-03-06 11:15:02 +01:00
Martijn van Beurden
2b84e8593d
Write SANE extended zero to remove assert
...
Simply ignoring this assert (as production code does) results in
an endless loop.
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56323
2023-03-03 16:35:31 +01:00
Martijn van Beurden
fe19b113a9
Fix use of undefined value in flac
...
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56327
2023-03-03 16:35:31 +01:00
Martijn van Beurden
3857234f2b
Fix memory leak in flac on foreign metadata object
...
Credit: Oss-Fuzz
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56305
2023-03-03 16:35:31 +01:00
Martijn van Beurden
4d21da1183
Add FLAC__fixed_compute_best_predictor_limit_residual_intrin_avx2
...
This function seems to execute twice as fast as
FLAC__fixed_compute_best_predictor_limit_residual_intrin_sse42 and
5x as fast as plain C
2023-02-27 17:22:17 +01:00
Martijn van Beurden
d24b45515e
Add fixed_compute_best_predictor_limit_residual_intrin_sse42
...
I couldn't find a fixed_compute_best_predictor_wide_intrin_sse42
that was faster than plain C, but I was able to find a working
variant for this function. Execution time is halved.
2023-02-27 17:22:17 +01:00
Martijn van Beurden
f6fb70442e
Add fixed_compute_best_predictor_wide_intrin_avx2
...
This function executes twice as fast as plain C, test with Intel
Xeon E-2224G
2023-02-27 17:22:17 +01:00
Martijn van Beurden
3173fc064f
Remove fixed_compute_best_predictor_wide_intrin
...
Profiling revealed that this intrinsic is about 50% slower than
plain C on my Intel Xeon E-2224G.
2023-02-27 17:22:17 +01:00
Martijn van Beurden
2db6c1d138
Fix mistake in use of bitwriter_grow_
2023-02-26 15:10:10 +01:00
Martijn van Beurden
9f3894f0d5
Change FLAC__bitwriter_write_rice_signed_block for 64-bit words
2023-02-26 15:10:10 +01:00