Sorry. I mistake my precedent comment. WW don't stop at 4 GB, stop at the invalid length.
I decode a 130m12s.aac with Faad v2.1b to 6faad_ex.wav, and with Foobar2000 v8.3 to 6Foobar.wav.
The two wav are open like Type:
Unknown with Ignore invalid wav size
Disabled.
With Ignore invalid wav size Enabled can split them in mono wav.
I report the data in WW (I add the first line, aac, to compare length), and the wav headers of two wav 6 channel.
Code:
Filename Size Length Channels SampleRate Type
130m12s.aac 112.028 KB 2:10:12.459 6 48000 aac
6faad_ex.wav 4.394.508 KB 2:04:16.540 6 48000 Wav Ext.
6faad_ex_ch1_R.wav 699.051 KB 2:04:16.540 1 48000 Wave PCM
6Foobar.wav 4.394.508 KB 05:55.918 6 48000 Wave PCM
6Foobar_ch1.wav 33.367 KB 05:55.918 1 48000 Wave PCM
-------------------------------------------------------------------------
Offset 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6faad_ex.wav
------------
0000 52 49 46 46 00 FF FF FF 57 41 56 45 66 6D 74 20 RIFF.ÿÿÿWAVEfmt
0016 28 00 00 00 FE FF 06 00 80 BB 00 00 00 CA 08 00 (...þÿ.._»...Ê..
0032 0C 00 10 00 16 00 10 00 3F 00 00 00 01 00 00 00 ........?.......
0048 00 00 10 00 80 00 00 AA 00 38 9B 71 64 61 74 61 ...._..ª.8>qdata
0064 00 FF FF FF B9 FF 00 00 00 00 00 00 00 00 00 00 .ÿÿÿ¹ÿ..........
FileSize: 4.499.976.260 = 0x10C383044
RIFF_chunk_size = FileSize - 8 = 0x10C38303C Invalid: 0xFFFFFF00
data_chunk_size = FileSize - 68 = 0x10C383000 Invalid: 0xFFFFFF00
-------------------------------------------------------------------------
Offset 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6Foobar.wav
-----------
0000 52 49 46 46 24 30 38 0C 57 41 56 45 66 6D 74 20 RIFF$08.WAVEfmt
0016 10 00 00 00 01 00 06 00 80 BB 00 00 00 CA 08 00 ........_»...Ê..
0032 0C 00 10 00 64 61 74 61 00 30 38 0C B9 FF 00 00 ....data.08.¹ÿ..
FileSize: 4.499.976.236 = 0x10C38302C
RIFF_chunk_size = FileSize - 8 = 0x10C383024 Invalid: 0x0C383024
data_chunk_size = FileSize - 44 = 0x10C383000 Invalid: 0x0C383000
Maybe WW take like valid anything distinct of 0xFFFFFFFF or 0x00000000, but you can see there are two programs than fill data_chunk_size with different values.
I think if FileSize > RIFF_chunk_size + 8, the Length can be calculated with FileSize - 8 - Offset_data_chunk (ignoring possible extrachunks at the end of the file).
Thanks for your interest.