summaryrefslogtreecommitdiff
path: root/module/quicktime.m
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
commit46439007cf417cbd9ac8049bb4122c890097a0fa (patch)
tree6fdb25e5f3a2b6d5657eb23b35774b631d4d97e4 /module/quicktime.m
parent37da2899f40661e3e9631e497da8dc59b971cbd0 (diff)
20060303-partial
Diffstat (limited to 'module/quicktime.m')
-rw-r--r--module/quicktime.m73
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);
+};