Mercurial > mplayer.hg
diff loader/qtx/qtxsdk/components.h @ 8266:2de1fa441839
fixes, updates
author | arpi |
---|---|
date | Sun, 24 Nov 2002 21:25:00 +0000 |
parents | 2cb0e0e83e95 |
children | 75a09ccb1a18 |
line wrap: on
line diff
--- a/loader/qtx/qtxsdk/components.h Sun Nov 24 17:30:55 2002 +0000 +++ b/loader/qtx/qtxsdk/components.h Sun Nov 24 21:25:00 2002 +0000 @@ -26,7 +26,7 @@ //==================== COMPONENTS =========================== -struct ComponentParameters { +struct __attribute__((__packed__)) ComponentParameters { UInt8 flags; /* call modifiers: sync/async, deferred, immed, etc */ UInt8 paramSize; /* size in bytes of actual parameters passed to this call */ short what; /* routine selector, negative for Component management calls */ @@ -35,7 +35,7 @@ typedef struct ComponentParameters ComponentParameters; -struct ComponentDescription { +struct __attribute__((__packed__)) ComponentDescription { OSType componentType; /* A unique 4-byte code indentifying the command set */ OSType componentSubType; /* Particular flavor of this instance */ OSType componentManufacturer; /* Vendor indentification */ @@ -45,14 +45,14 @@ typedef struct ComponentDescription ComponentDescription; -struct ResourceSpec { +struct __attribute__((__packed__)) ResourceSpec { OSType resType; /* 4-byte code */ short resID; /* */ }; typedef struct ResourceSpec ResourceSpec; -struct ComponentResource { +struct __attribute__((__packed__)) ComponentResource { ComponentDescription cd; /* Registration parameters */ ResourceSpec component; /* resource where Component code is found */ ResourceSpec componentName; /* name string resource */ @@ -64,14 +64,14 @@ typedef ComponentResourcePtr * ComponentResourceHandle; -struct ComponentRecord { +struct __attribute__((__packed__)) ComponentRecord { long data[1]; }; typedef struct ComponentRecord ComponentRecord; typedef ComponentRecord * Component; -struct ComponentInstanceRecord { +struct __attribute__((__packed__)) ComponentInstanceRecord { long data[1]; }; typedef struct ComponentInstanceRecord ComponentInstanceRecord; @@ -89,7 +89,7 @@ typedef struct Rect Rect; typedef Rect * RectPtr; -struct RGBColor { +struct __attribute__((__packed__)) RGBColor { unsigned short red; /*magnitude of red component*/ unsigned short green; /*magnitude of green component*/ unsigned short blue; /*magnitude of blue component*/ @@ -98,7 +98,7 @@ typedef RGBColor * RGBColorPtr; typedef RGBColorPtr * RGBColorHdl; -struct ColorSpec { +struct __attribute__((__packed__)) ColorSpec { short value; /*index or other value*/ RGBColor rgb; /*true color*/ }; @@ -106,7 +106,7 @@ typedef ColorSpec * ColorSpecPtr; typedef ColorSpec CSpecArray[1]; -struct ColorTable { +struct __attribute__((__packed__)) ColorTable { long ctSeed; /*unique identifier for table*/ short ctFlags; /*high bit: 0 = PixMap; 1 = device*/ short ctSize; /*number of entries in CTTable*/ @@ -116,7 +116,7 @@ typedef ColorTable * CTabPtr; typedef CTabPtr * CTabHandle; -struct MatrixRecord { +struct __attribute__((__packed__)) MatrixRecord { Fixed matrix[3][3]; }; typedef struct MatrixRecord MatrixRecord; @@ -127,7 +127,7 @@ typedef unsigned short CodecFlags; typedef unsigned long CodecQ; -struct ImageDescription { +struct __attribute__((__packed__)) ImageDescription { long idSize; /* total size of ImageDescription including extra data ( CLUTs and other per sequence data ) */ CodecType cType; /* what kind of codec compressed this data */ long resvd1; /* reserved for Apple use */ @@ -172,7 +172,7 @@ k2vuyPixelFormat = FOUR_CHAR_CODE('2vuy') /* UYVY 4:2:2 byte ordering 16*/ }; -struct PixMapExtension { +struct __attribute__((__packed__)) PixMapExtension { long extSize; /*size of struct, duh!*/ unsigned long pmBits; /*pixmap attributes bitfield*/ void * pmGD; /*this is a GDHandle*/ @@ -190,7 +190,7 @@ typedef PixMapExtPtr * PixMapExtHandle; -struct PixMap { +struct __attribute__((__packed__)) PixMap { Ptr baseAddr; /*pointer to pixels*/ short rowBytes; /*offset to next line*/ Rect bounds; /*encloses bitmap*/ @@ -212,7 +212,7 @@ typedef PixMapPtr * PixMapHandle; -struct BitMap { +struct __attribute__((__packed__)) BitMap { Ptr baseAddr; short rowBytes; Rect bounds; @@ -220,6 +220,87 @@ typedef struct BitMap BitMap; typedef BitMap * BitMapPtr; typedef BitMapPtr * BitMapHandle; +typedef struct OpaqueRgnHandle* RgnHandle; + +struct Pattern { + UInt8 pat[8]; +}; +typedef struct Pattern Pattern; +typedef unsigned char Style; +typedef Style StyleField; +struct __attribute__((__packed__)) Point { + short v; + short h; +}; +typedef struct Point Point; +struct __attribute__((__packed__)) GrafPort { + short device; + BitMap portBits; + Rect portRect; + RgnHandle visRgn; + RgnHandle clipRgn; + Pattern bkPat; + Pattern fillPat; + Point pnLoc; + Point pnSize; + short pnMode; + Pattern pnPat; + short pnVis; + short txFont; + StyleField txFace; /*StyleField occupies 16-bits, but only first 8-bits are used*/ + UInt8 txFlags; /* QuickTime uses second 8 bits of StyleField for txFlags */ + short txMode; + short txSize; + Fixed spExtra; + long fgColor; + long bkColor; + short colrBit; + short patStretch; + Handle picSave; + Handle rgnSave; + Handle polySave; + /*QDProcsPtr*/void* grafProcs; +}; +typedef struct GrafPort GrafPort; +typedef GrafPort *GWorldPtr; +typedef GWorldPtr *GWorldHandle; +#define anyCodec ((CodecComponent)0) +enum { + /* transfer modes */ + srcCopy = 0, /*the 16 transfer modes*/ + srcOr = 1, + srcXor = 2, + srcBic = 3, + notSrcCopy = 4, + notSrcOr = 5, + notSrcXor = 6, + notSrcBic = 7, + patCopy = 8, + patOr = 9, + patXor = 10, + patBic = 11, + notPatCopy = 12, + notPatOr = 13, + notPatXor = 14, + notPatBic = 15, /* Special Text Transfer Mode */ + grayishTextOr = 49, + hilitetransfermode = 50, + hilite = 50, /* Arithmetic transfer modes */ + blend = 32, + addPin = 33, + addOver = 34, + subPin = 35, + addMax = 37, + adMax = 37, + subOver = 38, + adMin = 39, + ditherCopy = 64, /* Transparent mode constant */ + transparent = 36 +}; + +typedef unsigned long GWorldFlags; + + // ============================== CODECS =========================== @@ -227,11 +308,22 @@ typedef Component DecompressorComponent; typedef Component CodecComponent; +enum { + codecLosslessQuality = 0x00000400, + codecMaxQuality = 0x000003FF, + codecMinQuality = 0x00000000, + codecLowQuality = 0x00000100, + codecNormalQuality = 0x00000200, + codecHighQuality = 0x00000300 +}; + + + // callbacks: typedef void* ImageCodecDrawBandCompleteUPP; -typedef void* ICMProgressProcRecord; -typedef void* ICMCompletionProcRecord; -typedef void* ICMDataProcRecord; +typedef long long ICMProgressProcRecord; +typedef long long ICMCompletionProcRecord; +typedef long long ICMDataProcRecord; typedef void* ICMFrameTimePtr; typedef void* CDSequenceDataSourcePtr; typedef void* ICMFrameTimeInfoPtr; @@ -240,8 +332,6 @@ typedef struct OpaqueGrafPtr* GrafPtr; typedef GrafPtr CGrafPtr; -typedef struct OpaqueRgnHandle* RgnHandle; - /* codec capabilities flags */ enum { @@ -354,7 +444,7 @@ -struct CodecCapabilities { +struct __attribute__((__packed__)) CodecCapabilities { long flags; short wantedPixelSize; short extendWidth; @@ -444,7 +534,7 @@ -struct ImageSubCodecDecompressCapabilities { +struct __attribute__((__packed__)) ImageSubCodecDecompressCapabilities { long recordSize; /* sizeof(ImageSubCodecDecompressCapabilities)*/ long decompressRecordSize; /* size of your codec's decompress record*/ Boolean canAsync; /* default true*/ @@ -466,7 +556,7 @@ typedef struct ImageSubCodecDecompressCapabilities ImageSubCodecDecompressCapabilities; -struct ImageSubCodecDecompressRecord { +struct __attribute__((__packed__)) ImageSubCodecDecompressRecord { Ptr baseAddr; long rowBytes; Ptr codecData; @@ -531,7 +621,7 @@ codecInfoSequenceSensitive = (1L << 13) /* compressed data is sensitive to out of sequence decoding */ }; -struct CodecInfo { +struct __attribute__((__packed__)) CodecInfo { Str31 typeName; /* name of the codec type i.e.: 'Apple Image Compression' */ short version; /* version of the codec data that this codec knows about */ short revisionLevel; /* revision level of this codec i.e: 0x00010001 (1.0.1) */ @@ -556,6 +646,15 @@ static inline void dump_ImageDescription(void* xxx){ ImageDescription* id=(ImageDescription*)xxx; unsigned char* x; + int i; + + for(i=0;i<id->idSize;i++){ + printf(" %02X",((unsigned char*)id)[i]); + if((i%16)==15) printf("\n"); + } + printf("\n"); + + printf("=============== ImageDescription at %p ==================\n",xxx); printf("idSize=0x%X fourcc=0x%08X\n",id->idSize,id->cType); printf("ver=%d rev=%d vendor=0x%08X\n",id->version,id->revisionLevel,id->vendor); @@ -616,11 +715,19 @@ static inline void dump_CodecDecompressParams(void* xxx){ CodecDecompressParams* cd=xxx; ImageDescription **idh; + int i; if(!xxx) return; printf("=============== CodecDecompressParams at %p ==================\n",xxx); printf("sequenceID=%d\n",cd->sequenceID); idh=cd->imageDescription; if(idh && idh[0]) dump_ImageDescription(idh[0]); + + for(i=0;i<sizeof(CodecDecompressParams);i++){ + printf(" %02X",((unsigned char*)cd)[i]); + if((i%16)==15) printf("\n"); + } + printf("\n"); + printf("data=%p size=%d\n",cd->data,cd->bufferSize); printf("frameno=%d lines: %d .. %d condflags=0x%X callerflags=0x%X\n", cd->frameNumber, cd->startLine, cd->stopLine, cd->conditionFlags,cd->callerFlags);