View Single Post
Old 11th August 2005, 17:57   #55  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,890
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.
tebasuna51 is offline   Reply With Quote