File: xa_qt.h

package info (click to toggle)
xanim 2.70.6.4-9
  • links: PTS
  • area: non-free
  • in suites: hamm
  • size: 2,412 kB
  • ctags: 4,429
  • sloc: ansic: 42,227; makefile: 541; sh: 35
file content (207 lines) | stat: -rw-r--r-- 4,924 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
 
/*
 * xa_qt.h
 *
 * Copyright (C) 1993,1994,1995,1996,1997 by Mark Podlipec.
 * All rights reserved.
 *
 * This software may be freely copied, modified and redistributed without
 * fee for non-commerical purposes provided that this copyright notice is
 * preserved intact on all copies and modified copies.
 *
 * There is no warranty or other guarantee of fitness of this software.
 * It is provided solely "as is". The author(s) disclaim(s) all
 * responsibility and liability with respect to this software's usage
 * or its effect upon hardware or computer systems.
 *
 */
 
#include "xanim.h"
 
#define QT_moov 0x6D6F6F76
#define QT_trak 0x7472616B
#define QT_mdia 0x6D646961
#define QT_minf 0x6D696E66
#define QT_stbl 0x7374626C
/*-------------- LISTS ---------------------*/
#define QT_edts 0x65647473
/*-------------- STUFF ---------------------*/
#define QT_hdlr 0x68646C72
#define QT_mvhd 0x6D766864
#define QT_tkhd 0x746B6864
#define QT_elst 0x656C7374
#define QT_mdhd 0x6D646864
#define QT_stsd 0x73747364
#define QT_stts 0x73747473
#define QT_stss 0x73747373
#define QT_stsc 0x73747363
#define QT_stsz 0x7374737a
#define QT_stco 0x7374636f
/*-------------- VIDEO CODECS ---------------*/
#define QT_rle   0x726c6520
#define QT_smc   0x736D6320
#define QT_rpza  0x72707A61
#define QT_azpr  0x617A7072
#define QT_CVID  0x43564944
#define QT_cvid  0x63766964
#define QT_jpeg  0x6a706567
#define QT_SPIG  0x53504947
#define QT_yuv2  0x79757632
#define QT_PGVV  0x50475656
#define QT_YUV9  0x59565539
#define QT_YVU9  0x59555639
#define QT_RT21  0x52543231
#define QT_rt21  0x72743231
#define QT_IV31  0x49563331
#define QT_iv31  0x69763331
#define QT_IV32  0x49563332
#define QT_iv32  0x69763332
#define QT_IV41  0x49563431
#define QT_iv41  0x69763431
#define QT_kpcd  0x6b706364
#define QT_KPCD  0x4b504344
#define QT_cram 0x6372616D
#define QT_CRAM 0x4352414D
#define QT_wham 0x7768616d
#define QT_WHAM 0x5748414d
#define QT_msvc 0x6D737663
#define QT_MSVC 0x4d535643


/*-------------- VIDEO/AUDIO CODECS ---------------*/
#define QT_raw   0x72617720
/*-------------- AUDIO CODECS ---------------*/
#define QT_raw00 0x00000000
#define QT_twos  0x74776f73
#define QT_MAC6  0x4d414336
#define QT_ima4  0x696d6134
/*-------------- misc ----------------------*/
#define QT_vmhd 0x766D6864
#define QT_dinf 0x64696e66
#define QT_appl 0x6170706C
#define QT_mdat 0x6D646174
#define QT_smhd 0x736d6864
#define QT_stgs 0x73746773
#define QT_udta 0x75647461
#define QT_skip 0x736B6970
#define QT_gmhd 0x676d6864
#define QT_text 0x74657874
#define QT_clip 0x636C6970   /* clip ??? contains crgn atom  */
#define QT_crgn 0x6372676E   /* crgn ??? contain coordinates?? */
#define QT_ctab 0x63746162   /* ctab: color table for 16/24 anims on 8 bit */

typedef struct
{
  xaULONG compression;
  xaULONG dref_id;
  xaULONG version;
  xaULONG codec_rev;
  xaULONG vendor;
  xaUSHORT chan_num;
  xaUSHORT bits_samp;
  xaUSHORT comp_id;
  xaUSHORT pack_size;
  xaUSHORT samp_rate;
  xaUSHORT pad;
  xaULONG  bps;		/* convenience for me */
} QTS_CODEC_HDR;

typedef struct
{
  xaULONG version;                /* version/flags */
  xaULONG creation;               /* creation time */
  xaULONG modtime;                /* modification time */
  xaULONG timescale;
  xaULONG duration;
  xaULONG rate;
  xaUSHORT volume;
  xaULONG  r1;
  xaULONG  r2;
  xaULONG matrix[3][3];
  xaUSHORT r3;
  xaULONG  r4;
  xaULONG pv_time;
  xaULONG pv_durat;
  xaULONG post_time;
  xaULONG sel_time;
  xaULONG sel_durat;
  xaULONG cur_time;
  xaULONG nxt_tk_id;
} QT_MVHDR;

typedef struct
{
  xaULONG version;                /* version/flags */
  xaULONG creation;               /* creation time */
  xaULONG modtime;                /* modification time */
  xaULONG trackid;
  xaULONG timescale;
  xaULONG duration;
  xaULONG time_off;
  xaULONG priority;
  xaUSHORT layer;
  xaUSHORT alt_group;
  xaUSHORT volume;
  xaULONG matrix[3][3];
  xaULONG tk_width;
  xaULONG tk_height;
  xaUSHORT pad;
} QT_TKHDR;

typedef struct
{
  xaULONG version;                /* version/flags */
  xaULONG creation;               /* creation time */
  xaULONG modtime;                /* modification time */
  xaULONG timescale;
  xaULONG duration;
  xaUSHORT language;
  xaUSHORT quality;
} QT_MDHDR;

typedef struct
{
  xaULONG version;                /* version/flags */
  xaULONG type;
  xaULONG subtype;
  xaULONG vendor;
  xaULONG flags;
  xaULONG mask;
} QT_HDLR_HDR;


typedef struct QT_FRAME_STRUCT
{
  xaULONG time;
  xaULONG timelo;
  XA_ACTION *act;
  struct QT_FRAME_STRUCT *next;
} QT_FRAME;

typedef struct
{
  xaULONG width;
  xaULONG height;
  xaULONG depth;
  xaULONG compression;
  xaULONG xapi_rev;
  xaULONG (*decoder)();
  void *dlta_extra;
  XA_CHDR *chdr;
} QTV_CODEC_HDR;

typedef struct
{
  xaULONG first;
  xaULONG num;
  xaULONG tag;
} QT_S2CHUNK_HDR;

typedef struct
{
  xaULONG cnt;
  xaULONG time;
  xaULONG timelo;
} QT_T2SAMP_HDR;