1# 2# Apple QuickTime File Format 3# 4QuickTime: module 5{ 6 PATH: con "/dis/lib/quicktime.dis"; 7 8 DEFBUF: con 8192; 9 10 AtomHDR: con 8; 11 12 Tkhdr: adt 13 { 14 version: int; 15 creation: int; 16 modtime: int; 17 trackid: int; 18 timescale: int; 19 duration: int; 20 timeoff: int; 21 priority: int; 22 layer: int; 23 altgrp: int; 24 volume: int; 25 matrix: array of int; 26 width: int; 27 height: int; 28 }; 29 30 MvhdrSIZE: con 100; 31 Mvhdr: adt 32 { 33 version: int; 34 create: int; 35 modtime: int; 36 timescale: int; 37 duration: int; 38 rate: int; 39 vol: int; 40 r1: int; 41 r2: int; 42 matrix: array of int; 43 r3: int; 44 r4: int; 45 pvtime: int; 46 posttime: int; 47 seltime: int; 48 seldurat: int; 49 curtime: int; 50 nxttkid: int; 51 }; 52 53 # QuickTime descriptor 54 QD: adt 55 { 56 fd: ref sys->FD; # descriptor of QuickTime file 57 buf: array of byte; # buffer 58 nbyte: int; # bytes remaining 59 ptr: int; # buffer pointer 60 61 mvhdr: ref Mvhdr; # movie header desctiptor 62 63 readn: fn(r: self ref QD, b: array of byte, l: int): int; 64 skip: fn(r: self ref QD, size: int): int; 65 skipatom: fn(r: self ref QD, size: int): int; 66 atomhdr: fn(r: self ref QD): (string, int); 67 mvhd: fn(r: self ref QD, l: int): string; 68 trak: fn(r: self ref QD, l: int): string; 69 }; 70 71 init: fn(); 72 open: fn(file: string): (ref QD, string); 73}; 74