/* File: ImageCompression.h Contains: QuickTime Interfaces. Version: Technology: QuickTime 6.0 Release: QuickTime 6.0.2 Copyright: (c) 1990-2001 by Apple Computer, Inc., all rights reserved Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __IMAGECOMPRESSION__ #define __IMAGECOMPRESSION__ #ifndef __MACTYPES__ #include #endif #ifndef __QUICKDRAW__ #include #endif #ifndef __QDOFFSCREEN__ #include #endif #ifndef __COMPONENTS__ #include #endif #ifndef __STANDARDFILE__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif struct MatrixRecord { Fixed matrix[3][3]; }; typedef struct MatrixRecord MatrixRecord; typedef MatrixRecord * MatrixRecordPtr; enum { kRawCodecType = FOUR_CHAR_CODE('raw '), kCinepakCodecType = FOUR_CHAR_CODE('cvid'), kGraphicsCodecType = FOUR_CHAR_CODE('smc '), kAnimationCodecType = FOUR_CHAR_CODE('rle '), kVideoCodecType = FOUR_CHAR_CODE('rpza'), kComponentVideoCodecType = FOUR_CHAR_CODE('yuv2'), kJPEGCodecType = FOUR_CHAR_CODE('jpeg'), kMotionJPEGACodecType = FOUR_CHAR_CODE('mjpa'), kMotionJPEGBCodecType = FOUR_CHAR_CODE('mjpb'), kSGICodecType = FOUR_CHAR_CODE('.SGI'), kPlanarRGBCodecType = FOUR_CHAR_CODE('8BPS'), kMacPaintCodecType = FOUR_CHAR_CODE('PNTG'), kGIFCodecType = FOUR_CHAR_CODE('gif '), kPhotoCDCodecType = FOUR_CHAR_CODE('kpcd'), kQuickDrawGXCodecType = FOUR_CHAR_CODE('qdgx'), kAVRJPEGCodecType = FOUR_CHAR_CODE('avr '), kOpenDMLJPEGCodecType = FOUR_CHAR_CODE('dmb1'), kBMPCodecType = FOUR_CHAR_CODE('WRLE'), kWindowsRawCodecType = FOUR_CHAR_CODE('WRAW'), kVectorCodecType = FOUR_CHAR_CODE('path'), kQuickDrawCodecType = FOUR_CHAR_CODE('qdrw'), kWaterRippleCodecType = FOUR_CHAR_CODE('ripl'), kFireCodecType = FOUR_CHAR_CODE('fire'), kCloudCodecType = FOUR_CHAR_CODE('clou'), kH261CodecType = FOUR_CHAR_CODE('h261'), kH263CodecType = FOUR_CHAR_CODE('h263'), kDVCNTSCCodecType = FOUR_CHAR_CODE('dvc '), /* DV - NTSC and DVCPRO NTSC (available in QuickTime 6.0 or later)*/ /* NOTE: kDVCProNTSCCodecType is deprecated. */ /* Use kDVCNTSCCodecType instead -- as far as the codecs are concerned, */ /* the two data formats are identical.*/ kDVCPALCodecType = FOUR_CHAR_CODE('dvcp'), kDVCProPALCodecType = FOUR_CHAR_CODE('dvpp'), /* available in QuickTime 6.0 or later*/ kBaseCodecType = FOUR_CHAR_CODE('base'), kFLCCodecType = FOUR_CHAR_CODE('flic'), kTargaCodecType = FOUR_CHAR_CODE('tga '), kPNGCodecType = FOUR_CHAR_CODE('png '), kTIFFCodecType = FOUR_CHAR_CODE('tiff'), /* NOTE: despite what might seem obvious from the two constants*/ /* below and their names, they really are correct. 'yuvu' really */ /* does mean signed, and 'yuvs' really does mean unsigned. Really. */ kComponentVideoSigned = FOUR_CHAR_CODE('yuvu'), kComponentVideoUnsigned = FOUR_CHAR_CODE('yuvs'), kCMYKCodecType = FOUR_CHAR_CODE('cmyk'), kMicrosoftVideo1CodecType = FOUR_CHAR_CODE('msvc'), kSorensonCodecType = FOUR_CHAR_CODE('SVQ1'), kSorenson3CodecType = FOUR_CHAR_CODE('SVQ3'), /* available in QuickTime 5 and later*/ kIndeo4CodecType = FOUR_CHAR_CODE('IV41'), kMPEG4VisualCodecType = FOUR_CHAR_CODE('mp4v'), k64ARGBCodecType = FOUR_CHAR_CODE('b64a'), k48RGBCodecType = FOUR_CHAR_CODE('b48r'), k32AlphaGrayCodecType = FOUR_CHAR_CODE('b32a'), k16GrayCodecType = FOUR_CHAR_CODE('b16g'), kMpegYUV420CodecType = FOUR_CHAR_CODE('myuv'), kYUV420CodecType = FOUR_CHAR_CODE('y420'), kSorensonYUV9CodecType = FOUR_CHAR_CODE('syv9'), k422YpCbCr8CodecType = FOUR_CHAR_CODE('2vuy'), /* Component Y'CbCr 8-bit 4:2:2 */ k444YpCbCr8CodecType = FOUR_CHAR_CODE('v308'), /* Component Y'CbCr 8-bit 4:4:4 */ k4444YpCbCrA8CodecType = FOUR_CHAR_CODE('v408'), /* Component Y'CbCrA 8-bit 4:4:4:4 */ k422YpCbCr16CodecType = FOUR_CHAR_CODE('v216'), /* Component Y'CbCr 10,12,14,16-bit 4:2:2*/ k422YpCbCr10CodecType = FOUR_CHAR_CODE('v210'), /* Component Y'CbCr 10-bit 4:2:2 */ k444YpCbCr10CodecType = FOUR_CHAR_CODE('v410'), /* Component Y'CbCr 10-bit 4:4:4 */ k4444YpCbCrA8RCodecType = FOUR_CHAR_CODE('r408') /* Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv*/ }; /* one source effects */ enum { kBlurImageFilterType = FOUR_CHAR_CODE('blur'), kSharpenImageFilterType = FOUR_CHAR_CODE('shrp'), kEdgeDetectImageFilterType = FOUR_CHAR_CODE('edge'), kEmbossImageFilterType = FOUR_CHAR_CODE('embs'), kConvolveImageFilterType = FOUR_CHAR_CODE('genk'), kAlphaGainImageFilterType = FOUR_CHAR_CODE('gain'), kRGBColorBalanceImageFilterType = FOUR_CHAR_CODE('rgbb'), kHSLColorBalanceImageFilterType = FOUR_CHAR_CODE('hslb'), kColorSyncImageFilterType = FOUR_CHAR_CODE('sync'), kFilmNoiseImageFilterType = FOUR_CHAR_CODE('fmns'), kSolarizeImageFilterType = FOUR_CHAR_CODE('solr'), kColorTintImageFilterType = FOUR_CHAR_CODE('tint'), kLensFlareImageFilterType = FOUR_CHAR_CODE('lens'), kBrightnessContrastImageFilterType = FOUR_CHAR_CODE('brco') }; /* two source effects */ enum { kAlphaCompositorTransitionType = FOUR_CHAR_CODE('blnd'), kCrossFadeTransitionType = FOUR_CHAR_CODE('dslv'), kChannelCompositeEffectType = FOUR_CHAR_CODE('chan'), kChromaKeyTransitionType = FOUR_CHAR_CODE('ckey'), kImplodeTransitionType = FOUR_CHAR_CODE('mplo'), kExplodeTransitionType = FOUR_CHAR_CODE('xplo'), kGradientTransitionType = FOUR_CHAR_CODE('matt'), kPushTransitionType = FOUR_CHAR_CODE('push'), kSlideTransitionType = FOUR_CHAR_CODE('slid'), kWipeTransitionType = FOUR_CHAR_CODE('smpt'), kIrisTransitionType = FOUR_CHAR_CODE('smp2'), kRadialTransitionType = FOUR_CHAR_CODE('smp3'), kMatrixTransitionType = FOUR_CHAR_CODE('smp4'), kZoomTransitionType = FOUR_CHAR_CODE('zoom') }; /* three source effects */ enum { kTravellingMatteEffectType = FOUR_CHAR_CODE('trav') }; /* Supported by QTNewGWorld in QuickTime 4.0 and later */ enum { kCMYKPixelFormat = FOUR_CHAR_CODE('cmyk'), /* CMYK, 8-bit */ k64ARGBPixelFormat = FOUR_CHAR_CODE('b64a'), /* ARGB, 16-bit big-endian samples */ k48RGBPixelFormat = FOUR_CHAR_CODE('b48r'), /* RGB, 16-bit big-endian samples */ k32AlphaGrayPixelFormat = FOUR_CHAR_CODE('b32a'), /* AlphaGray, 16-bit big-endian samples */ k16GrayPixelFormat = FOUR_CHAR_CODE('b16g'), /* Grayscale, 16-bit big-endian samples */ k422YpCbCr8PixelFormat = FOUR_CHAR_CODE('2vuy') /* Component Y'CbCr 8-bit 4:2:2, ordered Cb Y'0 Cr Y'1 */ }; /* Supported by QTNewGWorld in QuickTime 4.1.2 and later */ enum { k4444YpCbCrA8PixelFormat = FOUR_CHAR_CODE('v408'), /* Component Y'CbCrA 8-bit 4:4:4:4, ordered Cb Y' Cr A */ k4444YpCbCrA8RPixelFormat = FOUR_CHAR_CODE('r408') /* Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv, ordered A Y' Cb Cr */ }; /* Supported by QTNewGWorld in QuickTime 6.0 and later */ enum { kYUV420PixelFormat = FOUR_CHAR_CODE('y420') /* Planar Component Y'CbCr 8-bit 4:2:0. PixMap baseAddr points to a big-endian PlanarPixmapInfoYUV420 struct; see ImageCodec.i. */ }; /* These are the bits that are set in the Component flags, and also in the codecInfo struct. */ enum { codecInfoDoes1 = (1L << 0), /* codec can work with 1-bit pixels */ codecInfoDoes2 = (1L << 1), /* codec can work with 2-bit pixels */ codecInfoDoes4 = (1L << 2), /* codec can work with 4-bit pixels */ codecInfoDoes8 = (1L << 3), /* codec can work with 8-bit pixels */ codecInfoDoes16 = (1L << 4), /* codec can work with 16-bit pixels */ codecInfoDoes32 = (1L << 5), /* codec can work with 32-bit pixels */ codecInfoDoesDither = (1L << 6), /* codec can do ditherMode */ codecInfoDoesStretch = (1L << 7), /* codec can stretch to arbitrary sizes */ codecInfoDoesShrink = (1L << 8), /* codec can shrink to arbitrary sizes */ codecInfoDoesMask = (1L << 9), /* codec can mask to clipping regions */ codecInfoDoesTemporal = (1L << 10), /* codec can handle temporal redundancy */ codecInfoDoesDouble = (1L << 11), /* codec can stretch to double size exactly */ codecInfoDoesQuad = (1L << 12), /* codec can stretch to quadruple size exactly */ codecInfoDoesHalf = (1L << 13), /* codec can shrink to half size */ codecInfoDoesQuarter = (1L << 14), /* codec can shrink to quarter size */ codecInfoDoesRotate = (1L << 15), /* codec can rotate on decompress */ codecInfoDoesHorizFlip = (1L << 16), /* codec can flip horizontally on decompress */ codecInfoDoesVertFlip = (1L << 17), /* codec can flip vertically on decompress */ codecInfoHasEffectParameterList = (1L << 18), /* codec implements get effects parameter list call, once was codecInfoDoesSkew */ codecInfoDoesBlend = (1L << 19), /* codec can blend on decompress */ codecInfoDoesWarp = (1L << 20), /* codec can warp arbitrarily on decompress */ codecInfoDoesRecompress = (1L << 21), /* codec can recompress image without accumulating errors */ codecInfoDoesSpool = (1L << 22), /* codec can spool image data */ codecInfoDoesRateConstrain = (1L << 23) /* codec can data rate constrain */ }; enum { codecInfoDepth1 = (1L << 0), /* compressed data at 1 bpp depth available */ codecInfoDepth2 = (1L << 1), /* compressed data at 2 bpp depth available */ codecInfoDepth4 = (1L << 2), /* compressed data at 4 bpp depth available */ codecInfoDepth8 = (1L << 3), /* compressed data at 8 bpp depth available */ codecInfoDepth16 = (1L << 4), /* compressed data at 16 bpp depth available */ codecInfoDepth32 = (1L << 5), /* compressed data at 32 bpp depth available */ codecInfoDepth24 = (1L << 6), /* compressed data at 24 bpp depth available */ codecInfoDepth33 = (1L << 7), /* compressed data at 1 bpp monochrome depth available */ codecInfoDepth34 = (1L << 8), /* compressed data at 2 bpp grayscale depth available */ codecInfoDepth36 = (1L << 9), /* compressed data at 4 bpp grayscale depth available */ codecInfoDepth40 = (1L << 10), /* compressed data at 8 bpp grayscale depth available */ codecInfoStoresClut = (1L << 11), /* compressed data can have custom cluts */ codecInfoDoesLossless = (1L << 12), /* compressed data can be stored in lossless format */ codecInfoSequenceSensitive = (1L << 13) /* compressed data is sensitive to out of sequence decoding */ }; /* input sequence flags*/ enum { codecFlagUseImageBuffer = (1L << 0), /* decompress*/ codecFlagUseScreenBuffer = (1L << 1), /* decompress*/ codecFlagUpdatePrevious = (1L << 2), /* compress*/ codecFlagNoScreenUpdate = (1L << 3), /* decompress*/ codecFlagWasCompressed = (1L << 4), /* compress*/ codecFlagDontOffscreen = (1L << 5), /* decompress*/ codecFlagUpdatePreviousComp = (1L << 6), /* compress*/ codecFlagForceKeyFrame = (1L << 7), /* compress*/ codecFlagOnlyScreenUpdate = (1L << 8), /* decompress*/ codecFlagLiveGrab = (1L << 9), /* compress*/ codecFlagDiffFrame = (1L << 9), /* decompress*/ codecFlagDontUseNewImageBuffer = (1L << 10), /* decompress*/ codecFlagInterlaceUpdate = (1L << 11), /* decompress*/ codecFlagCatchUpDiff = (1L << 12), /* decompress*/ codecFlagSupportDisable = (1L << 13), /* decompress*/ codecFlagReenable = (1L << 14) /* decompress*/ }; /* output sequence flags*/ enum { codecFlagOutUpdateOnNextIdle = (1L << 9), codecFlagOutUpdateOnDataSourceChange = (1L << 10), codecFlagSequenceSensitive = (1L << 11), codecFlagOutUpdateOnTimeChange = (1L << 12), codecFlagImageBufferNotSourceImage = (1L << 13), codecFlagUsedNewImageBuffer = (1L << 14), codecFlagUsedImageBuffer = (1L << 15) }; enum { /* The minimum data size for spooling in or out data */ codecMinimumDataSize = 32768L }; enum { compressorComponentType = FOUR_CHAR_CODE('imco'), /* the type for "Components" which compress images */ decompressorComponentType = FOUR_CHAR_CODE('imdc') /* the type for "Components" which decompress images */ }; typedef Component CompressorComponent; typedef Component DecompressorComponent; typedef Component CodecComponent; #define anyCodec ((CodecComponent)0) #define bestSpeedCodec ((CodecComponent)-1) #define bestFidelityCodec ((CodecComponent)-2) #define bestCompressionCodec ((CodecComponent)-3) typedef OSType CodecType; typedef unsigned short CodecFlags; typedef unsigned long CodecQ; enum { codecLosslessQuality = 0x00000400, codecMaxQuality = 0x000003FF, codecMinQuality = 0x00000000, codecLowQuality = 0x00000100, codecNormalQuality = 0x00000200, codecHighQuality = 0x00000300 }; enum { codecLockBitsShieldCursor = (1 << 0) /* shield cursor */ }; enum { codecCompletionSource = (1 << 0), /* asynchronous codec is done with source data */ codecCompletionDest = (1 << 1), /* asynchronous codec is done with destination data */ codecCompletionDontUnshield = (1 << 2), /* on dest complete don't unshield cursor */ codecCompletionWentOffscreen = (1 << 3), /* codec used offscreen buffer */ codecCompletionUnlockBits = (1 << 4), /* on dest complete, call ICMSequenceUnlockBits */ codecCompletionForceChainFlush = (1 << 5), /* ICM needs to flush the whole chain */ codecCompletionDropped = (1 << 6) /* codec decided to drop this frame */ }; enum { codecProgressOpen = 0, codecProgressUpdatePercent = 1, codecProgressClose = 2 }; typedef CALLBACK_API( OSErr , ICMDataProcPtr )(Ptr *dataP, long bytesNeeded, long refcon); typedef CALLBACK_API( OSErr , ICMFlushProcPtr )(Ptr data, long bytesAdded, long refcon); typedef CALLBACK_API( void , ICMCompletionProcPtr )(OSErr result, short flags, long refcon); typedef CALLBACK_API( OSErr , ICMProgressProcPtr )(short message, Fixed completeness, long refcon); typedef CALLBACK_API( void , StdPixProcPtr )(PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode, RgnHandle mask, PixMap *matte, Rect *matteRect, short flags); typedef CALLBACK_API( void , QDPixProcPtr )(PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode, RgnHandle mask, PixMap *matte, Rect *matteRect, short flags); typedef CALLBACK_API( void , ICMAlignmentProcPtr )(Rect *rp, long refcon); typedef CALLBACK_API( void , ICMCursorShieldedProcPtr )(const Rect *r, void *refcon, long flags); typedef CALLBACK_API( void , ICMMemoryDisposedProcPtr )(Ptr memoryBlock, void *refcon); typedef void * ICMCursorNotify; typedef CALLBACK_API( OSErr , ICMConvertDataFormatProcPtr )(void *refCon, long flags, Handle desiredFormat, Handle sourceDataFormat, void *srcData, long srcDataSize, void **dstData, long *dstDataSize); typedef STACK_UPP_TYPE(ICMDataProcPtr) ICMDataUPP; typedef STACK_UPP_TYPE(ICMFlushProcPtr) ICMFlushUPP; typedef STACK_UPP_TYPE(ICMCompletionProcPtr) ICMCompletionUPP; typedef STACK_UPP_TYPE(ICMProgressProcPtr) ICMProgressUPP; typedef STACK_UPP_TYPE(StdPixProcPtr) StdPixUPP; typedef STACK_UPP_TYPE(QDPixProcPtr) QDPixUPP; typedef STACK_UPP_TYPE(ICMAlignmentProcPtr) ICMAlignmentUPP; typedef STACK_UPP_TYPE(ICMCursorShieldedProcPtr) ICMCursorShieldedUPP; typedef STACK_UPP_TYPE(ICMMemoryDisposedProcPtr) ICMMemoryDisposedUPP; typedef STACK_UPP_TYPE(ICMConvertDataFormatProcPtr) ICMConvertDataFormatUPP; typedef long ImageSequence; typedef long ImageSequenceDataSource; typedef long ImageTranscodeSequence; typedef long ImageFieldSequence; struct ICMProgressProcRecord { ICMProgressUPP progressProc; long progressRefCon; }; typedef struct ICMProgressProcRecord ICMProgressProcRecord; typedef ICMProgressProcRecord * ICMProgressProcRecordPtr; struct ICMCompletionProcRecord { ICMCompletionUPP completionProc; long completionRefCon; }; typedef struct ICMCompletionProcRecord ICMCompletionProcRecord; typedef ICMCompletionProcRecord * ICMCompletionProcRecordPtr; struct ICMDataProcRecord { ICMDataUPP dataProc; long dataRefCon; }; typedef struct ICMDataProcRecord ICMDataProcRecord; typedef ICMDataProcRecord * ICMDataProcRecordPtr; struct ICMFlushProcRecord { ICMFlushUPP flushProc; long flushRefCon; }; typedef struct ICMFlushProcRecord ICMFlushProcRecord; typedef ICMFlushProcRecord * ICMFlushProcRecordPtr; struct ICMAlignmentProcRecord { ICMAlignmentUPP alignmentProc; long alignmentRefCon; }; typedef struct ICMAlignmentProcRecord ICMAlignmentProcRecord; typedef ICMAlignmentProcRecord * ICMAlignmentProcRecordPtr; struct DataRateParams { long dataRate; long dataOverrun; long frameDuration; long keyFrameRate; CodecQ minSpatialQuality; CodecQ minTemporalQuality; }; typedef struct DataRateParams DataRateParams; typedef DataRateParams * DataRateParamsPtr; struct 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 */ short resvd2; /* reserved for Apple use */ short dataRefIndex; /* set to zero */ short version; /* which version is this data */ short revisionLevel; /* what version of that codec did this */ long vendor; /* whose codec compressed this data */ CodecQ temporalQuality; /* what was the temporal quality factor */ CodecQ spatialQuality; /* what was the spatial quality factor */ short width; /* how many pixels wide is this data */ short height; /* how many pixels high is this data */ Fixed hRes; /* horizontal resolution */ Fixed vRes; /* vertical resolution */ long dataSize; /* if known, the size of data for this image descriptor */ short frameCount; /* number of frames this description applies to */ Str31 name; /* name of codec ( in case not installed ) */ short depth; /* what depth is this data (1-32) or ( 33-40 grayscale ) */ short clutID; /* clut id or if 0 clut follows or -1 if no clut */ }; typedef struct ImageDescription ImageDescription; typedef ImageDescription * ImageDescriptionPtr; typedef ImageDescriptionPtr * ImageDescriptionHandle; struct 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) */ long vendor; /* Maker of this codec i.e: 'appl' */ long decompressFlags; /* codecInfo flags for decompression capabilities */ long compressFlags; /* codecInfo flags for compression capabilities */ long formatFlags; /* codecInfo flags for compression format details */ UInt8 compressionAccuracy; /* measure (1-255) of accuracy of this codec for compress (0 if unknown) */ UInt8 decompressionAccuracy; /* measure (1-255) of accuracy of this codec for decompress (0 if unknown) */ unsigned short compressionSpeed; /* ( millisecs for compressing 320x240 on base mac II) (0 if unknown) */ unsigned short decompressionSpeed; /* ( millisecs for decompressing 320x240 on mac II)(0 if unknown) */ UInt8 compressionLevel; /* measure (1-255) of compression level of this codec (0 if unknown) */ UInt8 resvd; /* pad */ short minimumHeight; /* minimum height of image (block size) */ short minimumWidth; /* minimum width of image (block size) */ short decompressPipelineLatency; /* in milliseconds ( for asynchronous codecs ) */ short compressPipelineLatency; /* in milliseconds ( for asynchronous codecs ) */ long privateData; }; typedef struct CodecInfo CodecInfo; struct CodecNameSpec { CodecComponent codec; CodecType cType; Str31 typeName; Handle name; }; typedef struct CodecNameSpec CodecNameSpec; struct CodecNameSpecList { short count; CodecNameSpec list[1]; }; typedef struct CodecNameSpecList CodecNameSpecList; typedef CodecNameSpecList * CodecNameSpecListPtr; enum { defaultDither = 0, forceDither = 1, suppressDither = 2, useColorMatching = 4 }; enum { callStdBits = 1, callOldBits = 2, noDefaultOpcodes = 4 }; enum { graphicsModeStraightAlpha = 256, graphicsModePreWhiteAlpha = 257, graphicsModePreBlackAlpha = 258, graphicsModeComposition = 259, graphicsModeStraightAlphaBlend = 260, graphicsModePreMulColorAlpha = 261 }; enum { evenField1ToEvenFieldOut = 1 << 0, evenField1ToOddFieldOut = 1 << 1, oddField1ToEvenFieldOut = 1 << 2, oddField1ToOddFieldOut = 1 << 3, evenField2ToEvenFieldOut = 1 << 4, evenField2ToOddFieldOut = 1 << 5, oddField2ToEvenFieldOut = 1 << 6, oddField2ToOddFieldOut = 1 << 7 }; enum { icmFrameTimeHasVirtualStartTimeAndDuration = 1 << 0 }; struct ICMFrameTimeRecord { wide value; /* frame time*/ long scale; /* timescale of value/duration fields*/ void * base; /* timebase*/ long duration; /* duration frame is to be displayed (0 if unknown)*/ Fixed rate; /* rate of timebase relative to wall-time*/ long recordSize; /* total number of bytes in ICMFrameTimeRecord*/ long frameNumber; /* number of frame, zero if not known*/ long flags; wide virtualStartTime; /* conceptual start time*/ long virtualDuration; /* conceptual duration*/ }; typedef struct ICMFrameTimeRecord ICMFrameTimeRecord; typedef ICMFrameTimeRecord * ICMFrameTimePtr; #ifndef __QTUUID__ #define __QTUUID__ 1 /* QuickTime flavor of universally unique identifier (uuid)*/ struct QTUUID { UInt32 data1; UInt16 data2; UInt16 data3; UInt8 data4[8]; }; typedef struct QTUUID QTUUID; typedef QTUUID QTMediaContextID; #endif /* !defined(__QTUUID__) */ #if OPAQUE_UPP_TYPES EXTERN_API(ICMDataUPP) NewICMDataUPP (ICMDataProcPtr userRoutine); EXTERN_API(ICMFlushUPP) NewICMFlushUPP (ICMFlushProcPtr userRoutine); EXTERN_API(ICMCompletionUPP) NewICMCompletionUPP (ICMCompletionProcPtr userRoutine); EXTERN_API(ICMProgressUPP) NewICMProgressUPP (ICMProgressProcPtr userRoutine); EXTERN_API(StdPixUPP) NewStdPixUPP (StdPixProcPtr userRoutine); EXTERN_API(QDPixUPP) NewQDPixUPP (QDPixProcPtr userRoutine); EXTERN_API(ICMAlignmentUPP) NewICMAlignmentUPP (ICMAlignmentProcPtr userRoutine); EXTERN_API(ICMCursorShieldedUPP) NewICMCursorShieldedUPP (ICMCursorShieldedProcPtr userRoutine); EXTERN_API(ICMMemoryDisposedUPP) NewICMMemoryDisposedUPP (ICMMemoryDisposedProcPtr userRoutine); EXTERN_API(ICMConvertDataFormatUPP) NewICMConvertDataFormatUPP (ICMConvertDataFormatProcPtr userRoutine); EXTERN_API(void) DisposeICMDataUPP (ICMDataUPP userUPP); EXTERN_API(void) DisposeICMFlushUPP (ICMFlushUPP userUPP); EXTERN_API(void) DisposeICMCompletionUPP (ICMCompletionUPP userUPP); EXTERN_API(void) DisposeICMProgressUPP (ICMProgressUPP userUPP); EXTERN_API(void) DisposeStdPixUPP (StdPixUPP userUPP); EXTERN_API(void) DisposeQDPixUPP (QDPixUPP userUPP); EXTERN_API(void) DisposeICMAlignmentUPP (ICMAlignmentUPP userUPP); EXTERN_API(void) DisposeICMCursorShieldedUPP (ICMCursorShieldedUPP userUPP); EXTERN_API(void) DisposeICMMemoryDisposedUPP (ICMMemoryDisposedUPP userUPP); EXTERN_API(void) DisposeICMConvertDataFormatUPP (ICMConvertDataFormatUPP userUPP); EXTERN_API(OSErr) InvokeICMDataUPP (Ptr * dataP, long bytesNeeded, long refcon, ICMDataUPP userUPP); EXTERN_API(OSErr) InvokeICMFlushUPP (Ptr data, long bytesAdded, long refcon, ICMFlushUPP userUPP); EXTERN_API(void) InvokeICMCompletionUPP (OSErr result, short flags, long refcon, ICMCompletionUPP userUPP); EXTERN_API(OSErr) InvokeICMProgressUPP (short message, Fixed completeness, long refcon, ICMProgressUPP userUPP); EXTERN_API(void) InvokeStdPixUPP (PixMap * src, Rect * srcRect, MatrixRecord * matrix, short mode, RgnHandle mask, PixMap * matte, Rect * matteRect, short flags, StdPixUPP userUPP); EXTERN_API(void) InvokeQDPixUPP (PixMap * src, Rect * srcRect, MatrixRecord * matrix, short mode, RgnHandle mask, PixMap * matte, Rect * matteRect, short flags, QDPixUPP userUPP); EXTERN_API(void) InvokeICMAlignmentUPP (Rect * rp, long refcon, ICMAlignmentUPP userUPP); EXTERN_API(void) InvokeICMCursorShieldedUPP (const Rect * r, void * refcon, long flags, ICMCursorShieldedUPP userUPP); EXTERN_API(void) InvokeICMMemoryDisposedUPP (Ptr memoryBlock, void * refcon, ICMMemoryDisposedUPP userUPP); EXTERN_API(OSErr) InvokeICMConvertDataFormatUPP (void * refCon, long flags, Handle desiredFormat, Handle sourceDataFormat, void * srcData, long srcDataSize, void ** dstData, long * dstDataSize, ICMConvertDataFormatUPP userUPP); #else enum { uppICMDataProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */ enum { uppICMFlushProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */ enum { uppICMCompletionProcInfo = 0x00000E80 }; /* pascal no_return_value Func(2_bytes, 2_bytes, 4_bytes) */ enum { uppICMProgressProcInfo = 0x00000FA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */ enum { uppStdPixProcInfo = 0x002FEFC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 2_bytes) */ enum { uppQDPixProcInfo = 0x002FEFC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 2_bytes) */ enum { uppICMAlignmentProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ enum { uppICMCursorShieldedProcInfo = 0x00000FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */ enum { uppICMMemoryDisposedProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ enum { uppICMConvertDataFormatProcInfo = 0x003FFFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #define NewICMDataUPP(userRoutine) (ICMDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMDataProcInfo, GetCurrentArchitecture()) #define NewICMFlushUPP(userRoutine) (ICMFlushUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMFlushProcInfo, GetCurrentArchitecture()) #define NewICMCompletionUPP(userRoutine) (ICMCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMCompletionProcInfo, GetCurrentArchitecture()) #define NewICMProgressUPP(userRoutine) (ICMProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMProgressProcInfo, GetCurrentArchitecture()) #define NewStdPixUPP(userRoutine) (StdPixUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppStdPixProcInfo, GetCurrentArchitecture()) #define NewQDPixUPP(userRoutine) (QDPixUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPixProcInfo, GetCurrentArchitecture()) #define NewICMAlignmentUPP(userRoutine) (ICMAlignmentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMAlignmentProcInfo, GetCurrentArchitecture()) #define NewICMCursorShieldedUPP(userRoutine) (ICMCursorShieldedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMCursorShieldedProcInfo, GetCurrentArchitecture()) #define NewICMMemoryDisposedUPP(userRoutine) (ICMMemoryDisposedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMMemoryDisposedProcInfo, GetCurrentArchitecture()) #define NewICMConvertDataFormatUPP(userRoutine) (ICMConvertDataFormatUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMConvertDataFormatProcInfo, GetCurrentArchitecture()) #define DisposeICMDataUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeICMFlushUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeICMCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeICMProgressUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeStdPixUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeQDPixUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeICMAlignmentUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeICMCursorShieldedUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeICMMemoryDisposedUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeICMConvertDataFormatUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define InvokeICMDataUPP(dataP, bytesNeeded, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppICMDataProcInfo, (dataP), (bytesNeeded), (refcon)) #define InvokeICMFlushUPP(data, bytesAdded, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppICMFlushProcInfo, (data), (bytesAdded), (refcon)) #define InvokeICMCompletionUPP(result, flags, refcon, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppICMCompletionProcInfo, (result), (flags), (refcon)) #define InvokeICMProgressUPP(message, completeness, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppICMProgressProcInfo, (message), (completeness), (refcon)) #define InvokeStdPixUPP(src, srcRect, matrix, mode, mask, matte, matteRect, flags, userUPP) CALL_EIGHT_PARAMETER_UPP((userUPP), uppStdPixProcInfo, (src), (srcRect), (matrix), (mode), (mask), (matte), (matteRect), (flags)) #define InvokeQDPixUPP(src, srcRect, matrix, mode, mask, matte, matteRect, flags, userUPP) CALL_EIGHT_PARAMETER_UPP((userUPP), uppQDPixProcInfo, (src), (srcRect), (matrix), (mode), (mask), (matte), (matteRect), (flags)) #define InvokeICMAlignmentUPP(rp, refcon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppICMAlignmentProcInfo, (rp), (refcon)) #define InvokeICMCursorShieldedUPP(r, refcon, flags, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppICMCursorShieldedProcInfo, (r), (refcon), (flags)) #define InvokeICMMemoryDisposedUPP(memoryBlock, refcon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppICMMemoryDisposedProcInfo, (memoryBlock), (refcon)) #define InvokeICMConvertDataFormatUPP(refCon, flags, desiredFormat, sourceDataFormat, srcData, srcDataSize, dstData, dstDataSize, userUPP) (OSErr)CALL_EIGHT_PARAMETER_UPP((userUPP), uppICMConvertDataFormatProcInfo, (refCon), (flags), (desiredFormat), (sourceDataFormat), (srcData), (srcDataSize), (dstData), (dstDataSize)) #endif /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */ #define NewICMDataProc(userRoutine) NewICMDataUPP(userRoutine) #define NewICMFlushProc(userRoutine) NewICMFlushUPP(userRoutine) #define NewICMCompletionProc(userRoutine) NewICMCompletionUPP(userRoutine) #define NewICMProgressProc(userRoutine) NewICMProgressUPP(userRoutine) #define NewStdPixProc(userRoutine) NewStdPixUPP(userRoutine) #define NewQDPixProc(userRoutine) NewQDPixUPP(userRoutine) #define NewICMAlignmentProc(userRoutine) NewICMAlignmentUPP(userRoutine) #define NewICMCursorShieldedProc(userRoutine) NewICMCursorShieldedUPP(userRoutine) #define NewICMMemoryDisposedProc(userRoutine) NewICMMemoryDisposedUPP(userRoutine) #define NewICMConvertDataFormatProc(userRoutine) NewICMConvertDataFormatUPP(userRoutine) #define CallICMDataProc(userRoutine, dataP, bytesNeeded, refcon) InvokeICMDataUPP(dataP, bytesNeeded, refcon, userRoutine) #define CallICMFlushProc(userRoutine, data, bytesAdded, refcon) InvokeICMFlushUPP(data, bytesAdded, refcon, userRoutine) #define CallICMCompletionProc(userRoutine, result, flags, refcon) InvokeICMCompletionUPP(result, flags, refcon, userRoutine) #define CallICMProgressProc(userRoutine, message, completeness, refcon) InvokeICMProgressUPP(message, completeness, refcon, userRoutine) #define CallStdPixProc(userRoutine, src, srcRect, matrix, mode, mask, matte, matteRect, flags) InvokeStdPixUPP(src, srcRect, matrix, mode, mask, matte, matteRect, flags, userRoutine) #define CallQDPixProc(userRoutine, src, srcRect, matrix, mode, mask, matte, matteRect, flags) InvokeQDPixUPP(src, srcRect, matrix, mode, mask, matte, matteRect, flags, userRoutine) #define CallICMAlignmentProc(userRoutine, rp, refcon) InvokeICMAlignmentUPP(rp, refcon, userRoutine) #define CallICMCursorShieldedProc(userRoutine, r, refcon, flags) InvokeICMCursorShieldedUPP(r, refcon, flags, userRoutine) #define CallICMMemoryDisposedProc(userRoutine, memoryBlock, refcon) InvokeICMMemoryDisposedUPP(memoryBlock, refcon, userRoutine) #define CallICMConvertDataFormatProc(userRoutine, refCon, flags, desiredFormat, sourceDataFormat, srcData, srcDataSize, dstData, dstDataSize) InvokeICMConvertDataFormatUPP(refCon, flags, desiredFormat, sourceDataFormat, srcData, srcDataSize, dstData, dstDataSize, userRoutine) EXTERN_API( OSErr ) CodecManagerVersion (long * version) TWOWORDINLINE(0x7000, 0xAAA3); EXTERN_API( OSErr ) GetCodecNameList (CodecNameSpecListPtr * list, short showAll) TWOWORDINLINE(0x7001, 0xAAA3); EXTERN_API( OSErr ) DisposeCodecNameList (CodecNameSpecListPtr list) TWOWORDINLINE(0x700F, 0xAAA3); EXTERN_API( OSErr ) GetCodecInfo (CodecInfo * info, CodecType cType, CodecComponent codec) TWOWORDINLINE(0x7003, 0xAAA3); EXTERN_API( OSErr ) GetMaxCompressionSize (PixMapHandle src, const Rect * srcRect, short colorDepth, CodecQ quality, CodecType cType, CompressorComponent codec, long * size) TWOWORDINLINE(0x7004, 0xAAA3); EXTERN_API( OSErr ) GetCSequenceMaxCompressionSize (ImageSequence seqID, PixMapHandle src, long * size) FOURWORDINLINE(0x203C, 0x000C, 0x0074, 0xAAA3); EXTERN_API( OSErr ) GetCompressionTime (PixMapHandle src, const Rect * srcRect, short colorDepth, CodecType cType, CompressorComponent codec, CodecQ * spatialQuality, CodecQ * temporalQuality, unsigned long * compressTime) TWOWORDINLINE(0x7005, 0xAAA3); EXTERN_API( OSErr ) CompressImage (PixMapHandle src, const Rect * srcRect, CodecQ quality, CodecType cType, ImageDescriptionHandle desc, Ptr data) TWOWORDINLINE(0x7006, 0xAAA3); EXTERN_API( OSErr ) FCompressImage (PixMapHandle src, const Rect * srcRect, short colorDepth, CodecQ quality, CodecType cType, CompressorComponent codec, CTabHandle ctable, CodecFlags flags, long bufferSize, ICMFlushProcRecordPtr flushProc, ICMProgressProcRecordPtr progressProc, ImageDescriptionHandle desc, Ptr data) TWOWORDINLINE(0x7007, 0xAAA3); EXTERN_API( OSErr ) DecompressImage (Ptr data, ImageDescriptionHandle desc, PixMapHandle dst, const Rect * srcRect, const Rect * dstRect, short mode, RgnHandle mask) TWOWORDINLINE(0x7008, 0xAAA3); EXTERN_API( OSErr ) FDecompressImage (Ptr data, ImageDescriptionHandle desc, PixMapHandle dst, const Rect * srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, PixMapHandle matte, const Rect * matteRect, CodecQ accuracy, DecompressorComponent codec, long bufferSize, ICMDataProcRecordPtr dataProc, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x7009, 0xAAA3); EXTERN_API( OSErr ) CompressSequenceBegin (ImageSequence * seqID, PixMapHandle src, PixMapHandle prev, const Rect * srcRect, const Rect * prevRect, short colorDepth, CodecType cType, CompressorComponent codec, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate, CTabHandle ctable, CodecFlags flags, ImageDescriptionHandle desc) TWOWORDINLINE(0x700A, 0xAAA3); EXTERN_API( OSErr ) CompressSequenceFrame (ImageSequence seqID, PixMapHandle src, const Rect * srcRect, CodecFlags flags, Ptr data, long * dataSize, UInt8 * similarity, ICMCompletionProcRecordPtr asyncCompletionProc) TWOWORDINLINE(0x700B, 0xAAA3); EXTERN_API( OSErr ) DecompressSequenceBegin (ImageSequence * seqID, ImageDescriptionHandle desc, CGrafPtr port, GDHandle gdh, const Rect * srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, CodecFlags flags, CodecQ accuracy, DecompressorComponent codec) TWOWORDINLINE(0x700D, 0xAAA3); EXTERN_API( OSErr ) DecompressSequenceBeginS (ImageSequence * seqID, ImageDescriptionHandle desc, Ptr data, long dataSize, CGrafPtr port, GDHandle gdh, const Rect * srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, CodecFlags flags, CodecQ accuracy, DecompressorComponent codec) FOURWORDINLINE(0x203C, 0x0030, 0x005D, 0xAAA3); EXTERN_API( OSErr ) DecompressSequenceFrame (ImageSequence seqID, Ptr data, CodecFlags inFlags, CodecFlags * outFlags, ICMCompletionProcRecordPtr asyncCompletionProc) TWOWORDINLINE(0x700E, 0xAAA3); EXTERN_API( OSErr ) DecompressSequenceFrameS (ImageSequence seqID, Ptr data, long dataSize, CodecFlags inFlags, CodecFlags * outFlags, ICMCompletionProcRecordPtr asyncCompletionProc) FOURWORDINLINE(0x203C, 0x0016, 0x0047, 0xAAA3); EXTERN_API( OSErr ) DecompressSequenceFrameWhen (ImageSequence seqID, Ptr data, long dataSize, CodecFlags inFlags, CodecFlags * outFlags, ICMCompletionProcRecordPtr asyncCompletionProc, const ICMFrameTimeRecord * frameTime) FOURWORDINLINE(0x203C, 0x001A, 0x005E, 0xAAA3); EXTERN_API( OSErr ) CDSequenceFlush (ImageSequence seqID) FOURWORDINLINE(0x203C, 0x0004, 0x005F, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceMatrix (ImageSequence seqID, MatrixRecordPtr matrix) TWOWORDINLINE(0x7010, 0xAAA3); EXTERN_API( OSErr ) GetDSequenceMatrix (ImageSequence seqID, MatrixRecordPtr matrix) FOURWORDINLINE(0x203C, 0x0008, 0x0091, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceMatte (ImageSequence seqID, PixMapHandle matte, const Rect * matteRect) TWOWORDINLINE(0x7011, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceMask (ImageSequence seqID, RgnHandle mask) TWOWORDINLINE(0x7012, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceTransferMode (ImageSequence seqID, short mode, const RGBColor * opColor) TWOWORDINLINE(0x7013, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceDataProc (ImageSequence seqID, ICMDataProcRecordPtr dataProc, long bufferSize) TWOWORDINLINE(0x7014, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceAccuracy (ImageSequence seqID, CodecQ accuracy) TWOWORDINLINE(0x7034, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceSrcRect (ImageSequence seqID, const Rect * srcRect) TWOWORDINLINE(0x7035, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceFlags (ImageSequence seqID, long flags, long flagsMask) FOURWORDINLINE(0x203C, 0x000C, 0x0057, 0xAAA3); enum { codecDSequenceDisableOverlaySurface = (1L << 5), codecDSequenceSingleField = (1L << 6), codecDSequenceBidirectionalPrediction = (1L << 7), codecDSequenceFlushInsteadOfDirtying = (1L << 8), codecDSequenceEnableSubPixelPositioning = (1L << 9) }; typedef CodecComponent * CodecComponentPtr; typedef CodecComponentPtr * CodecComponentHandle; /* selectors for ICMSequenceGet/SetInfo*/ enum { kICMSequenceTaskWeight = FOUR_CHAR_CODE('twei'), /* data is pointer to UInt32*/ kICMSequenceTaskName = FOUR_CHAR_CODE('tnam'), /* data is pointer to OSType*/ kICMSequenceUserPreferredCodecs = FOUR_CHAR_CODE('punt') /* data is pointer to CodecComponentHandle*/ }; EXTERN_API( OSErr ) ICMSequenceGetInfo (ImageSequence seqID, OSType which, void * data) FOURWORDINLINE(0x203C, 0x000C, 0x0089, 0xAAA3); EXTERN_API( OSErr ) ICMSequenceSetInfo (ImageSequence seqID, OSType which, void * data, Size dataSize) FOURWORDINLINE(0x203C, 0x0010, 0x009D, 0xAAA3); EXTERN_API( OSErr ) GetDSequenceImageBuffer (ImageSequence seqID, GWorldPtr * gworld) TWOWORDINLINE(0x7015, 0xAAA3); EXTERN_API( OSErr ) GetDSequenceScreenBuffer (ImageSequence seqID, GWorldPtr * gworld) TWOWORDINLINE(0x7016, 0xAAA3); EXTERN_API( OSErr ) SetCSequenceQuality (ImageSequence seqID, CodecQ spatialQuality, CodecQ temporalQuality) TWOWORDINLINE(0x7017, 0xAAA3); EXTERN_API( OSErr ) SetCSequencePrev (ImageSequence seqID, PixMapHandle prev, const Rect * prevRect) TWOWORDINLINE(0x7018, 0xAAA3); EXTERN_API( OSErr ) SetCSequenceFlushProc (ImageSequence seqID, ICMFlushProcRecordPtr flushProc, long bufferSize) TWOWORDINLINE(0x7033, 0xAAA3); EXTERN_API( OSErr ) SetCSequenceKeyFrameRate (ImageSequence seqID, long keyFrameRate) TWOWORDINLINE(0x7036, 0xAAA3); EXTERN_API( OSErr ) GetCSequenceKeyFrameRate (ImageSequence seqID, long * keyFrameRate) FOURWORDINLINE(0x203C, 0x0008, 0x004B, 0xAAA3); EXTERN_API( OSErr ) GetCSequencePrevBuffer (ImageSequence seqID, GWorldPtr * gworld) TWOWORDINLINE(0x7019, 0xAAA3); EXTERN_API( OSErr ) CDSequenceBusy (ImageSequence seqID) TWOWORDINLINE(0x701A, 0xAAA3); EXTERN_API( OSErr ) CDSequenceEnd (ImageSequence seqID) TWOWORDINLINE(0x701B, 0xAAA3); EXTERN_API( OSErr ) CDSequenceEquivalentImageDescription (ImageSequence seqID, ImageDescriptionHandle newDesc, Boolean * equivalent) FOURWORDINLINE(0x203C, 0x000C, 0x0065, 0xAAA3); EXTERN_API( OSErr ) CDSequenceEquivalentImageDescriptionS (ImageSequence seqID, ImageDescriptionHandle newDesc, Boolean * equivalent, Boolean * canSwitch) FOURWORDINLINE(0x203C, 0x0010, 0x009F, 0xAAA3); EXTERN_API( OSErr ) ReplaceDSequenceImageDescription (ImageSequence seqID, ImageDescriptionHandle newDesc) FOURWORDINLINE(0x203C, 0x0008, 0x00A0, 0xAAA3); EXTERN_API( OSErr ) GetCompressedImageSize (ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long * dataSize) TWOWORDINLINE(0x701C, 0xAAA3); EXTERN_API( OSErr ) GetSimilarity (PixMapHandle src, const Rect * srcRect, ImageDescriptionHandle desc, Ptr data, Fixed * similarity) TWOWORDINLINE(0x701D, 0xAAA3); enum { kImageDescriptionSampleFormat = FOUR_CHAR_CODE('idfm'), /* image description extension describing sample format*/ kImageDescriptionClassicAtomFormat = FOUR_CHAR_CODE('atom'), /* sample contains classic atom structure (ie, GX codec and Curve codec)*/ kImageDescriptionQTAtomFormat = FOUR_CHAR_CODE('qtat'), /* sample contains QT atom structure*/ kImageDescriptionEffectDataFormat = FOUR_CHAR_CODE('fxat'), /* sample describes an effect (as QTAtoms)*/ kImageDescriptionPrivateDataFormat = FOUR_CHAR_CODE('priv'), /* sample is in a private codec specific format*/ kImageDescriptionAlternateCodec = FOUR_CHAR_CODE('subs'), /* image description extension containing the OSType of a substitute codec should the main codec not be available*/ kImageDescriptionColorSpace = FOUR_CHAR_CODE('cspc') /* image description extension containing an OSType naming the native pixel format of an image (only used for pixel formats not supported by classic Color QuickDraw)*/ }; EXTERN_API( OSErr ) GetImageDescriptionCTable (ImageDescriptionHandle desc, CTabHandle * ctable) TWOWORDINLINE(0x701E, 0xAAA3); EXTERN_API( OSErr ) SetImageDescriptionCTable (ImageDescriptionHandle desc, CTabHandle ctable) TWOWORDINLINE(0x701F, 0xAAA3); EXTERN_API( OSErr ) GetImageDescriptionExtension (ImageDescriptionHandle desc, Handle * extension, long idType, long index) TWOWORDINLINE(0x7020, 0xAAA3); EXTERN_API( OSErr ) AddImageDescriptionExtension (ImageDescriptionHandle desc, Handle extension, long idType) TWOWORDINLINE(0x7021, 0xAAA3); EXTERN_API( OSErr ) RemoveImageDescriptionExtension (ImageDescriptionHandle desc, long idType, long index) FOURWORDINLINE(0x203C, 0x000C, 0x003A, 0xAAA3); EXTERN_API( OSErr ) CountImageDescriptionExtensionType (ImageDescriptionHandle desc, long idType, long * count) FOURWORDINLINE(0x203C, 0x000C, 0x003B, 0xAAA3); EXTERN_API( OSErr ) GetNextImageDescriptionExtensionType (ImageDescriptionHandle desc, long * idType) FOURWORDINLINE(0x203C, 0x0008, 0x003C, 0xAAA3); EXTERN_API( OSErr ) FindCodec (CodecType cType, CodecComponent specCodec, CompressorComponent * compressor, DecompressorComponent * decompressor) TWOWORDINLINE(0x7023, 0xAAA3); EXTERN_API( OSErr ) CompressPicture (PicHandle srcPicture, PicHandle dstPicture, CodecQ quality, CodecType cType) TWOWORDINLINE(0x7024, 0xAAA3); EXTERN_API( OSErr ) FCompressPicture (PicHandle srcPicture, PicHandle dstPicture, short colorDepth, CTabHandle ctable, CodecQ quality, short doDither, short compressAgain, ICMProgressProcRecordPtr progressProc, CodecType cType, CompressorComponent codec) TWOWORDINLINE(0x7025, 0xAAA3); EXTERN_API( OSErr ) CompressPictureFile (short srcRefNum, short dstRefNum, CodecQ quality, CodecType cType) TWOWORDINLINE(0x7026, 0xAAA3); EXTERN_API( OSErr ) FCompressPictureFile (short srcRefNum, short dstRefNum, short colorDepth, CTabHandle ctable, CodecQ quality, short doDither, short compressAgain, ICMProgressProcRecordPtr progressProc, CodecType cType, CompressorComponent codec) TWOWORDINLINE(0x7027, 0xAAA3); EXTERN_API( OSErr ) GetPictureFileHeader (short refNum, Rect * frame, OpenCPicParams * header) TWOWORDINLINE(0x7028, 0xAAA3); EXTERN_API( OSErr ) DrawPictureFile (short refNum, const Rect * frame, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x7029, 0xAAA3); EXTERN_API( OSErr ) DrawTrimmedPicture (PicHandle srcPicture, const Rect * frame, RgnHandle trimMask, short doDither, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x702E, 0xAAA3); EXTERN_API( OSErr ) DrawTrimmedPictureFile (short srcRefnum, const Rect * frame, RgnHandle trimMask, short doDither, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x702F, 0xAAA3); EXTERN_API( OSErr ) MakeThumbnailFromPicture (PicHandle picture, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x702A, 0xAAA3); EXTERN_API( OSErr ) MakeThumbnailFromPictureFile (short refNum, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x702B, 0xAAA3); EXTERN_API( OSErr ) MakeThumbnailFromPixMap (PixMapHandle src, const Rect * srcRect, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x702C, 0xAAA3); EXTERN_API( OSErr ) TrimImage (ImageDescriptionHandle desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect * trimRect, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x702D, 0xAAA3); EXTERN_API( OSErr ) ConvertImage (ImageDescriptionHandle srcDD, Ptr srcData, short colorDepth, CTabHandle ctable, CodecQ accuracy, CodecQ quality, CodecType cType, CodecComponent codec, ImageDescriptionHandle dstDD, Ptr dstData) TWOWORDINLINE(0x7030, 0xAAA3); EXTERN_API( OSErr ) GetCompressedPixMapInfo (PixMapPtr pix, ImageDescriptionHandle * desc, Ptr * data, long * bufferSize, ICMDataProcRecord * dataProc, ICMProgressProcRecord * progressProc) TWOWORDINLINE(0x7037, 0xAAA3); EXTERN_API( OSErr ) SetCompressedPixMapInfo (PixMapPtr pix, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, ICMProgressProcRecordPtr progressProc) TWOWORDINLINE(0x7038, 0xAAA3); EXTERN_API( void ) StdPix (PixMapPtr src, const Rect * srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, PixMapPtr matte, const Rect * matteRect, short flags) TWOWORDINLINE(0x700C, 0xAAA3); EXTERN_API( OSErr ) TransformRgn (MatrixRecordPtr matrix, RgnHandle rgn) TWOWORDINLINE(0x7039, 0xAAA3); /*********** preview stuff ***********/ EXTERN_API( void ) SFGetFilePreview (Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, short numTypes, ConstSFTypeListPtr typeList, DlgHookUPP dlgHook, SFReply * reply) TWOWORDINLINE(0x7041, 0xAAA3); EXTERN_API( void ) SFPGetFilePreview (Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, short numTypes, ConstSFTypeListPtr typeList, DlgHookUPP dlgHook, SFReply * reply, short dlgID, ModalFilterUPP filterProc) TWOWORDINLINE(0x7042, 0xAAA3); EXTERN_API( void ) StandardGetFilePreview (FileFilterUPP fileFilter, short numTypes, ConstSFTypeListPtr typeList, StandardFileReply * reply) TWOWORDINLINE(0x7043, 0xAAA3); EXTERN_API( void ) CustomGetFilePreview (FileFilterYDUPP fileFilter, short numTypes, ConstSFTypeListPtr typeList, StandardFileReply * reply, short dlgID, Point where, DlgHookYDUPP dlgHook, ModalFilterYDUPP filterProc, ActivationOrderListPtr activeList, ActivateYDUPP activateProc, void * yourDataPtr) TWOWORDINLINE(0x7044, 0xAAA3); EXTERN_API( OSErr ) MakeFilePreview (short resRefNum, ICMProgressProcRecordPtr progress) TWOWORDINLINE(0x7045, 0xAAA3); EXTERN_API( OSErr ) AddFilePreview (short resRefNum, OSType previewType, Handle previewData) TWOWORDINLINE(0x7046, 0xAAA3); enum { sfpItemPreviewAreaUser = 11, sfpItemPreviewStaticText = 12, sfpItemPreviewDividerUser = 13, sfpItemCreatePreviewButton = 14, sfpItemShowPreviewButton = 15 }; struct PreviewResourceRecord { unsigned long modDate; short version; OSType resType; short resID; }; typedef struct PreviewResourceRecord PreviewResourceRecord; typedef PreviewResourceRecord * PreviewResourcePtr; typedef PreviewResourcePtr * PreviewResource; EXTERN_API( void ) AlignScreenRect (Rect * rp, ICMAlignmentProcRecordPtr alignmentProc) FOURWORDINLINE(0x203C, 0x0008, 0x004C, 0xAAA3); EXTERN_API( void ) AlignWindow (WindowRef wp, Boolean front, const Rect * alignmentRect, ICMAlignmentProcRecordPtr alignmentProc) FOURWORDINLINE(0x203C, 0x000E, 0x004D, 0xAAA3); EXTERN_API( void ) DragAlignedWindow (WindowRef wp, Point startPt, Rect * boundsRect, Rect * alignmentRect, ICMAlignmentProcRecordPtr alignmentProc) FOURWORDINLINE(0x203C, 0x0014, 0x004E, 0xAAA3); EXTERN_API( long ) DragAlignedGrayRgn (RgnHandle theRgn, Point startPt, Rect * boundsRect, Rect * slopRect, short axis, UniversalProcPtr actionProc, Rect * alignmentRect, ICMAlignmentProcRecordPtr alignmentProc) FOURWORDINLINE(0x203C, 0x001E, 0x004F, 0xAAA3); EXTERN_API( OSErr ) SetCSequenceDataRateParams (ImageSequence seqID, DataRateParamsPtr params) FOURWORDINLINE(0x203C, 0x0008, 0x0050, 0xAAA3); EXTERN_API( OSErr ) SetCSequenceFrameNumber (ImageSequence seqID, long frameNumber) FOURWORDINLINE(0x203C, 0x0008, 0x0051, 0xAAA3); EXTERN_API( OSErr ) SetCSequencePreferredPacketSize (ImageSequence seqID, long preferredPacketSizeInBytes) FOURWORDINLINE(0x203C, 0x0008, 0x0078, 0xAAA3); EXTERN_API( OSErr ) NewImageGWorld (GWorldPtr * gworld, ImageDescriptionHandle idh, GWorldFlags flags) FOURWORDINLINE(0x203C, 0x000C, 0x0052, 0xAAA3); EXTERN_API( OSErr ) GetCSequenceDataRateParams (ImageSequence seqID, DataRateParamsPtr params) FOURWORDINLINE(0x203C, 0x0008, 0x0053, 0xAAA3); EXTERN_API( OSErr ) GetCSequenceFrameNumber (ImageSequence seqID, long * frameNumber) FOURWORDINLINE(0x203C, 0x0008, 0x0054, 0xAAA3); EXTERN_API( OSErr ) GetBestDeviceRect (GDHandle * gdh, Rect * rp) FOURWORDINLINE(0x203C, 0x0008, 0x0055, 0xAAA3); EXTERN_API( OSErr ) SetSequenceProgressProc (ImageSequence seqID, ICMProgressProcRecord * progressProc) FOURWORDINLINE(0x203C, 0x0008, 0x0056, 0xAAA3); EXTERN_API( OSErr ) GDHasScale (GDHandle gdh, short depth, Fixed * scale) FOURWORDINLINE(0x203C, 0x000A, 0x005A, 0xAAA3); EXTERN_API( OSErr ) GDGetScale (GDHandle gdh, Fixed * scale, short * flags) FOURWORDINLINE(0x203C, 0x000C, 0x005B, 0xAAA3); EXTERN_API( OSErr ) GDSetScale (GDHandle gdh, Fixed scale, short flags) FOURWORDINLINE(0x203C, 0x000A, 0x005C, 0xAAA3); EXTERN_API( OSErr ) ICMShieldSequenceCursor (ImageSequence seqID) FOURWORDINLINE(0x203C, 0x0004, 0x0062, 0xAAA3); EXTERN_API( void ) ICMDecompressComplete (ImageSequence seqID, OSErr err, short flag, ICMCompletionProcRecordPtr completionRtn) FOURWORDINLINE(0x203C, 0x000C, 0x0063, 0xAAA3); EXTERN_API( OSErr ) ICMDecompressCompleteS (ImageSequence seqID, OSErr err, short flag, ICMCompletionProcRecordPtr completionRtn) FOURWORDINLINE(0x203C, 0x000C, 0x0082, 0xAAA3); EXTERN_API( OSErr ) ICMSequenceLockBits (ImageSequence seqID, PixMapPtr dst, long flags) FOURWORDINLINE(0x203C, 0x000C, 0x007C, 0xAAA3); EXTERN_API( OSErr ) ICMSequenceUnlockBits (ImageSequence seqID, long flags) FOURWORDINLINE(0x203C, 0x0008, 0x007D, 0xAAA3); enum { kICMPixelFormatIsPlanarMask = 0x0F, /* these bits in formatFlags indicate how many planes there are; they're 0 if chunky*/ kICMPixelFormatIsIndexed = (1L << 4), kICMPixelFormatIsSupportedByQD = (1L << 5), kICMPixelFormatIsMonochrome = (1L << 6), kICMPixelFormatHasAlphaChannel = (1L << 7) }; struct ICMPixelFormatInfo { long size; /* caller MUST fill this in with sizeof(ICMPixelFormatInfo) before calling ICMGet/SetPixelFormatInfo*/ unsigned long formatFlags; short bitsPerPixel[14]; /* list each plane's bits per pixel separately if planar*/ /* new field for QuickTime 4.1*/ Fixed defaultGammaLevel; /* new fields for QuickTime 6.0*/ short horizontalSubsampling[14]; /* per plane; use 1 if plane is not subsampled*/ short verticalSubsampling[14]; /* per plane; use 1 if plane is not subsampled*/ }; typedef struct ICMPixelFormatInfo ICMPixelFormatInfo; typedef ICMPixelFormatInfo * ICMPixelFormatInfoPtr; /* IMPORTANT: Fill in theInfo->size with sizeof(ICMPixelFormatInfo) before calling ICMGetPixelFormatInfo */ EXTERN_API( OSErr ) ICMGetPixelFormatInfo (OSType PixelFormat, ICMPixelFormatInfoPtr theInfo) FOURWORDINLINE(0x203C, 0x0008, 0x0083, 0xAAA3); /* IMPORTANT: Fill in theInfo->size with sizeof(ICMPixelFormatInfo) before calling ICMSetPixelFormatInfo */ EXTERN_API( OSErr ) ICMSetPixelFormatInfo (OSType PixelFormat, ICMPixelFormatInfoPtr theInfo) FOURWORDINLINE(0x203C, 0x0008, 0x008A, 0xAAA3); enum { kICMGetChainUltimateParent = 0, kICMGetChainParent = 1, kICMGetChainChild = 2, kICMGetChainUltimateChild = 3 }; EXTERN_API( OSErr ) ICMSequenceGetChainMember (ImageSequence seqID, ImageSequence * retSeqID, long flags) FOURWORDINLINE(0x203C, 0x000C, 0x007E, 0xAAA3); EXTERN_API( OSErr ) SetDSequenceTimeCode (ImageSequence seqID, void * timeCodeFormat, void * timeCodeTime) FOURWORDINLINE(0x203C, 0x000C, 0x0064, 0xAAA3); EXTERN_API( OSErr ) CDSequenceNewMemory (ImageSequence seqID, Ptr * data, Size dataSize, long dataUse, ICMMemoryDisposedUPP memoryGoneProc, void * refCon) FOURWORDINLINE(0x203C, 0x0018, 0x0066, 0xAAA3); EXTERN_API( OSErr ) CDSequenceDisposeMemory (ImageSequence seqID, Ptr data) FOURWORDINLINE(0x203C, 0x0008, 0x0067, 0xAAA3); EXTERN_API( OSErr ) CDSequenceNewDataSource (ImageSequence seqID, ImageSequenceDataSource * sourceID, OSType sourceType, long sourceInputNumber, Handle dataDescription, ICMConvertDataFormatUPP transferProc, void * refCon) FOURWORDINLINE(0x203C, 0x001C, 0x0068, 0xAAA3); EXTERN_API( OSErr ) CDSequenceDisposeDataSource (ImageSequenceDataSource sourceID) FOURWORDINLINE(0x203C, 0x0004, 0x0069, 0xAAA3); EXTERN_API( OSErr ) CDSequenceSetSourceData (ImageSequenceDataSource sourceID, void * data, long dataSize) FOURWORDINLINE(0x203C, 0x000C, 0x006A, 0xAAA3); EXTERN_API( OSErr ) CDSequenceChangedSourceData (ImageSequenceDataSource sourceID) FOURWORDINLINE(0x203C, 0x0004, 0x006B, 0xAAA3); EXTERN_API( OSErr ) CDSequenceSetSourceDataQueue (ImageSequenceDataSource sourceID, QHdrPtr dataQueue) FOURWORDINLINE(0x203C, 0x0008, 0x007B, 0xAAA3); EXTERN_API( OSErr ) CDSequenceGetDataSource (ImageSequence seqID, ImageSequenceDataSource * sourceID, OSType sourceType, long sourceInputNumber) FOURWORDINLINE(0x203C, 0x0010, 0x007F, 0xAAA3); EXTERN_API( OSErr ) PtInDSequenceData (ImageSequence seqID, void * data, Size dataSize, Point where, Boolean * hit) FOURWORDINLINE(0x203C, 0x0014, 0x006C, 0xAAA3); EXTERN_API( OSErr ) HitTestDSequenceData (ImageSequence seqID, void * data, Size dataSize, Point where, long * hit, long hitFlags) FOURWORDINLINE(0x203C, 0x0018, 0x0087, 0xAAA3); EXTERN_API( OSErr ) GetGraphicsImporterForFile (const FSSpec * theFile, ComponentInstance * gi) FOURWORDINLINE(0x203C, 0x0008, 0x006E, 0xAAA3); EXTERN_API( OSErr ) GetGraphicsImporterForDataRef (Handle dataRef, OSType dataRefType, ComponentInstance * gi) FOURWORDINLINE(0x203C, 0x000C, 0x0077, 0xAAA3); enum { kDontUseValidateToFindGraphicsImporter = 1L << 0 }; EXTERN_API( OSErr ) GetGraphicsImporterForFileWithFlags (const FSSpec * theFile, ComponentInstance * gi, long flags) FOURWORDINLINE(0x203C, 0x000C, 0x0084, 0xAAA3); EXTERN_API( OSErr ) GetGraphicsImporterForDataRefWithFlags (Handle dataRef, OSType dataRefType, ComponentInstance * gi, long flags) FOURWORDINLINE(0x203C, 0x0010, 0x0085, 0xAAA3); EXTERN_API( OSErr ) QTGetFileNameExtension (ConstStrFileNameParam fileName, OSType fileType, OSType * extension) FOURWORDINLINE(0x203C, 0x000C, 0x0061, 0xAAA3); EXTERN_API( OSErr ) ImageTranscodeSequenceBegin (ImageTranscodeSequence * its, ImageDescriptionHandle srcDesc, OSType destType, ImageDescriptionHandle * dstDesc, void * data, long dataSize) FOURWORDINLINE(0x203C, 0x0018, 0x006F, 0xAAA3); EXTERN_API( OSErr ) ImageTranscodeSequenceEnd (ImageTranscodeSequence its) FOURWORDINLINE(0x203C, 0x0004, 0x0070, 0xAAA3); EXTERN_API( OSErr ) ImageTranscodeFrame (ImageTranscodeSequence its, void * srcData, long srcDataSize, void ** dstData, long * dstDataSize) FOURWORDINLINE(0x203C, 0x0014, 0x0071, 0xAAA3); EXTERN_API( OSErr ) ImageTranscodeDisposeFrameData (ImageTranscodeSequence its, void * dstData) FOURWORDINLINE(0x203C, 0x0008, 0x0072, 0xAAA3); EXTERN_API( OSErr ) CDSequenceInvalidate (ImageSequence seqID, RgnHandle invalRgn) FOURWORDINLINE(0x203C, 0x0008, 0x0073, 0xAAA3); EXTERN_API( OSErr ) CDSequenceSetTimeBase (ImageSequence seqID, void * base) FOURWORDINLINE(0x203C, 0x0008, 0x0079, 0xAAA3); EXTERN_API( OSErr ) ImageFieldSequenceBegin (ImageFieldSequence * ifs, ImageDescriptionHandle desc1, ImageDescriptionHandle desc2, ImageDescriptionHandle descOut) FOURWORDINLINE(0x203C, 0x0010, 0x006D, 0xAAA3); EXTERN_API( OSErr ) ImageFieldSequenceExtractCombine (ImageFieldSequence ifs, long fieldFlags, void * data1, long dataSize1, void * data2, long dataSize2, void * outputData, long * outDataSize) FOURWORDINLINE(0x203C, 0x0020, 0x0075, 0xAAA3); EXTERN_API( OSErr ) ImageFieldSequenceEnd (ImageFieldSequence ifs) FOURWORDINLINE(0x203C, 0x0004, 0x0076, 0xAAA3); enum { kICMTempThenAppMemory = 1L << 12, kICMAppThenTempMemory = 1L << 13 }; EXTERN_API( OSErr ) QTNewGWorld (GWorldPtr * offscreenGWorld, OSType PixelFormat, const Rect * boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) FOURWORDINLINE(0x203C, 0x0018, 0x0080, 0xAAA3); EXTERN_API( OSErr ) QTNewGWorldFromPtr (GWorldPtr * gw, OSType pixelFormat, const Rect * boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags, void * baseAddr, long rowBytes) FOURWORDINLINE(0x203C, 0x0020, 0x008B, 0xAAA3); EXTERN_API( GWorldFlags ) QTUpdateGWorld (GWorldPtr * offscreenGWorld, OSType PixelFormat, const Rect * boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) FOURWORDINLINE(0x203C, 0x0018, 0x0081, 0xAAA3); EXTERN_API( OSErr ) MakeImageDescriptionForPixMap (PixMapHandle pixmap, ImageDescriptionHandle * idh) FOURWORDINLINE(0x203C, 0x0008, 0x007A, 0xAAA3); EXTERN_API( OSErr ) MakeImageDescriptionForEffect (OSType effectType, ImageDescriptionHandle * idh) FOURWORDINLINE(0x203C, 0x0008, 0x0092, 0xAAA3); EXTERN_API( short ) QTGetPixelSize (OSType PixelFormat) FOURWORDINLINE(0x203C, 0x0004, 0x0086, 0xAAA3); EXTERN_API( short ) QTGetPixelFormatDepthForImageDescription (OSType pixelFormat) FOURWORDINLINE(0x203C, 0x0004, 0x00A3, 0xAAA3); EXTERN_API( long ) QTGetPixMapPtrRowBytes (PixMapPtr pm) FOURWORDINLINE(0x203C, 0x0004, 0x008D, 0xAAA3); EXTERN_API( long ) QTGetPixMapHandleRowBytes (PixMapHandle pm) FOURWORDINLINE(0x203C, 0x0004, 0x008E, 0xAAA3); EXTERN_API( OSErr ) QTSetPixMapPtrRowBytes (PixMapPtr pm, long rowBytes) FOURWORDINLINE(0x203C, 0x0008, 0x0090, 0xAAA3); EXTERN_API( OSErr ) QTSetPixMapHandleRowBytes (PixMapHandle pm, long rowBytes) FOURWORDINLINE(0x203C, 0x0008, 0x008F, 0xAAA3); enum { kQTUsePlatformDefaultGammaLevel = 0, /* When decompressing into this PixMap, gamma-correct to the platform's standard gamma. */ kQTUseSourceGammaLevel = -1L, /* When decompressing into this PixMap, don't perform gamma-correction. */ kQTCCIR601VideoGammaLevel = 0x00023333 /* 2.2, standard television video gamma.*/ }; EXTERN_API( Fixed ) QTGetPixMapPtrGammaLevel (PixMapPtr pm) FOURWORDINLINE(0x203C, 0x0004, 0x0093, 0xAAA3); EXTERN_API( OSErr ) QTSetPixMapPtrGammaLevel (PixMapPtr pm, Fixed gammaLevel) FOURWORDINLINE(0x203C, 0x0008, 0x0094, 0xAAA3); EXTERN_API( Fixed ) QTGetPixMapHandleGammaLevel (PixMapHandle pm) FOURWORDINLINE(0x203C, 0x0004, 0x0096, 0xAAA3); EXTERN_API( OSErr ) QTSetPixMapHandleGammaLevel (PixMapHandle pm, Fixed gammaLevel) FOURWORDINLINE(0x203C, 0x0008, 0x0097, 0xAAA3); EXTERN_API( Fixed ) QTGetPixMapPtrRequestedGammaLevel (PixMapPtr pm) FOURWORDINLINE(0x203C, 0x0004, 0x0098, 0xAAA3); EXTERN_API( OSErr ) QTSetPixMapPtrRequestedGammaLevel (PixMapPtr pm, Fixed requestedGammaLevel) FOURWORDINLINE(0x203C, 0x0008, 0x0099, 0xAAA3); EXTERN_API( Fixed ) QTGetPixMapHandleRequestedGammaLevel (PixMapHandle pm) FOURWORDINLINE(0x203C, 0x0004, 0x009A, 0xAAA3); EXTERN_API( OSErr ) QTSetPixMapHandleRequestedGammaLevel (PixMapHandle pm, Fixed requestedGammaLevel) FOURWORDINLINE(0x203C, 0x0008, 0x009B, 0xAAA3); EXTERN_API( OSErr ) QuadToQuadMatrix (const Fixed * source, const Fixed * dest, MatrixRecord * map) FOURWORDINLINE(0x203C, 0x000C, 0x0095, 0xAAA3); enum { identityMatrixType = 0x00, /* result if matrix is identity */ translateMatrixType = 0x01, /* result if matrix translates */ scaleMatrixType = 0x02, /* result if matrix scales */ scaleTranslateMatrixType = 0x03, /* result if matrix scales and translates */ linearMatrixType = 0x04, /* result if matrix is general 2 x 2 */ linearTranslateMatrixType = 0x05, /* result if matrix is general 2 x 2 and translates */ perspectiveMatrixType = 0x06 /* result if matrix is general 3 x 3 */ }; typedef unsigned short MatrixFlags; EXTERN_API( short ) GetMatrixType (const MatrixRecord * m) TWOWORDINLINE(0x7014, 0xABC2); EXTERN_API( void ) CopyMatrix (const MatrixRecord * m1, MatrixRecord * m2) TWOWORDINLINE(0x7020, 0xABC2); EXTERN_API( Boolean ) EqualMatrix (const MatrixRecord * m1, const MatrixRecord * m2) TWOWORDINLINE(0x7021, 0xABC2); EXTERN_API( void ) SetIdentityMatrix (MatrixRecord * matrix) TWOWORDINLINE(0x7015, 0xABC2); EXTERN_API( void ) TranslateMatrix (MatrixRecord * m, Fixed deltaH, Fixed deltaV) TWOWORDINLINE(0x7019, 0xABC2); EXTERN_API( void ) RotateMatrix (MatrixRecord * m, Fixed degrees, Fixed aboutX, Fixed aboutY) TWOWORDINLINE(0x7016, 0xABC2); EXTERN_API( void ) ScaleMatrix (MatrixRecord * m, Fixed scaleX, Fixed scaleY, Fixed aboutX, Fixed aboutY) TWOWORDINLINE(0x7017, 0xABC2); EXTERN_API( void ) SkewMatrix (MatrixRecord * m, Fixed skewX, Fixed skewY, Fixed aboutX, Fixed aboutY) TWOWORDINLINE(0x7018, 0xABC2); EXTERN_API( OSErr ) TransformFixedPoints (const MatrixRecord * m, FixedPoint * fpt, long count) TWOWORDINLINE(0x7022, 0xABC2); EXTERN_API( OSErr ) TransformPoints (const MatrixRecord * mp, Point * pt1, long count) TWOWORDINLINE(0x7023, 0xABC2); EXTERN_API( Boolean ) TransformFixedRect (const MatrixRecord * m, FixedRect * fr, FixedPoint * fpp) TWOWORDINLINE(0x7024, 0xABC2); EXTERN_API( Boolean ) TransformRect (const MatrixRecord * m, Rect * r, FixedPoint * fpp) TWOWORDINLINE(0x7025, 0xABC2); EXTERN_API( Boolean ) InverseMatrix (const MatrixRecord * m, MatrixRecord * im) TWOWORDINLINE(0x701C, 0xABC2); EXTERN_API( void ) ConcatMatrix (const MatrixRecord * a, MatrixRecord * b) TWOWORDINLINE(0x701B, 0xABC2); EXTERN_API( void ) RectMatrix (MatrixRecord * matrix, const Rect * srcRect, const Rect * dstRect) TWOWORDINLINE(0x701E, 0xABC2); EXTERN_API( void ) MapMatrix (MatrixRecord * matrix, const Rect * fromRect, const Rect * toRect) TWOWORDINLINE(0x701D, 0xABC2); EXTERN_API( void ) CompAdd (wide * src, wide * dst) TWOWORDINLINE(0x7001, 0xABC2); EXTERN_API( void ) CompSub (wide * src, wide * dst) TWOWORDINLINE(0x7002, 0xABC2); EXTERN_API( void ) CompNeg (wide * dst) TWOWORDINLINE(0x7003, 0xABC2); EXTERN_API( void ) CompShift (wide * src, short shift) TWOWORDINLINE(0x7004, 0xABC2); EXTERN_API( void ) CompMul (long src1, long src2, wide * dst) TWOWORDINLINE(0x7005, 0xABC2); EXTERN_API( long ) CompDiv (wide * numerator, long denominator, long * remainder) TWOWORDINLINE(0x7006, 0xABC2); EXTERN_API( void ) CompFixMul (wide * compSrc, Fixed fixSrc, wide * compDst) TWOWORDINLINE(0x7007, 0xABC2); EXTERN_API( void ) CompMulDiv (wide * co, long mul, long divisor) TWOWORDINLINE(0x7008, 0xABC2); EXTERN_API( void ) CompMulDivTrunc (wide * co, long mul, long divisor, long * remainder) TWOWORDINLINE(0x700C, 0xABC2); EXTERN_API( long ) CompCompare (const wide * a, const wide * minusb) TWOWORDINLINE(0x7009, 0xABC2); EXTERN_API( unsigned long ) CompSquareRoot (const wide * src) TWOWORDINLINE(0x7011, 0xABC2); EXTERN_API( Fixed ) FixMulDiv (Fixed src, Fixed mul, Fixed divisor) TWOWORDINLINE(0x700A, 0xABC2); EXTERN_API( Fixed ) UnsignedFixMulDiv (Fixed src, Fixed mul, Fixed divisor) TWOWORDINLINE(0x700D, 0xABC2); EXTERN_API( Fract ) FracSinCos (Fixed degree, Fract * cosOut) TWOWORDINLINE(0x700B, 0xABC2); EXTERN_API( Fixed ) FixExp2 (Fixed src) TWOWORDINLINE(0x700E, 0xABC2); EXTERN_API( Fixed ) FixLog2 (Fixed src) TWOWORDINLINE(0x700F, 0xABC2); EXTERN_API( Fixed ) FixPow (Fixed base, Fixed exp) TWOWORDINLINE(0x7010, 0xABC2); typedef ComponentInstance GraphicsImportComponent; enum { GraphicsImporterComponentType = FOUR_CHAR_CODE('grip') }; enum { graphicsImporterUsesImageDecompressor = 1L << 23 }; enum { quickTimeImageFileImageDescriptionAtom = FOUR_CHAR_CODE('idsc'), quickTimeImageFileImageDataAtom = FOUR_CHAR_CODE('idat'), quickTimeImageFileMetaDataAtom = FOUR_CHAR_CODE('meta'), quickTimeImageFileColorSyncProfileAtom = FOUR_CHAR_CODE('iicc') }; enum { graphicsImporterDrawsAllPixels = 0, graphicsImporterDoesntDrawAllPixels = 1, graphicsImporterDontKnowIfDrawAllPixels = 2 }; /* Flags for GraphicsImportSetFlags */ enum { kGraphicsImporterDontDoGammaCorrection = 1L << 0, kGraphicsImporterTrustResolutionFromFile = 1L << 1, kGraphicsImporterEnableSubPixelPositioning = 1L << 2 }; enum { kGraphicsExportGroup = FOUR_CHAR_CODE('expo'), kGraphicsExportFileType = FOUR_CHAR_CODE('ftyp'), kGraphicsExportMIMEType = FOUR_CHAR_CODE('mime'), kGraphicsExportExtension = FOUR_CHAR_CODE('ext '), kGraphicsExportDescription = FOUR_CHAR_CODE('desc') }; /* User data types for layers of Photoshop files */ enum { kQTPhotoshopLayerMode = FOUR_CHAR_CODE('lmod'), /* OSType */ kQTPhotoshopLayerOpacity = FOUR_CHAR_CODE('lopa'), /* UInt8, 0 = transparent .. 255 = opaque */ kQTPhotoshopLayerClipping = FOUR_CHAR_CODE('lclp'), /* UInt8, 0 = base, 1 = non-base */ kQTPhotoshopLayerFlags = FOUR_CHAR_CODE('lflg'), /* UInt8 */ kQTPhotoshopLayerName = FOUR_CHAR_CODE('Šlnm'), /* Text */ kQTPhotoshopLayerUnicodeName = FOUR_CHAR_CODE('luni') /* Unicode characters, not terminated */ }; /* User data returned by graphics importers to suggest intended use for indexed images */ enum { kQTIndexedImageType = FOUR_CHAR_CODE('nth?'), /* 1 or more OSTypes, such as the following values: */ kQTIndexedImageIsThumbnail = FOUR_CHAR_CODE('n=th'), /* The image at this index is a thumbnail. */ kQTIndexedImageIsLayer = FOUR_CHAR_CODE('n=ly'), /* The image at this index is a layer. */ kQTIndexedImageIsPage = FOUR_CHAR_CODE('n=pg'), /* The image at this index is a page. */ kQTIndexedImageIsMultiResolution = FOUR_CHAR_CODE('n=rs') /* The image at this index is one of several identical images at different resolutions. */ }; /* Other user data types returned by graphics importers */ enum { kQTTIFFUserDataPrefix = 0x74690000, /* Added to some tag values in TIFF IFDs to generate user data codes. (0x7469 is 'ti'.) */ /* For example, YCbCrPositioning is tag 0x0213, so its user data code is 0x74690213. */ kQTTIFFExifUserDataPrefix = 0x65780000, /* Added to tag values in Exif IFDs to generate user data codes. (0x6578 is 'ex'.) */ /* For example, DateTimeOriginal is tag 0x9003, so its user data code is 0x65789003. */ kQTTIFFExifGPSUserDataPrefix = 0x67700000, /* Added to tag values in Exif GPS IFDs to generate user data codes. (0x6770 is 'gp'.) */ /* For example, GPSAltitude is tag 0x0006, so its user data code is 0x6770006. */ kQTAlphaMode = FOUR_CHAR_CODE('almo'), /* UInt32; eg, graphicsModeStraightAlpha or graphicsModePreBlackAlpha */ kQTAlphaModePreMulColor = FOUR_CHAR_CODE('almp'), /* RGBColor; used if kQTAlphaMode is graphicsModePreMulColorAlpha */ kUserDataIPTC = FOUR_CHAR_CODE('iptc') }; /* Found in TIFF and Exif JPEG files */ enum { kQTTIFFUserDataOrientation = 0x74690112, /* 1 SHORT */ kQTTIFFUserDataTransferFunction = 0x7469012D, /* n SHORTs */ kQTTIFFUserDataWhitePoint = 0x7469013E, /* 2 RATIONALs */ kQTTIFFUserDataPrimaryChromaticities = 0x7469013F, /* 6 RATIONALs */ kQTTIFFUserDataTransferRange = 0x74690156, /* 6 SHORTs */ kQTTIFFUserDataYCbCrPositioning = 0x74690213, /* 1 SHORT */ kQTTIFFUserDataReferenceBlackWhite = 0x74690214 /* n LONGs */ }; /* Found in GeoTIFF files; defined in the GeoTIFF 1.0 spec */ enum { kQTTIFFUserDataModelPixelScale = 0x7469830E, /* 3 DOUBLEs */ kQTTIFFUserDataModelTransformation = 0x746985D8, /* 16 DOUBLEs */ kQTTIFFUserDataModelTiepoint = 0x74698482, /* n DOUBLEs */ kQTTIFFUserDataGeoKeyDirectory = 0x746987AF, /* n SHORTs */ kQTTIFFUserDataGeoDoubleParams = 0x746987B0, /* n DOUBLEs */ kQTTIFFUserDataGeoAsciiParams = 0x746987B1, /* n ASCIIs */ kQTTIFFUserDataIntergraphMatrix = 0x74698480 /* 16 or 17 DOUBLEs */ }; /* Found in Exif TIFF and Exif JPEG files; defined in the Exif 2.1 spec */ enum { kQTExifUserDataExifVersion = 0x65789000, /* 4 bytes (import only) */ kQTExifUserDataFlashPixVersion = 0x6578A000, /* 4 bytes */ kQTExifUserDataColorSpace = 0x6578A001, /* 1 SHORT */ kQTExifUserDataComponentsConfiguration = 0x65789101, /* 4 bytes */ kQTExifUserDataCompressedBitsPerPixel = 0x65789102, /* 1 RATIONAL */ kQTExifUserDataPixelXDimension = 0x6578A002, /* 1 SHORT or LONG */ kQTExifUserDataPixelYDimension = 0x6578A003, /* 1 SHORT or LONG */ kQTExifUserDataMakerNote = 0x6578927C, /* n bytes */ kQTExifUserDataUserComment = 0x6578928C, /* n bytes */ kQTExifUserDataRelatedSoundFile = 0x6578A004, /* 13 ASCIIs*/ kQTExifUserDataDateTimeOriginal = 0x65789003, /* 20 ASCIIs */ kQTExifUserDataDateTimeDigitized = 0x65789004, /* 20 ASCIIs */ kQTExifUserDataSubSecTime = 0x65789290, /* n ASCIIs */ kQTExifUserDataSubSecTimeOriginal = 0x65789291, /* n ASCIIs */ kQTExifUserDataSubSecTimeDigitized = 0x65789292, /* n ASCIIs */ kQTExifUserDataExposureTime = 0x6578829A, /* 1 RATIONAL */ kQTExifUserDataFNumber = 0x6578829D, /* 1 RATIONAL */ kQTExifUserDataExposureProgram = 0x65788822, /* 1 SHORT */ kQTExifUserDataSpectralSensitivity = 0x65788824, /* n ASCIIs */ kQTExifUserDataISOSpeedRatings = 0x65788827, /* n SHORTs */ kQTExifUserDataShutterSpeedValue = 0x65789201, /* 1 SIGNED RATIONAL */ kQTExifUserDataApertureValue = 0x65789202, /* 1 RATIONAL */ kQTExifUserDataBrightnessValue = 0x65789203, /* 1 SIGNED RATIONAL */ kQTExifUserDataExposureBiasValue = 0x65789204, /* 1 SIGNED RATIONAL */ kQTExifUserDataMaxApertureValue = 0x65789205, /* 1 RATIONAL */ kQTExifUserDataSubjectDistance = 0x65789206, /* 1 RATIONAL */ kQTExifUserDataMeteringMode = 0x65789207, /* 1 SHORT */ kQTExifUserDataLightSource = 0x65789208, /* 1 SHORT */ kQTExifUserDataFlash = 0x65789209, /* 1 SHORT */ kQTExifUserDataFocalLength = 0x6578920A, /* 1 RATIONAL */ kQTExifUserDataFlashEnergy = 0x6578A20B, /* 1 RATIONAL */ kQTExifUserDataFocalPlaneXResolution = 0x6578A20E, /* 1 RATIONAL */ kQTExifUserDataFocalPlaneYResolution = 0x6578A20F, /* 1 RATIONAL */ kQTExifUserDataFocalPlaneResolutionUnit = 0x6578A210, /* 1 SHORT */ kQTExifUserDataSubjectLocation = 0x6578A214, /* 1 SHORT */ kQTExifUserDataExposureIndex = 0x6578A215, /* 1 RATIONAL */ kQTExifUserDataSensingMethod = 0x6578A217, /* 1 SHORT */ kQTExifUserDataFileSource = 0x6578A300, /* 1 UNDEFINED */ kQTExifUserDataSceneType = 0x6578A301 /* 1 UNDEFINED */ }; /* Found in some Exif TIFF and Exif JPEG files; defined in the Exif 2.1 spec */ enum { kQTExifUserDataGPSVersionID = 0x06770000, /* 4 BYTEs */ kQTExifUserDataGPSLatitudeRef = 0x06770001, /* 2 ASCIIs*/ kQTExifUserDataGPSLatitude = 0x06770002, /* 3 RATIONALs */ kQTExifUserDataGPSLongitudeRef = 0x06770003, /* 2 ASCIIs */ kQTExifUserDataGPSLongitude = 0x06770004, /* 3 RATIONALs */ kQTExifUserDataGPSAltitudeRef = 0x06770005, /* 1 BYTE */ kQTExifUserDataGPSAltitude = 0x06770006, /* 1 RATIONAL */ kQTExifUserDataGPSTimeStamp = 0x06770007, /* 3 RATIONALs */ kQTExifUserDataGPSSatellites = 0x06770008, /* n ASCIIs */ kQTExifUserDataGPSStatus = 0x06770009, /* 2 ASCIIs */ kQTExifUserDataGPSMeasureMode = 0x0677000A, /* 2 ASCIIs */ kQTExifUserDataGPSDOP = 0x0677000B, /* 1 RATIONAL */ kQTExifUserDataGPSSpeedRef = 0x0677000C, /* 2 ASCIIs */ kQTExifUserDataGPSSpeed = 0x0677000D, /* 1 RATIONAL */ kQTExifUserDataGPSTrackRef = 0x0677000E, /* 2 ASCIIs */ kQTExifUserDataGPSTrack = 0x0677000F, /* 1 RATIONAL */ kQTExifUserDataGPSImgDirectionRef = 0x06770010, /* 2 ASCIIs */ kQTExifUserDataGPSImgDirection = 0x06770011, /* 1 RATIONAL */ kQTExifUserDataGPSMapDatum = 0x06770012, /* n ASCII */ kQTExifUserDataGPSDestLatitudeRef = 0x06770013, /* 2 ASCIIs */ kQTExifUserDataGPSDestLatitude = 0x06770014, /* 3 RATIONALs */ kQTExifUserDataGPSDestLongitudeRef = 0x06770015, /* 2 ASCIIs */ kQTExifUserDataGPSDestLongitude = 0x06770016, /* 3 RATIONALs */ kQTExifUserDataGPSDestBearingRef = 0x06770017, /* 2 ASCIIs */ kQTExifUserDataGPSDestBearing = 0x06770018, /* 1 RATIONAL */ kQTExifUserDataGPSDestDistanceRef = 0x06770019, /* 2 ASCIIs */ kQTExifUserDataGPSDestDistance = 0x0677001A /* 1 RATIONAL */ }; /** These are GraphicsImport procedures **/ EXTERN_API( ComponentResult ) GraphicsImportSetDataReference (GraphicsImportComponent ci, Handle dataRef, OSType dataReType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0001, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDataReference (GraphicsImportComponent ci, Handle * dataRef, OSType * dataReType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetDataFile (GraphicsImportComponent ci, const FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDataFile (GraphicsImportComponent ci, FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetDataHandle (GraphicsImportComponent ci, Handle h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDataHandle (GraphicsImportComponent ci, Handle * h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetImageDescription (GraphicsImportComponent ci, ImageDescriptionHandle * desc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDataOffsetAndSize (GraphicsImportComponent ci, unsigned long * offset, unsigned long * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportReadData (GraphicsImportComponent ci, void * dataPtr, unsigned long dataOffset, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0009, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetClip (GraphicsImportComponent ci, RgnHandle clipRgn) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetClip (GraphicsImportComponent ci, RgnHandle * clipRgn) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetSourceRect (GraphicsImportComponent ci, const Rect * sourceRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetSourceRect (GraphicsImportComponent ci, Rect * sourceRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetNaturalBounds (GraphicsImportComponent ci, Rect * naturalBounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportDraw (GraphicsImportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetGWorld (GraphicsImportComponent ci, CGrafPtr port, GDHandle gd) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0010, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetGWorld (GraphicsImportComponent ci, CGrafPtr * port, GDHandle * gd) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0011, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetMatrix (GraphicsImportComponent ci, const MatrixRecord * matrix) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetMatrix (GraphicsImportComponent ci, MatrixRecord * matrix) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetBoundsRect (GraphicsImportComponent ci, const Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetBoundsRect (GraphicsImportComponent ci, Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSaveAsPicture (GraphicsImportComponent ci, const FSSpec * fss, ScriptCode scriptTag) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0016, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetGraphicsMode (GraphicsImportComponent ci, long graphicsMode, const RGBColor * opColor) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetGraphicsMode (GraphicsImportComponent ci, long * graphicsMode, RGBColor * opColor) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0018, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetQuality (GraphicsImportComponent ci, CodecQ quality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetQuality (GraphicsImportComponent ci, CodecQ * quality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSaveAsQuickTimeImageFile (GraphicsImportComponent ci, const FSSpec * fss, ScriptCode scriptTag) FIVEWORDINLINE(0x2F3C, 0x0006, 0x001B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetDataReferenceOffsetAndLimit (GraphicsImportComponent ci, unsigned long offset, unsigned long limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDataReferenceOffsetAndLimit (GraphicsImportComponent ci, unsigned long * offset, unsigned long * limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetAliasedDataReference (GraphicsImportComponent ci, Handle * dataRef, OSType * dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportValidate (GraphicsImportComponent ci, Boolean * valid) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetMetaData (GraphicsImportComponent ci, void * userData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetMIMETypeList (GraphicsImportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportDoesDrawAllPixels (GraphicsImportComponent ci, short * drawsAllPixels) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetAsPicture (GraphicsImportComponent ci, PicHandle * picture) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportExportImageFile (GraphicsImportComponent ci, OSType fileType, OSType fileCreator, const FSSpec * fss, ScriptCode scriptTag) FIVEWORDINLINE(0x2F3C, 0x000E, 0x0024, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetExportImageTypeList (GraphicsImportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportDoExportImageFileDialog (GraphicsImportComponent ci, const FSSpec * inDefaultSpec, StringPtr prompt, ModalFilterYDUPP filterProc, OSType * outExportedType, FSSpec * outExportedSpec, ScriptCode * outScriptTag) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0026, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetExportSettingsAsAtomContainer (GraphicsImportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetExportSettingsFromAtomContainer (GraphicsImportComponent ci, void * qtAtomContainer) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetProgressProc (GraphicsImportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0029, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetProgressProc (GraphicsImportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetImageCount (GraphicsImportComponent ci, unsigned long * imageCount) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetImageIndex (GraphicsImportComponent ci, unsigned long imageIndex) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetImageIndex (GraphicsImportComponent ci, unsigned long * imageIndex) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDataOffsetAndSize64 (GraphicsImportComponent ci, wide * offset, wide * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportReadData64 (GraphicsImportComponent ci, void * dataPtr, const wide * dataOffset, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetDataReferenceOffsetAndLimit64 (GraphicsImportComponent ci, const wide * offset, const wide * limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0030, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDataReferenceOffsetAndLimit64 (GraphicsImportComponent ci, wide * offset, wide * limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDefaultMatrix (GraphicsImportComponent ci, MatrixRecord * defaultMatrix) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0032, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDefaultClip (GraphicsImportComponent ci, RgnHandle * defaultRgn) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0033, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDefaultGraphicsMode (GraphicsImportComponent ci, long * defaultGraphicsMode, RGBColor * defaultOpColor) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDefaultSourceRect (GraphicsImportComponent ci, Rect * defaultSourceRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetColorSyncProfile (GraphicsImportComponent ci, Handle * profile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0036, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetDestRect (GraphicsImportComponent ci, const Rect * destRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetDestRect (GraphicsImportComponent ci, Rect * destRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetFlags (GraphicsImportComponent ci, long flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0039, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportGetFlags (GraphicsImportComponent ci, long * flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A); /* 2 private selectors */ EXTERN_API( ComponentResult ) GraphicsImportGetBaseDataOffsetAndSize64 (GraphicsImportComponent ci, wide * offset, wide * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsImportSetImageIndexToThumbnail (GraphicsImportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x003E, 0x7000, 0xA82A); typedef ComponentInstance GraphicsExportComponent; enum { GraphicsExporterComponentType = FOUR_CHAR_CODE('grex'), kBaseGraphicsExporterSubType = FOUR_CHAR_CODE('base') }; enum { graphicsExporterIsBaseExporter = 1L << 0, graphicsExporterCanTranscode = 1L << 1, graphicsExporterUsesImageCompressor = 1L << 2 }; struct QTResolutionSettings { Fixed horizontalResolution; Fixed verticalResolution; }; typedef struct QTResolutionSettings QTResolutionSettings; struct QTTargetDataSize { unsigned long targetDataSize; }; typedef struct QTTargetDataSize QTTargetDataSize; struct QTThumbnailSettings { long enableThumbnail; /* a thoroughly padded Boolean*/ long maxThumbnailWidth; /* set to zero to let someone else decide*/ long maxThumbnailHeight; /* set to zero to let someone else decide*/ }; typedef struct QTThumbnailSettings QTThumbnailSettings; enum { kQTResolutionSettings = FOUR_CHAR_CODE('reso'), kQTTargetDataSize = FOUR_CHAR_CODE('dasz'), kQTDontRecompress = FOUR_CHAR_CODE('dntr'), kQTInterlaceStyle = FOUR_CHAR_CODE('ilac'), kQTColorSyncProfile = FOUR_CHAR_CODE('iccp'), kQTThumbnailSettings = FOUR_CHAR_CODE('thum'), kQTEnableExif = FOUR_CHAR_CODE('exif'), /* UInt8 (boolean)*/ kQTMetaData = FOUR_CHAR_CODE('meta') }; enum { kQTTIFFCompressionMethod = FOUR_CHAR_CODE('tifc'), /* UInt32*/ kQTTIFFCompression_None = 1, kQTTIFFCompression_PackBits = 32773L, kQTTIFFLittleEndian = FOUR_CHAR_CODE('tife') /* UInt8 (boolean)*/ }; enum { kQTPNGFilterPreference = FOUR_CHAR_CODE('pngf'), /* UInt32*/ kQTPNGFilterBestForColorType = FOUR_CHAR_CODE('bflt'), kQTPNGFilterNone = 0, kQTPNGFilterSub = 1, kQTPNGFilterUp = 2, kQTPNGFilterAverage = 3, kQTPNGFilterPaeth = 4, kQTPNGFilterAdaptivePerRow = FOUR_CHAR_CODE('aflt'), kQTPNGInterlaceStyle = FOUR_CHAR_CODE('ilac'), /* UInt32*/ kQTPNGInterlaceNone = 0, kQTPNGInterlaceAdam7 = 1 }; /** These are GraphicsExport procedures **/ /* To use: set the input and output (and other settings as desired) and call GEDoExport. */ EXTERN_API( ComponentResult ) GraphicsExportDoExport (GraphicsExportComponent ci, unsigned long * actualSizeWritten) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A); /* Used for internal communication between the base and format-specific graphics exporter: */ EXTERN_API( ComponentResult ) GraphicsExportCanTranscode (GraphicsExportComponent ci, Boolean * canTranscode) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportDoTranscode (GraphicsExportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportCanUseCompressor (GraphicsExportComponent ci, Boolean * canUseCompressor, void * codecSettingsAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportDoUseCompressor (GraphicsExportComponent ci, void * codecSettingsAtomContainer, ImageDescriptionHandle * outDesc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportDoStandaloneExport (GraphicsExportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A); /* Queries applications can make of a format-specific graphics exporter: */ EXTERN_API( ComponentResult ) GraphicsExportGetDefaultFileTypeAndCreator (GraphicsExportComponent ci, OSType * fileType, OSType * fileCreator) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0007, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetDefaultFileNameExtension (GraphicsExportComponent ci, OSType * fileNameExtension) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetMIMETypeList (GraphicsExportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A); /* (1 unused selector) */ /* Graphics exporter settings: */ EXTERN_API( ComponentResult ) GraphicsExportRequestSettings (GraphicsExportComponent ci, ModalFilterYDUPP filterProc, void * yourDataProc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetSettingsFromAtomContainer (GraphicsExportComponent ci, void * qtAtomContainer) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetSettingsAsAtomContainer (GraphicsExportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetSettingsAsText (GraphicsExportComponent ci, Handle * theText) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); /* Graphics exporters may implement some or none of the following: */ EXTERN_API( ComponentResult ) GraphicsExportSetDontRecompress (GraphicsExportComponent ci, Boolean dontRecompress) FIVEWORDINLINE(0x2F3C, 0x0002, 0x000F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetDontRecompress (GraphicsExportComponent ci, Boolean * dontRecompress) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInterlaceStyle (GraphicsExportComponent ci, unsigned long interlaceStyle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInterlaceStyle (GraphicsExportComponent ci, unsigned long * interlaceStyle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetMetaData (GraphicsExportComponent ci, void * userData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetMetaData (GraphicsExportComponent ci, void * userData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetTargetDataSize (GraphicsExportComponent ci, unsigned long targetDataSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetTargetDataSize (GraphicsExportComponent ci, unsigned long * targetDataSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0016, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetCompressionMethod (GraphicsExportComponent ci, long compressionMethod) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetCompressionMethod (GraphicsExportComponent ci, long * compressionMethod) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetCompressionQuality (GraphicsExportComponent ci, CodecQ spatialQuality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetCompressionQuality (GraphicsExportComponent ci, CodecQ * spatialQuality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetResolution (GraphicsExportComponent ci, Fixed horizontalResolution, Fixed verticalResolution) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetResolution (GraphicsExportComponent ci, Fixed * horizontalResolution, Fixed * verticalResolution) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetDepth (GraphicsExportComponent ci, long depth) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetDepth (GraphicsExportComponent ci, long * depth) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A); /* (2 unused selectors) */ EXTERN_API( ComponentResult ) GraphicsExportSetColorSyncProfile (GraphicsExportComponent ci, Handle colorSyncProfile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetColorSyncProfile (GraphicsExportComponent ci, Handle * colorSyncProfile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A); /* Always implemented by the base graphics exporter: */ EXTERN_API( ComponentResult ) GraphicsExportSetProgressProc (GraphicsExportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetProgressProc (GraphicsExportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0024, 0x7000, 0xA82A); /* Sources for the input image: */ EXTERN_API( ComponentResult ) GraphicsExportSetInputDataReference (GraphicsExportComponent ci, Handle dataRef, OSType dataRefType, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0025, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputDataReference (GraphicsExportComponent ci, Handle * dataRef, OSType * dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0026, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInputFile (GraphicsExportComponent ci, const FSSpec * theFile, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0027, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputFile (GraphicsExportComponent ci, FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInputHandle (GraphicsExportComponent ci, Handle h, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputHandle (GraphicsExportComponent ci, Handle * h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInputPtr (GraphicsExportComponent ci, Ptr p, unsigned long size, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputPtr (GraphicsExportComponent ci, Ptr * p, unsigned long * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInputGraphicsImporter (GraphicsExportComponent ci, GraphicsImportComponent grip) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputGraphicsImporter (GraphicsExportComponent ci, GraphicsImportComponent * grip) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInputPicture (GraphicsExportComponent ci, PicHandle picture) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputPicture (GraphicsExportComponent ci, PicHandle * picture) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInputGWorld (GraphicsExportComponent ci, GWorldPtr gworld) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0031, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputGWorld (GraphicsExportComponent ci, GWorldPtr * gworld) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0032, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetInputPixmap (GraphicsExportComponent ci, PixMapHandle pixmap) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0033, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputPixmap (GraphicsExportComponent ci, PixMapHandle * pixmap) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0034, 0x7000, 0xA82A); /* Only applicable when the input is a data reference, file, handle or ptr: */ EXTERN_API( ComponentResult ) GraphicsExportSetInputOffsetAndLimit (GraphicsExportComponent ci, unsigned long offset, unsigned long limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0035, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputOffsetAndLimit (GraphicsExportComponent ci, unsigned long * offset, unsigned long * limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0036, 0x7000, 0xA82A); /* Used by format-specific graphics exporters when transcoding: */ EXTERN_API( ComponentResult ) GraphicsExportMayExporterReadInputData (GraphicsExportComponent ci, Boolean * mayReadInputData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputDataSize (GraphicsExportComponent ci, unsigned long * size) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportReadInputData (GraphicsExportComponent ci, void * dataPtr, unsigned long dataOffset, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0039, 0x7000, 0xA82A); /* Used by format-specific graphics exporters, especially when doing standalone export: */ EXTERN_API( ComponentResult ) GraphicsExportGetInputImageDescription (GraphicsExportComponent ci, ImageDescriptionHandle * desc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputImageDimensions (GraphicsExportComponent ci, Rect * dimensions) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetInputImageDepth (GraphicsExportComponent ci, long * inputDepth) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportDrawInputImage (GraphicsExportComponent ci, CGrafPtr gw, GDHandle gd, const Rect * srcRect, const Rect * dstRect) FIVEWORDINLINE(0x2F3C, 0x0010, 0x003D, 0x7000, 0xA82A); /* Destinations for the output image: */ EXTERN_API( ComponentResult ) GraphicsExportSetOutputDataReference (GraphicsExportComponent ci, Handle dataRef, OSType dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetOutputDataReference (GraphicsExportComponent ci, Handle * dataRef, OSType * dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetOutputFile (GraphicsExportComponent ci, const FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0040, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetOutputFile (GraphicsExportComponent ci, FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0041, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetOutputHandle (GraphicsExportComponent ci, Handle h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0042, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetOutputHandle (GraphicsExportComponent ci, Handle * h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0043, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetOutputOffsetAndMaxSize (GraphicsExportComponent ci, unsigned long offset, unsigned long maxSize, Boolean truncateFile) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0044, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetOutputOffsetAndMaxSize (GraphicsExportComponent ci, unsigned long * offset, unsigned long * maxSize, Boolean * truncateFile) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0045, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetOutputFileTypeAndCreator (GraphicsExportComponent ci, OSType fileType, OSType fileCreator) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0046, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetOutputFileTypeAndCreator (GraphicsExportComponent ci, OSType * fileType, OSType * fileCreator) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0047, 0x7000, 0xA82A); /* Used by format-specific graphics exporters: */ EXTERN_API( ComponentResult ) GraphicsExportWriteOutputData (GraphicsExportComponent ci, const void * dataPtr, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0048, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportSetOutputMark (GraphicsExportComponent ci, unsigned long mark) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0049, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetOutputMark (GraphicsExportComponent ci, unsigned long * mark) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportReadOutputData (GraphicsExportComponent ci, void * dataPtr, unsigned long dataOffset, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x000C, 0x004B, 0x7000, 0xA82A); /* Allows embedded thumbnail creation, if supported. */ EXTERN_API( ComponentResult ) GraphicsExportSetThumbnailEnabled (GraphicsExportComponent ci, Boolean enableThumbnail, long maxThumbnailWidth, long maxThumbnailHeight) FIVEWORDINLINE(0x2F3C, 0x000A, 0x004C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetThumbnailEnabled (GraphicsExportComponent ci, Boolean * thumbnailEnabled, long * maxThumbnailWidth, long * maxThumbnailHeight) FIVEWORDINLINE(0x2F3C, 0x000C, 0x004D, 0x7000, 0xA82A); /* Allows export of Exif files, if supported. This disables Exif-incompatible settings such as grayscale JPEG and compressed TIFF, and enables export of Exif metadata. */ EXTERN_API( ComponentResult ) GraphicsExportSetExifEnabled (GraphicsExportComponent ci, Boolean enableExif) FIVEWORDINLINE(0x2F3C, 0x0002, 0x004E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) GraphicsExportGetExifEnabled (GraphicsExportComponent ci, Boolean * exifEnabled) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004F, 0x7000, 0xA82A); typedef ComponentInstance ImageTranscoderComponent; enum { ImageTranscodererComponentType = FOUR_CHAR_CODE('imtc') }; /** These are ImageTranscoder procedures **/ EXTERN_API( ComponentResult ) ImageTranscoderBeginSequence (ImageTranscoderComponent itc, ImageDescriptionHandle srcDesc, ImageDescriptionHandle * dstDesc, void * data, long dataSize) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0001, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) ImageTranscoderConvert (ImageTranscoderComponent itc, void * srcData, long srcDataSize, void ** dstData, long * dstDataSize) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) ImageTranscoderDisposeData (ImageTranscoderComponent itc, void * dstData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) ImageTranscoderEndSequence (ImageTranscoderComponent itc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A); /* UPP call backs */ /* selectors for component calls */ enum { kGraphicsImportSetDataReferenceSelect = 0x0001, kGraphicsImportGetDataReferenceSelect = 0x0002, kGraphicsImportSetDataFileSelect = 0x0003, kGraphicsImportGetDataFileSelect = 0x0004, kGraphicsImportSetDataHandleSelect = 0x0005, kGraphicsImportGetDataHandleSelect = 0x0006, kGraphicsImportGetImageDescriptionSelect = 0x0007, kGraphicsImportGetDataOffsetAndSizeSelect = 0x0008, kGraphicsImportReadDataSelect = 0x0009, kGraphicsImportSetClipSelect = 0x000A, kGraphicsImportGetClipSelect = 0x000B, kGraphicsImportSetSourceRectSelect = 0x000C, kGraphicsImportGetSourceRectSelect = 0x000D, kGraphicsImportGetNaturalBoundsSelect = 0x000E, kGraphicsImportDrawSelect = 0x000F, kGraphicsImportSetGWorldSelect = 0x0010, kGraphicsImportGetGWorldSelect = 0x0011, kGraphicsImportSetMatrixSelect = 0x0012, kGraphicsImportGetMatrixSelect = 0x0013, kGraphicsImportSetBoundsRectSelect = 0x0014, kGraphicsImportGetBoundsRectSelect = 0x0015, kGraphicsImportSaveAsPictureSelect = 0x0016, kGraphicsImportSetGraphicsModeSelect = 0x0017, kGraphicsImportGetGraphicsModeSelect = 0x0018, kGraphicsImportSetQualitySelect = 0x0019, kGraphicsImportGetQualitySelect = 0x001A, kGraphicsImportSaveAsQuickTimeImageFileSelect = 0x001B, kGraphicsImportSetDataReferenceOffsetAndLimitSelect = 0x001C, kGraphicsImportGetDataReferenceOffsetAndLimitSelect = 0x001D, kGraphicsImportGetAliasedDataReferenceSelect = 0x001E, kGraphicsImportValidateSelect = 0x001F, kGraphicsImportGetMetaDataSelect = 0x0020, kGraphicsImportGetMIMETypeListSelect = 0x0021, kGraphicsImportDoesDrawAllPixelsSelect = 0x0022, kGraphicsImportGetAsPictureSelect = 0x0023, kGraphicsImportExportImageFileSelect = 0x0024, kGraphicsImportGetExportImageTypeListSelect = 0x0025, kGraphicsImportDoExportImageFileDialogSelect = 0x0026, kGraphicsImportGetExportSettingsAsAtomContainerSelect = 0x0027, kGraphicsImportSetExportSettingsFromAtomContainerSelect = 0x0028, kGraphicsImportSetProgressProcSelect = 0x0029, kGraphicsImportGetProgressProcSelect = 0x002A, kGraphicsImportGetImageCountSelect = 0x002B, kGraphicsImportSetImageIndexSelect = 0x002C, kGraphicsImportGetImageIndexSelect = 0x002D, kGraphicsImportGetDataOffsetAndSize64Select = 0x002E, kGraphicsImportReadData64Select = 0x002F, kGraphicsImportSetDataReferenceOffsetAndLimit64Select = 0x0030, kGraphicsImportGetDataReferenceOffsetAndLimit64Select = 0x0031, kGraphicsImportGetDefaultMatrixSelect = 0x0032, kGraphicsImportGetDefaultClipSelect = 0x0033, kGraphicsImportGetDefaultGraphicsModeSelect = 0x0034, kGraphicsImportGetDefaultSourceRectSelect = 0x0035, kGraphicsImportGetColorSyncProfileSelect = 0x0036, kGraphicsImportSetDestRectSelect = 0x0037, kGraphicsImportGetDestRectSelect = 0x0038, kGraphicsImportSetFlagsSelect = 0x0039, kGraphicsImportGetFlagsSelect = 0x003A, kGraphicsImportGetBaseDataOffsetAndSize64Select = 0x003D, kGraphicsImportSetImageIndexToThumbnailSelect = 0x003E, kGraphicsExportDoExportSelect = 0x0001, kGraphicsExportCanTranscodeSelect = 0x0002, kGraphicsExportDoTranscodeSelect = 0x0003, kGraphicsExportCanUseCompressorSelect = 0x0004, kGraphicsExportDoUseCompressorSelect = 0x0005, kGraphicsExportDoStandaloneExportSelect = 0x0006, kGraphicsExportGetDefaultFileTypeAndCreatorSelect = 0x0007, kGraphicsExportGetDefaultFileNameExtensionSelect = 0x0008, kGraphicsExportGetMIMETypeListSelect = 0x0009, kGraphicsExportRequestSettingsSelect = 0x000B, kGraphicsExportSetSettingsFromAtomContainerSelect = 0x000C, kGraphicsExportGetSettingsAsAtomContainerSelect = 0x000D, kGraphicsExportGetSettingsAsTextSelect = 0x000E, kGraphicsExportSetDontRecompressSelect = 0x000F, kGraphicsExportGetDontRecompressSelect = 0x0010, kGraphicsExportSetInterlaceStyleSelect = 0x0011, kGraphicsExportGetInterlaceStyleSelect = 0x0012, kGraphicsExportSetMetaDataSelect = 0x0013, kGraphicsExportGetMetaDataSelect = 0x0014, kGraphicsExportSetTargetDataSizeSelect = 0x0015, kGraphicsExportGetTargetDataSizeSelect = 0x0016, kGraphicsExportSetCompressionMethodSelect = 0x0017, kGraphicsExportGetCompressionMethodSelect = 0x0018, kGraphicsExportSetCompressionQualitySelect = 0x0019, kGraphicsExportGetCompressionQualitySelect = 0x001A, kGraphicsExportSetResolutionSelect = 0x001B, kGraphicsExportGetResolutionSelect = 0x001C, kGraphicsExportSetDepthSelect = 0x001D, kGraphicsExportGetDepthSelect = 0x001E, kGraphicsExportSetColorSyncProfileSelect = 0x0021, kGraphicsExportGetColorSyncProfileSelect = 0x0022, kGraphicsExportSetProgressProcSelect = 0x0023, kGraphicsExportGetProgressProcSelect = 0x0024, kGraphicsExportSetInputDataReferenceSelect = 0x0025, kGraphicsExportGetInputDataReferenceSelect = 0x0026, kGraphicsExportSetInputFileSelect = 0x0027, kGraphicsExportGetInputFileSelect = 0x0028, kGraphicsExportSetInputHandleSelect = 0x0029, kGraphicsExportGetInputHandleSelect = 0x002A, kGraphicsExportSetInputPtrSelect = 0x002B, kGraphicsExportGetInputPtrSelect = 0x002C, kGraphicsExportSetInputGraphicsImporterSelect = 0x002D, kGraphicsExportGetInputGraphicsImporterSelect = 0x002E, kGraphicsExportSetInputPictureSelect = 0x002F, kGraphicsExportGetInputPictureSelect = 0x0030, kGraphicsExportSetInputGWorldSelect = 0x0031, kGraphicsExportGetInputGWorldSelect = 0x0032, kGraphicsExportSetInputPixmapSelect = 0x0033, kGraphicsExportGetInputPixmapSelect = 0x0034, kGraphicsExportSetInputOffsetAndLimitSelect = 0x0035, kGraphicsExportGetInputOffsetAndLimitSelect = 0x0036, kGraphicsExportMayExporterReadInputDataSelect = 0x0037, kGraphicsExportGetInputDataSizeSelect = 0x0038, kGraphicsExportReadInputDataSelect = 0x0039, kGraphicsExportGetInputImageDescriptionSelect = 0x003A, kGraphicsExportGetInputImageDimensionsSelect = 0x003B, kGraphicsExportGetInputImageDepthSelect = 0x003C, kGraphicsExportDrawInputImageSelect = 0x003D, kGraphicsExportSetOutputDataReferenceSelect = 0x003E, kGraphicsExportGetOutputDataReferenceSelect = 0x003F, kGraphicsExportSetOutputFileSelect = 0x0040, kGraphicsExportGetOutputFileSelect = 0x0041, kGraphicsExportSetOutputHandleSelect = 0x0042, kGraphicsExportGetOutputHandleSelect = 0x0043, kGraphicsExportSetOutputOffsetAndMaxSizeSelect = 0x0044, kGraphicsExportGetOutputOffsetAndMaxSizeSelect = 0x0045, kGraphicsExportSetOutputFileTypeAndCreatorSelect = 0x0046, kGraphicsExportGetOutputFileTypeAndCreatorSelect = 0x0047, kGraphicsExportWriteOutputDataSelect = 0x0048, kGraphicsExportSetOutputMarkSelect = 0x0049, kGraphicsExportGetOutputMarkSelect = 0x004A, kGraphicsExportReadOutputDataSelect = 0x004B, kGraphicsExportSetThumbnailEnabledSelect = 0x004C, kGraphicsExportGetThumbnailEnabledSelect = 0x004D, kGraphicsExportSetExifEnabledSelect = 0x004E, kGraphicsExportGetExifEnabledSelect = 0x004F, kImageTranscoderBeginSequenceSelect = 0x0001, kImageTranscoderConvertSelect = 0x0002, kImageTranscoderDisposeDataSelect = 0x0003, kImageTranscoderEndSequenceSelect = 0x0004 }; #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __IMAGECOMPRESSION__ */