Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

iw2z

macrumors newbie
Original poster
hi
i'm not sure of this is the right place for this question, but i'll ask anyway...
i've been working on an application that will give me some general info about a quicktime

video file (Dimensions, Frame Rate, Compressor Name, Audio channels...)

so i read the "Quicktime File Format Specification" document from apple.com, and i did get

to read most of the data i need from the corresponding atoms (atoms are the building units

of a quicktime file), but i came across some files that didn't have these atoms at all

(since most of these atoms are optional)

examples include
- 'stsd' atoms hold the compressor name, but it's optional
- 'stts' atoms hold data vital to the frame rate calculation, also optional
- 'stss' atoms hold data regarding key frames, also optional

and even though one of the atoms i need isn't even optional, i still couldn't find it

('tkhd' for the video dimensions)

but when i open these files (which missing atoms) they work well, and when i open them in

VLC player, i can see the data i need in the 'media information' provided by the player

so my question is: how can i get the data i need even when the atoms aren't available? (it

must be doable, VLC proves that!)

ps. i'm working on a java applet, so i can only use standard java libraries
 
a compressed video?

hmm, well i don't have a link to the file, i'll try to upload it on rapidshare or sth later this evening...

but i did a little extra goofing around, the file i have has cmov (compressed movie) atom which contains a dcom and a cmvd atoms, but i'm clueless after that, any suggestions?
 
problem solved!

ok i finally got this problem solved, so here's the solution in case someone else needs it:

having a 'cmov' (compressed movie) atom means the movie resource has been compressed (ok that's really obvious!)
now this 'cmov' atom contains 2 other atoms:
1-'dcom' (data compression) atom
2-'cmvd' (compressed movie data) atom

dcom only contains 4 bytes for the size, 4 bytes for the atom type, and 4 bytes for the compression algorithm
(all files i came across had 'zlib' as the compression algo)

cmvd contains 4 bytes for the size, 4 bytes for the atom type, 4 bytes for the size of the uncompressed content, and the compressed content itself

so java standard library already contains a decompressor for zlib and voila, the uncompressed data contains the missing atoms 🙂
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.