30 #ifndef COMMON_QUICKTIME_H 31 #define COMMON_QUICKTIME_H 33 #include "common/array.h" 34 #include "common/scummsys.h" 35 #include "common/path.h" 36 #include "common/stream.h" 37 #include "common/rational.h" 38 #include "common/types.h" 39 #include "common/rect.h" 100 bool isOpen()
const {
return _fd !=
nullptr; }
102 enum class QTVRType {
124 uint32 trackDuration;
139 uint32 getCodecTag()
const {
return _codecTag; }
151 CODEC_TYPE_MOV_OTHER,
158 enum class GraphicsMode {
163 STRAIGHT_ALPHA = 0x100,
164 PREMUL_WHITE_ALPHA = 0x101,
165 PREMUL_BLACK_ALPHA = 0x102,
166 STRAIGHT_ALPHA_BLEND = 0x104,
197 int32 commentStrOffset;
212 int32 mouseOverCursorID;
213 int32 mouseDownCursorID;
214 int32 mouseUpCursorID;
217 int32 commentStrOffset;
224 for (uint i = 0; i < hotSpots.
size(); i++)
225 if (hotSpots[i].
id ==
id)
235 String getString(int32 offset)
const;
248 int32 commentStrOffset;
255 for (uint i = 0; i < links.
size(); i++)
256 if (links[i].
id ==
id)
275 int32 commentStrOffset;
282 for (uint i = 0; i < navs.
size(); i++)
283 if (navs[i].
id ==
id)
303 uint32 *chunkOffsets;
304 int timeToSampleCount;
306 uint32 sampleToChunkCount;
311 uint32 keyframeCount;
325 uint32 mediaDuration;
339 GraphicsMode graphicsMode;
347 enum class MovieType {
349 kOldNavigableMovieScene,
356 uint16 loop_size = 0;
357 uint16 frame_duration = 1;
359 MovieType movie_type = MovieType::kStandardObject;
361 uint16 loop_ticks = 0;
363 float field_of_view = 1.0f;
365 float startHPan = 1.0f;
366 float startVPan = 1.0f;
367 float endHPan = 1.0f;
368 float endVPan = 1.0f;
369 float initialHPan = 1.0f;
370 float initialVPan = 1.0f;
374 virtual SampleDesc *readSampleDesc(
Track *track, uint32 format, uint32 descSize) = 0;
402 DisposeAfterUse::Flag _disposeFileHandle;
403 const ParseTable *_parseTable;
408 void initParseTable();
410 bool parsePanoramaAtoms();
412 int readDefault(Atom atom);
413 int readLeaf(Atom atom);
414 int readDREF(Atom atom);
415 int readELST(Atom atom);
416 int readHDLR(Atom atom);
417 int readMDHD(Atom atom);
418 int readMOOV(Atom atom);
419 int readMVHD(Atom atom);
420 int readTKHD(Atom atom);
421 int readTRAK(Atom atom);
422 int readSMHD(Atom atom);
423 int readSTCO(Atom atom);
424 int readSTSC(Atom atom);
425 int readSTSD(Atom atom);
426 int readSTSS(Atom atom);
427 int readSTSZ(Atom atom);
428 int readSTTS(Atom atom);
429 int readVMHD(Atom atom);
430 int readCMOV(Atom atom);
431 int readWAVE(Atom atom);
432 int readESDS(Atom atom);
433 int readSMI(Atom atom);
434 int readCTYP(Atom atom);
435 int readWLOC(Atom atom);
436 int readNAVG(Atom atom);
437 int readGMIN(Atom atom);
438 int readPINF(Atom atom);
440 int readPHDR(Atom atom);
441 int readPHOT(Atom atom);
442 int readSTRT(Atom atom);
443 int readPLNK(Atom atom);
444 int readPNAV(Atom atom);
Definition: macresman.h:125
Definition: quicktime.h:220
Definition: quicktime.h:353
Definition: quicktime.h:263
Definition: quicktime.h:112
Definition: quicktime.h:170
Definition: quicktime.h:134
Definition: quicktime.h:123
Definition: rational.h:40
Definition: quicktime.h:58
Definition: quicktime.h:200
Definition: quicktime.h:298
uint32 getTimeScale() const
Definition: quicktime.h:97
Definition: quicktime.h:278
bool parseStream(SeekableReadStream *stream, DisposeAfterUse::Flag disposeFileHandle=DisposeAfterUse::YES)
Definition: quicktime.h:238
Definition: algorithm.h:29
size_type size() const
Definition: array.h:315
Definition: quicktime.h:290
Definition: quicktime.h:117
Definition: quicktime.h:232
bool parseFile(const Path &filename)
Definition: quicktime.h:251
void setChunkBeginOffset(uint32 offset)
Definition: quicktime.h:92
bool isOpen() const
Definition: quicktime.h:100