Acknowledged, thanks for reporting.
Thank you for your work and time. All my RF64s have passed the integrity test of the files with the current beta of Foobar2000. (foobar2000 2.1 preview 2023-11-27 - 32bit)
The following refers to the above mentioned version with a fresh installation of the 32bit edition (foobar2000 2.1 preview 2023-11-27 - 32bit):
While playing around, I discovered a few problems with the Wav decoder, Foobar's internal type recognition, the integrity test and the tag transfer.
This mainly concerns the problem with the 4-GiB limit of wave files. The decoder seems to recognise the limit quite late (sometimes only when it wants to transfer the tags) or the files are converted correctly at the edge of the 4 GiB limit, but Foobar does not recognise the file as valid.
Core (2023-11-27 14:59:50 UTC)
foobar2000 core 2.1 preview 2023-11-27
foo_converter (2023-11-27 15:00:20 UTC)
Converter 2.1 preview 2023-11-27
foo_devconsole (2014-02-09 23:19:28 UTC)
DevConsole 1.0.4async
foo_ui_std (2023-11-27 15:00:02 UTC)
Album List 2.1 preview 2023-11-27
Decoding Speed Test 2.1 preview 2023-11-27
Default User Interface 2.1 preview 2023-11-27
File Integrity Verifier 2.1 preview 2023-11-27
Only for quick comparison between dec and hex:
4.294.967.295 bytes = 0xffff_ffff = 4GiB
:: Will be fine on recognition and format validation.
>ffmpeg -y -hide_banner -report -f lavfi -i anullsrc=r=48000:cl=stereo:d=22369 -metadata artist="artist" f22369.wav
>sfk list -size f22369.wav & hexyl f22369.wav
4294848094 f22369.wav
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 52 49 46 46 56 2e fe ff ┊ 57 41 56 45 66 6d 74 20 │RIFFV.××┊WAVEfmt │
│00000010│ 10 00 00 00 01 00 02 00 ┊ 80 bb 00 00 00 ee 02 00 │•⋄⋄⋄•⋄•⋄┊××⋄⋄⋄ו⋄│
│00000020│ 04 00 10 00 4c 49 53 54 ┊ 2a 00 00 00 49 4e 46 4f │•⋄•⋄LIST┊*⋄⋄⋄INFO│
│00000030│ 49 41 52 54 07 00 00 00 ┊ 61 72 74 69 73 74 00 00 │IART•⋄⋄⋄┊artist⋄⋄│
│00000040│ 49 53 46 54 0e 00 00 00 ┊ 4c 61 76 66 36 30 2e 31 │ISFT•⋄⋄⋄┊Lavf60.1│
│00000050│ 36 2e 31 30 30 00 64 61 ┊ 74 61 00 2e fe ff 00 00 │6.100⋄da┊ta⋄.××⋄⋄│
│00000060│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│* │ ┊ │ ┊ │
│fffe2e50│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
:: Wav Converter w/o Tag transfer
:: "Track converted successfully.", but the technically intact Wav file is not recognised by Foobar.
>ffmpeg -y -hide_banner -report -f lavfi -i anullsrc=r=48000:cl=stereo:d=22369.620729 ffffffb8.flac
>sfk list -size ffffffb8.flac ffffffb8.wav & hexyl ffffffb8.wav
3901867 ffffffb8.flac
4294967224 ffffffb8.wav
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 52 49 46 46 b0 ff ff ff ┊ 57 41 56 45 66 6d 74 20 │RIFF××××┊WAVEfmt │
│00000010│ 10 00 00 00 01 00 02 00 ┊ 80 bb 00 00 00 ee 02 00 │•⋄⋄⋄•⋄•⋄┊××⋄⋄⋄ו⋄│
│00000020│ 04 00 10 00 64 61 74 61 ┊ 8c ff ff ff 00 00 00 00 │•⋄•⋄data┊××××⋄⋄⋄⋄│
│00000030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│* │ ┊ │ ┊ │
│ffffffb0│ 00 00 00 00 00 00 00 00 ┊ │⋄⋄⋄⋄⋄⋄⋄⋄┊ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
:: filesize of decoded wav on the 4GiB edge
:: internal wav decoder (without tags) say sucessful, but detetion of wav messed up
No problems occurred.
Source: "\/replaced\/\4g-edge.flac"
Destination: "\/replaced\/\4g-edge.wav"
Track converted successfully.
>ffmpeg -y -hide_banner -report -f lavfi -i anullsrc=r=48000:cl=stereo:d=22369.621094 -metadata artist="on the edge" 4g-edge.flac
>sfk list -size 4g-edge.flac 4g-edge.wav & hexyl 4g-edge.wav
3901887 4g-edge.flac
4294967296 4g-edge.wav
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 52 49 46 46 f8 ff ff ff ┊ 57 41 56 45 66 6d 74 20 │RIFF××××┊WAVEfmt │
│00000010│ 10 00 00 00 01 00 02 00 ┊ 80 bb 00 00 00 ee 02 00 │•⋄⋄⋄•⋄•⋄┊××⋄⋄⋄ו⋄│
│00000020│ 04 00 10 00 64 61 74 61 ┊ d4 ff ff ff 00 00 00 00 │•⋄•⋄data┊××××⋄⋄⋄⋄│
│00000030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│* │ ┊ │ ┊ │
│0100000000│ ┊ │ ┊ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
>ffmpeg -y -hide_banner -report -f lavfi -i anullsrc=r=48000:cl=stereo:d=22369.621093 -metadata artist="maybe on the edge" 4g-lower-edge.flac
:: converting flac to wav with internal converter w/o tag transfer
Converting: "\/replaced\/\4g-lower-edge.flac"
Destination: "\/replaced\/\4g-lower-edge.wav"
Track converted successfully.
>sfk list -size 4g-lower-edge.flac 4g-lower-edge.wav & hexyl 4g-lower-edge.wav
3901893 4g-lower-edge.flac
4294967292 4g-lower-edge.wav
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 52 49 46 46 f4 ff ff ff ┊ 57 41 56 45 66 6d 74 20 │RIFF××××┊WAVEfmt │
│00000010│ 10 00 00 00 01 00 02 00 ┊ 80 bb 00 00 00 ee 02 00 │•⋄⋄⋄•⋄•⋄┊××⋄⋄⋄ו⋄│
│00000020│ 04 00 10 00 64 61 74 61 ┊ d0 ff ff ff 00 00 00 00 │•⋄•⋄data┊××××⋄⋄⋄⋄│
│00000030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│* │ ┊ │ ┊ │
│fffffff0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
:: converting flac to wav with internal converter with tag transfer
:: (tags are not transferred)
Converting: "\/replaced\/\4g-lower-edge.flac"
Destination: "\/replaced\/\4g-lower-edge-with-tags.wav"
An error occurred while finalizing the encoding process (Unsupported format or corrupted file) : "\/replaced\/\4g-lower-edge-with-tags.wav"
Conversion failed: Unsupported format or corrupted file
>sfk list -size 4g-lower-edge.flac 4g-lower-edge-with-tags.wav & hexyl 4g-lower-edge-with-tags.wav
3901893 4g-lower-edge.flac
4294967292 4g-lower-edge-with-tags.wav
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 52 49 46 46 f4 ff ff ff ┊ 57 41 56 45 66 6d 74 20 │RIFF××××┊WAVEfmt │
│00000010│ 10 00 00 00 01 00 02 00 ┊ 80 bb 00 00 00 ee 02 00 │•⋄⋄⋄•⋄•⋄┊××⋄⋄⋄ו⋄│
│00000020│ 04 00 10 00 64 61 74 61 ┊ d0 ff ff ff 00 00 00 00 │•⋄•⋄data┊××××⋄⋄⋄⋄│
│00000030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│* │ ┊ │ ┊ │
│fffffff0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
Thank you and best regards.
##################
Informative part, in case anyone is interested in how the flac decoder reacts.
And two hexdump's of RF64 files (flac vs. ffmpeg), which are also recognised correctly by Foobar2000.
>flac -s -d --force-legacy-wave-format 4g-lower-edge.flac & flac -s -d --force-extensible-wave-format 4g-lower-edge.flac
4g-lower-edge.flac: ERROR: stream is too big to fit in a single WAVE file
4g-lower-edge.flac: ERROR: stream is too big to fit in a single WAVE file
>flac -s -d --force-rf64-format 4g-lower-edge.flac
>sfk list -size 4g-lower-edge.flac 4g-lower-edge.rf64 & hexyl 4g-lower-edge.rf64
3901893 4g-lower-edge.flac
4294967328 4g-lower-edge.rf64
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 52 46 36 34 ff ff ff ff ┊ 57 41 56 45 64 73 36 34 │RF64××××┊WAVEds64│
│00000010│ 1c 00 00 00 18 00 00 00 ┊ 01 00 00 00 d0 ff ff ff │•⋄⋄⋄•⋄⋄⋄┊•⋄⋄⋄××××│
│00000020│ 00 00 00 00 f4 ff ff 3f ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄×××?┊⋄⋄⋄⋄⋄⋄⋄⋄│
│00000030│ 66 6d 74 20 10 00 00 00 ┊ 01 00 02 00 80 bb 00 00 │fmt •⋄⋄⋄┊•⋄•⋄××⋄⋄│
│00000040│ 00 ee 02 00 04 00 10 00 ┊ 64 61 74 61 ff ff ff ff │⋄ו⋄•⋄•⋄┊data××××│
│00000050│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│* │ ┊ │ ┊ │
│0100000020│ ┊ │ ┊ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
>ffmpeg -y -hide_banner -report:level32 -i 4g-lower-edge.flac -rf64 always doit.wav
>sfk list -size doit.wav & hexyl doit.wav
4294967388 doit.wav
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 52 46 36 34 ff ff ff ff ┊ 57 41 56 45 64 73 36 34 │RF64××××┊WAVEds64│
│00000010│ 1c 00 00 00 54 00 00 00 ┊ 01 00 00 00 d0 ff ff ff │•⋄⋄⋄T⋄⋄⋄┊•⋄⋄⋄××××│
│00000020│ 00 00 00 00 f4 ff ff 3f ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄×××?┊⋄⋄⋄⋄⋄⋄⋄⋄│
│00000030│ 66 6d 74 20 10 00 00 00 ┊ 01 00 02 00 80 bb 00 00 │fmt •⋄⋄⋄┊•⋄•⋄××⋄⋄│
│00000040│ 00 ee 02 00 04 00 10 00 ┊ 4c 49 53 54 34 00 00 00 │⋄ו⋄•⋄•⋄┊LIST4⋄⋄⋄│
│00000050│ 49 4e 46 4f 49 41 52 54 ┊ 12 00 00 00 6d 61 79 62 │INFOIART┊•⋄⋄⋄mayb│
│00000060│ 65 20 6f 6e 20 74 68 65 ┊ 20 65 64 67 65 00 49 53 │e on the┊ edge⋄IS│
│00000070│ 46 54 0e 00 00 00 4c 61 ┊ 76 66 36 30 2e 31 36 2e │FT•⋄⋄⋄La┊vf60.16.│
│00000080│ 31 30 30 00 64 61 74 61 ┊ ff ff ff ff 00 00 00 00 │100⋄data┊××××⋄⋄⋄⋄│
│00000090│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│* │ ┊ │ ┊ │
│0100000050│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘