QUOTE(Lear @ Sep 7 2007, 14:43)

That is incorrect, yes. If nothing else, it says both 0 and 21 are uint8. 0 is uint16 and 21 is uint32. Don't remember where I got that information from though...
With my test files based on 2 bytes per value I am finding that the track number field actually contains
four values (Ive added the slashes), the 2nd is the track no, the third is total tracks and first and fourth fields are always zero.
e.g. trkn : 0/1/10/0
This actually concurs with the example shown in the Atomic Parsley documentation (though its doesnt pick up on this point) which in the exammple shows the track data as 00 00 00 02 00 05 00 00 for track 2 of 5 ( I would have expected it to be 00 02 00 05)
Whereas the discnumber field always contains
three values, the 2nd is the disk number, the third is total number of discs and the first is always zero.
e.g disk : 0/1/10
Anyone know what these extra values are, are they always zero and are they always there.
Also Im trying to improve the robustness of my atom traversal code. Given a particular atom, is there any way by reading the header (and subsequent data) of working out whether the atom contains either direct data
or a child atom without knowing the internal workings of the atom. For example say I have a MOOV atom starting as follows
00 00 D8 DA 6D 6F 6F 76 00 00 00 6C 6D 76 68 64 (....moov....mvdh)
my code knows that a moov atom contains a mvdh child atom imediately after , but I would prefer if my code could just read any header and then decide whther it contains data or a child next and traverse tree as required, but I cant see how this can be done. I want to do this because I have worked out the hierachy of atoms that Im interested in but I dont know if the hierachy is strictly adhered to in all cases and would be better if code could cope with extra/missing atoms (within reason). This is the hierachy as I understand it:
(dots are just to preserve formatting)
|--- ftyp
|--- moov
|...........|
|...........|----- mvdh
|...........|----- trak
|...........|----- udta
|......................|
|......................|-- meta
|..............................|
|..............................|-- hdlr
|..............................|-- ilst
|....................................|
|....................................|---- @nam (Optional)
|....................................|---- ---- (Optional)
|
|--- mdat
thanks Paul