diff options
Diffstat (limited to 'module/quicktime.m')
| -rw-r--r-- | module/quicktime.m | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/module/quicktime.m b/module/quicktime.m new file mode 100644 index 00000000..f1ab35c1 --- /dev/null +++ b/module/quicktime.m @@ -0,0 +1,73 @@ +# +# Apple QuickTime File Format +# +QuickTime: module +{ + PATH: con "/dis/lib/quicktime.dis"; + + DEFBUF: con 8192; + + AtomHDR: con 8; + + Tkhdr: adt + { + version: int; + creation: int; + modtime: int; + trackid: int; + timescale: int; + duration: int; + timeoff: int; + priority: int; + layer: int; + altgrp: int; + volume: int; + matrix: array of int; + width: int; + height: int; + }; + + MvhdrSIZE: con 100; + Mvhdr: adt + { + version: int; + create: int; + modtime: int; + timescale: int; + duration: int; + rate: int; + vol: int; + r1: int; + r2: int; + matrix: array of int; + r3: int; + r4: int; + pvtime: int; + posttime: int; + seltime: int; + seldurat: int; + curtime: int; + nxttkid: int; + }; + + # QuickTime descriptor + QD: adt + { + fd: ref sys->FD; # descriptor of QuickTime file + buf: array of byte; # buffer + nbyte: int; # bytes remaining + ptr: int; # buffer pointer + + mvhdr: ref Mvhdr; # movie header desctiptor + + readn: fn(r: self ref QD, b: array of byte, l: int): int; + skip: fn(r: self ref QD, size: int): int; + skipatom: fn(r: self ref QD, size: int): int; + atomhdr: fn(r: self ref QD): (string, int); + mvhd: fn(r: self ref QD, l: int): string; + trak: fn(r: self ref QD, l: int): string; + }; + + init: fn(); + open: fn(file: string): (ref QD, string); +}; |
