⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 components.h

📁 微软XBOX 上的XBMC_mplayer的源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
    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 ===========================

typedef Component                       CompressorComponent;
typedef Component                       DecompressorComponent;
typedef Component                       CodecComponent;

enum {
    codecLosslessQuality        = 0x00000400,
    codecMaxQuality             = 0x000003FF,
    codecMinQuality             = 0x00000000,
    codecLowQuality             = 0x00000100,
    codecNormalQuality          = 0x00000200,
    codecHighQuality            = 0x00000300
};



// callbacks:
typedef void* ImageCodecDrawBandCompleteUPP;
typedef long long ICMProgressProcRecord;
typedef long long ICMCompletionProcRecord;
typedef ICMCompletionProcRecord* ICMCompletionProcRecordPtr;
typedef long long ICMDataProcRecord;
typedef void* ICMFrameTimePtr;
typedef void* CDSequenceDataSourcePtr;
typedef void* ICMFrameTimeInfoPtr;

// graphics port
typedef struct OpaqueGrafPtr*           GrafPtr;
typedef GrafPtr                         CGrafPtr;


/*  codec capabilities flags    */
enum {
    codecCanScale               = 1L << 0,	// 1
    codecCanMask                = 1L << 1,	// 2
    codecCanMatte               = 1L << 2,	// 4
    codecCanTransform           = 1L << 3,	// 8
    codecCanTransferMode        = 1L << 4,	// 10
    codecCanCopyPrev            = 1L << 5,	// 20
    codecCanSpool               = 1L << 6,	// 40
    codecCanClipVertical        = 1L << 7,	// 80
    codecCanClipRectangular     = 1L << 8,	// 100
    codecCanRemapColor          = 1L << 9,	// 200
    codecCanFastDither          = 1L << 10,	// 400
    codecCanSrcExtract          = 1L << 11,	// 800
    codecCanCopyPrevComp        = 1L << 12,	// 1000
    codecCanAsync               = 1L << 13,	// 2000
    codecCanMakeMask            = 1L << 14,	// 4000
    codecCanShift               = 1L << 15,	// 8000
    codecCanAsyncWhen           = 1L << 16,	// 10000
    codecCanShieldCursor        = 1L << 17,	// 20000
    codecCanManagePrevBuffer    = 1L << 18,	// 40000
    codecHasVolatileBuffer      = 1L << 19,     // 80000                /* codec requires redraw after window movement */
    codecWantsRegionMask        = 1L << 20,	// 100000
    codecImageBufferIsOnScreen  = 1L << 21,     // 200000                /* old def of codec using overlay surface, = ( codecIsDirectToScreenOnly | codecUsesOverlaySurface | codecImageBufferIsOverlaySurface | codecSrcMustBeImageBuffer ) */
    codecWantsDestinationPixels = 1L << 22,     // 400000
    codecWantsSpecialScaling    = 1L << 23,     // 800000
    codecHandlesInputs          = 1L << 24,	// 1000000
    codecCanDoIndirectSurface   = 1L << 25,                     /* codec can handle indirect surface (GDI) */
    codecIsSequenceSensitive    = 1L << 26,
    codecRequiresOffscreen      = 1L << 27,
    codecRequiresMaskBits       = 1L << 28,
    codecCanRemapResolution     = 1L << 29,
    codecIsDirectToScreenOnly   = 1L << 30,                     /* codec can only decompress data to the screen */
    codecCanLockSurface         = 1L << 31                      /* codec can lock destination surface, icm doesn't lock for you */
};

/*  codec capabilities flags2   */
enum {
    codecUsesOverlaySurface     = 1L << 0,                      /* codec uses overlay surface */
    codecImageBufferIsOverlaySurface = 1L << 1,                 /* codec image buffer is overlay surface, the bits in the buffer are on the screen */
    codecSrcMustBeImageBuffer   = 1L << 2,                      /* codec can only source data from an image buffer */
    codecImageBufferIsInAGPMemory = 1L << 4,                    /* codec image buffer is in AGP space, byte writes are OK */
    codecImageBufferIsInPCIMemory = 1L << 5                     /* codec image buffer is across a PCI bus; byte writes are bad */
};

/*  codec condition flags   */
// FFD =  13 = 8+4+1
enum {
    codecConditionFirstBand     = 1L << 0,	// 1
    codecConditionLastBand      = 1L << 1,	// 2
    codecConditionFirstFrame    = 1L << 2,	// 4
    codecConditionNewDepth      = 1L << 3,	// 8
    codecConditionNewTransform  = 1L << 4,	// 10
    codecConditionNewSrcRect    = 1L << 5,	// 20
    codecConditionNewMask       = 1L << 6,	// 40
    codecConditionNewMatte      = 1L << 7,	// 80
    codecConditionNewTransferMode = 1L << 8,	// 100
    codecConditionNewClut       = 1L << 9,	// 200
    codecConditionNewAccuracy   = 1L << 10,	// 400
    codecConditionNewDestination = 1L << 11,	// 800
    codecConditionFirstScreen   = 1L << 12,	// 1000
    codecConditionDoCursor      = 1L << 13,	// 2000
    codecConditionCatchUpDiff   = 1L << 14,	// 4000
    codecConditionMaskMayBeChanged = 1L << 15,	// 8000
    codecConditionToBuffer      = 1L << 16,	// 10000
    codecConditionCodecChangedMask = 1L << 31	// 20000
};



struct __attribute__((__packed__)) CodecCapabilities {
    long                            flags;
    short                           wantedPixelSize;
    short                           extendWidth;
    short                           extendHeight;
    short                           bandMin;
    short                           bandInc;
    short                           pad;
    unsigned long                   time;
    long                            flags2;                     /* field new in QuickTime 4.0 */
};
typedef struct CodecCapabilities        CodecCapabilities;

struct __attribute__((__packed__)) CodecDecompressParams {
    ImageSequence                   sequenceID;                 /* predecompress,banddecompress */
    ImageDescriptionHandle          imageDescription;           /* predecompress,banddecompress */
    Ptr                             data;
    long                            bufferSize;

    long                            frameNumber;
    long                            startLine;
    long                            stopLine;
    long                            conditionFlags;

    CodecFlags                      callerFlags; // short
    CodecCapabilities *             capabilities;               /* predecompress,banddecompress */
    ICMProgressProcRecord           progressProcRecord;
    ICMCompletionProcRecord         completionProcRecord;

    ICMDataProcRecord               dataProcRecord;
    CGrafPtr                        port;                       /* predecompress,banddecompress */
    PixMap                          dstPixMap;                  /* predecompress,banddecompress */
    BitMapPtr                       maskBits;
    PixMapPtr                       mattePixMap;
    Rect                            srcRect;                    /* predecompress,banddecompress */
    MatrixRecord *                  matrix;                     /* predecompress,banddecompress */
    CodecQ                          accuracy;                   /* predecompress,banddecompress */
    short                           transferMode;               /* predecompress,banddecompress */
    ICMFrameTimePtr                 frameTime;                  /* banddecompress */
    long                            reserved[1];

                                                                /* The following fields only exist for QuickTime 2.0 and greater */
    SInt8                           matrixFlags;                /* high bit set if 2x resize */
    SInt8                           matrixType;
    Rect                            dstRect;                    /* only valid for simple transforms */

                                                                /* The following fields only exist for QuickTime 2.1 and greater */
    UInt16                          majorSourceChangeSeed;
    UInt16                          minorSourceChangeSeed;
    CDSequenceDataSourcePtr         sourceData;

    RgnHandle                       maskRegion;

                                                                /* The following fields only exist for QuickTime 2.5 and greater */
    OSType **                       wantedDestinationPixelTypes; /* Handle to 0-terminated list of OSTypes */

    long                            screenFloodMethod;
    long                            screenFloodValue;
    short                           preferredOffscreenPixelSize;

                                                                /* The following fields only exist for QuickTime 3.0 and greater */
    ICMFrameTimeInfoPtr             syncFrameTime;              /* banddecompress */
    Boolean                         needUpdateOnTimeChange;     /* banddecompress */
    Boolean                         enableBlackLining;
    Boolean                         needUpdateOnSourceChange;   /* band decompress */
    Boolean                         pad;

    long                            unused;

    CGrafPtr                        finalDestinationPort;

    long                            requestedBufferWidth;       /* must set codecWantsSpecialScaling to indicate this field is valid*/
    long                            requestedBufferHeight;      /* must set codecWantsSpecialScaling to indicate this field is valid*/

                                                                /* The following fields only exist for QuickTime 4.0 and greater */
    Rect                            displayableAreaOfRequestedBuffer; /* set in predecompress*/
    Boolean                         requestedSingleField;
    Boolean                         needUpdateOnNextIdle;
    Boolean                         pad2[2];
    Fixed                           bufferGammaLevel;

                                                                /* The following fields only exist for QuickTime 5.0 and greater */
    UInt32                          taskWeight;                 /* preferred weight for MP tasks implementing this operation*/
    OSType                          taskName;                   /* preferred name (type) for MP tasks implementing this operation*/
};
typedef struct CodecDecompressParams    CodecDecompressParams;



struct __attribute__((__packed__)) ImageSubCodecDecompressCapabilities {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -