/* File: ImageCompression.h Contains: QuickTime Image Compression Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1990-2007 by Apple 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 __DIALOGS__ #include #endif #ifndef __STANDARDFILE__ #include #endif #if TARGET_OS_MAC #include #include #else #include #endif /* TARGET_OS_MAC */ #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 #ifndef AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER WEAK_IMPORT_ATTRIBUTE #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER #endif /* QuickTime is not available to 64-bit clients */ #if !__LP64__ 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*/ kDVCPro50NTSCCodecType = FOUR_CHAR_CODE('dv5n'), kDVCPro50PALCodecType = FOUR_CHAR_CODE('dv5p'), kDVCPro100NTSCCodecType = FOUR_CHAR_CODE('dv1n'), kDVCPro100PALCodecType = FOUR_CHAR_CODE('dv1p'), kDVCPROHD720pCodecType = FOUR_CHAR_CODE('dvhp'), kDVCPROHD1080i60CodecType = FOUR_CHAR_CODE('dvh6'), kDVCPROHD1080i50CodecType = FOUR_CHAR_CODE('dvh5'), 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*/ kJPEG2000CodecType = FOUR_CHAR_CODE('mjp2'), kPixletCodecType = FOUR_CHAR_CODE('pxlt'), kH264CodecType = FOUR_CHAR_CODE('avc1') }; /* 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 */ codecInfoDoesReorder = (1L << 19), /* codec can rearrange frames during compression */ codecInfoDoesWarp = (1L << 20), /* codec can warp arbitrarily on decompress */ codecInfoDoesMultiPass = (1L << 20), /* codec can perform multi-pass compression */ 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 */ codecCompletionDecoded = (1 << 10), /* codec has decoded this frame; if it is cancelled and rescheduled, set icmFrameAlreadyDecoded in ICMFrameTimeRecord.flags */ codecCompletionNotDisplayable = (1 << 11), /* the frame may still be scheduled for decode, but will not be able to be displayed because the buffer containing it will need to be recycled to display earlier frames. */ codecCompletionNotDrawn = (1 << 12) /* set in conjunction with codecCompletionDest to indicate that the frame was not drawn */ }; 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, graphicsModePerComponentAlpha = 272 }; 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 }; /* Flags for ICMFrameTimeRecord.flags */ enum { icmFrameTimeHasVirtualStartTimeAndDuration = 1 << 0, icmFrameAlreadyDecoded = 1 << 1, icmFrameTimeIsNonScheduledDisplayTime = 1 << 2, icmFrameTimeHasDecodeTime = 1 << 3, icmFrameTimeDecodeImmediately = 1 << 4, icmFrameTimeDoNotDisplay = 1 << 5 }; struct ICMFrameTimeRecord { wide value; /* frame display 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*/ /* The following fields only exist for QuickTime 7.0 and greater. */ TimeValue64 decodeTime; /* suggested decode time, if icmFrameTimeHasDecodeTime is set in flags*/ }; 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__) */ /* See Movies.h for the flags themselves. */ typedef UInt32 MediaSampleFlags; /* * NewICMDataUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMDataUPP ) NewICMDataUPP(ICMDataProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMDataProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMDataUPP) NewICMDataUPP(ICMDataProcPtr userRoutine) { return (ICMDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMDataProcInfo, GetCurrentArchitecture()); } #else #define NewICMDataUPP(userRoutine) (ICMDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMDataProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewICMFlushUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMFlushUPP ) NewICMFlushUPP(ICMFlushProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMFlushProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMFlushUPP) NewICMFlushUPP(ICMFlushProcPtr userRoutine) { return (ICMFlushUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMFlushProcInfo, GetCurrentArchitecture()); } #else #define NewICMFlushUPP(userRoutine) (ICMFlushUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMFlushProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewICMCompletionUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMCompletionUPP ) NewICMCompletionUPP(ICMCompletionProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMCompletionProcInfo = 0x00000E80 }; /* pascal no_return_value Func(2_bytes, 2_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMCompletionUPP) NewICMCompletionUPP(ICMCompletionProcPtr userRoutine) { return (ICMCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMCompletionProcInfo, GetCurrentArchitecture()); } #else #define NewICMCompletionUPP(userRoutine) (ICMCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMCompletionProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewICMProgressUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMProgressUPP ) NewICMProgressUPP(ICMProgressProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMProgressProcInfo = 0x00000FA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMProgressUPP) NewICMProgressUPP(ICMProgressProcPtr userRoutine) { return (ICMProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMProgressProcInfo, GetCurrentArchitecture()); } #else #define NewICMProgressUPP(userRoutine) (ICMProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMProgressProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewStdPixUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( StdPixUPP ) NewStdPixUPP(StdPixProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppStdPixProcInfo = 0x002FEFC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 2_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(StdPixUPP) NewStdPixUPP(StdPixProcPtr userRoutine) { return (StdPixUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppStdPixProcInfo, GetCurrentArchitecture()); } #else #define NewStdPixUPP(userRoutine) (StdPixUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppStdPixProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewQDPixUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( QDPixUPP ) NewQDPixUPP(QDPixProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQDPixProcInfo = 0x002FEFC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 2_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QDPixUPP) NewQDPixUPP(QDPixProcPtr userRoutine) { return (QDPixUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPixProcInfo, GetCurrentArchitecture()); } #else #define NewQDPixUPP(userRoutine) (QDPixUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPixProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewICMAlignmentUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMAlignmentUPP ) NewICMAlignmentUPP(ICMAlignmentProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMAlignmentProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMAlignmentUPP) NewICMAlignmentUPP(ICMAlignmentProcPtr userRoutine) { return (ICMAlignmentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMAlignmentProcInfo, GetCurrentArchitecture()); } #else #define NewICMAlignmentUPP(userRoutine) (ICMAlignmentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMAlignmentProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewICMCursorShieldedUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMCursorShieldedUPP ) NewICMCursorShieldedUPP(ICMCursorShieldedProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMCursorShieldedProcInfo = 0x00000FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMCursorShieldedUPP) NewICMCursorShieldedUPP(ICMCursorShieldedProcPtr userRoutine) { return (ICMCursorShieldedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMCursorShieldedProcInfo, GetCurrentArchitecture()); } #else #define NewICMCursorShieldedUPP(userRoutine) (ICMCursorShieldedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMCursorShieldedProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewICMMemoryDisposedUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMMemoryDisposedUPP ) NewICMMemoryDisposedUPP(ICMMemoryDisposedProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMMemoryDisposedProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMMemoryDisposedUPP) NewICMMemoryDisposedUPP(ICMMemoryDisposedProcPtr userRoutine) { return (ICMMemoryDisposedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMMemoryDisposedProcInfo, GetCurrentArchitecture()); } #else #define NewICMMemoryDisposedUPP(userRoutine) (ICMMemoryDisposedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMMemoryDisposedProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewICMConvertDataFormatUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ICMConvertDataFormatUPP ) NewICMConvertDataFormatUPP(ICMConvertDataFormatProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppICMConvertDataFormatProcInfo = 0x003FFFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ICMConvertDataFormatUPP) NewICMConvertDataFormatUPP(ICMConvertDataFormatProcPtr userRoutine) { return (ICMConvertDataFormatUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMConvertDataFormatProcInfo, GetCurrentArchitecture()); } #else #define NewICMConvertDataFormatUPP(userRoutine) (ICMConvertDataFormatUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMConvertDataFormatProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeICMDataUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMDataUPP(ICMDataUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMDataUPP(ICMDataUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMDataUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeICMFlushUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMFlushUPP(ICMFlushUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMFlushUPP(ICMFlushUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMFlushUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeICMCompletionUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMCompletionUPP(ICMCompletionUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMCompletionUPP(ICMCompletionUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeICMProgressUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMProgressUPP(ICMProgressUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMProgressUPP(ICMProgressUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMProgressUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeStdPixUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeStdPixUPP(StdPixUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeStdPixUPP(StdPixUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeStdPixUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeQDPixUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeQDPixUPP(QDPixUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQDPixUPP(QDPixUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQDPixUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeICMAlignmentUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMAlignmentUPP(ICMAlignmentUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMAlignmentUPP(ICMAlignmentUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMAlignmentUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeICMCursorShieldedUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMCursorShieldedUPP(ICMCursorShieldedUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMCursorShieldedUPP(ICMCursorShieldedUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMCursorShieldedUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeICMMemoryDisposedUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMMemoryDisposedUPP(ICMMemoryDisposedUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMMemoryDisposedUPP(ICMMemoryDisposedUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMMemoryDisposedUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeICMConvertDataFormatUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeICMConvertDataFormatUPP(ICMConvertDataFormatUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeICMConvertDataFormatUPP(ICMConvertDataFormatUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeICMConvertDataFormatUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeICMDataUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeICMDataUPP( Ptr * dataP, long bytesNeeded, long refcon, ICMDataUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeICMDataUPP(Ptr * dataP, long bytesNeeded, long refcon, ICMDataUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppICMDataProcInfo, dataP, bytesNeeded, refcon); } #else #define InvokeICMDataUPP(dataP, bytesNeeded, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppICMDataProcInfo, (dataP), (bytesNeeded), (refcon)) #endif #endif /* * InvokeICMFlushUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeICMFlushUPP( Ptr data, long bytesAdded, long refcon, ICMFlushUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeICMFlushUPP(Ptr data, long bytesAdded, long refcon, ICMFlushUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppICMFlushProcInfo, data, bytesAdded, refcon); } #else #define InvokeICMFlushUPP(data, bytesAdded, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppICMFlushProcInfo, (data), (bytesAdded), (refcon)) #endif #endif /* * InvokeICMCompletionUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeICMCompletionUPP( OSErr result, short flags, long refcon, ICMCompletionUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeICMCompletionUPP(OSErr result, short flags, long refcon, ICMCompletionUPP userUPP) { CALL_THREE_PARAMETER_UPP(userUPP, uppICMCompletionProcInfo, result, flags, refcon); } #else #define InvokeICMCompletionUPP(result, flags, refcon, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppICMCompletionProcInfo, (result), (flags), (refcon)) #endif #endif /* * InvokeICMProgressUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeICMProgressUPP( short message, Fixed completeness, long refcon, ICMProgressUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeICMProgressUPP(short message, Fixed completeness, long refcon, ICMProgressUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppICMProgressProcInfo, message, completeness, refcon); } #else #define InvokeICMProgressUPP(message, completeness, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppICMProgressProcInfo, (message), (completeness), (refcon)) #endif #endif /* * InvokeStdPixUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeStdPixUPP( PixMap * src, Rect * srcRect, MatrixRecord * matrix, short mode, RgnHandle mask, PixMap * matte, Rect * matteRect, short flags, StdPixUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeStdPixUPP(PixMap * src, Rect * srcRect, MatrixRecord * matrix, short mode, RgnHandle mask, PixMap * matte, Rect * matteRect, short flags, StdPixUPP userUPP) { CALL_EIGHT_PARAMETER_UPP(userUPP, uppStdPixProcInfo, src, srcRect, matrix, mode, mask, matte, matteRect, flags); } #else #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)) #endif #endif /* * InvokeQDPixUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeQDPixUPP( PixMap * src, Rect * srcRect, MatrixRecord * matrix, short mode, RgnHandle mask, PixMap * matte, Rect * matteRect, short flags, QDPixUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeQDPixUPP(PixMap * src, Rect * srcRect, MatrixRecord * matrix, short mode, RgnHandle mask, PixMap * matte, Rect * matteRect, short flags, QDPixUPP userUPP) { CALL_EIGHT_PARAMETER_UPP(userUPP, uppQDPixProcInfo, src, srcRect, matrix, mode, mask, matte, matteRect, flags); } #else #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)) #endif #endif /* * InvokeICMAlignmentUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeICMAlignmentUPP( Rect * rp, long refcon, ICMAlignmentUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeICMAlignmentUPP(Rect * rp, long refcon, ICMAlignmentUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppICMAlignmentProcInfo, rp, refcon); } #else #define InvokeICMAlignmentUPP(rp, refcon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppICMAlignmentProcInfo, (rp), (refcon)) #endif #endif /* * InvokeICMCursorShieldedUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeICMCursorShieldedUPP( const Rect * r, void * refcon, long flags, ICMCursorShieldedUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeICMCursorShieldedUPP(const Rect * r, void * refcon, long flags, ICMCursorShieldedUPP userUPP) { CALL_THREE_PARAMETER_UPP(userUPP, uppICMCursorShieldedProcInfo, r, refcon, flags); } #else #define InvokeICMCursorShieldedUPP(r, refcon, flags, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppICMCursorShieldedProcInfo, (r), (refcon), (flags)) #endif #endif /* * InvokeICMMemoryDisposedUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeICMMemoryDisposedUPP( Ptr memoryBlock, void * refcon, ICMMemoryDisposedUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeICMMemoryDisposedUPP(Ptr memoryBlock, void * refcon, ICMMemoryDisposedUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppICMMemoryDisposedProcInfo, memoryBlock, refcon); } #else #define InvokeICMMemoryDisposedUPP(memoryBlock, refcon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppICMMemoryDisposedProcInfo, (memoryBlock), (refcon)) #endif #endif /* * InvokeICMConvertDataFormatUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeICMConvertDataFormatUPP( void * refCon, long flags, Handle desiredFormat, Handle sourceDataFormat, void * srcData, long srcDataSize, void ** dstData, long * dstDataSize, ICMConvertDataFormatUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeICMConvertDataFormatUPP(void * refCon, long flags, Handle desiredFormat, Handle sourceDataFormat, void * srcData, long srcDataSize, void ** dstData, long * dstDataSize, ICMConvertDataFormatUPP userUPP) { return (OSErr)CALL_EIGHT_PARAMETER_UPP(userUPP, uppICMConvertDataFormatProcInfo, refCon, flags, desiredFormat, sourceDataFormat, srcData, srcDataSize, dstData, dstDataSize); } #else #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 #endif #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #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) #endif /* CALL_NOT_IN_CARBON */ /* * CodecManagerVersion() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CodecManagerVersion(long * version); /* * GetCodecNameList() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCodecNameList( CodecNameSpecListPtr * list, short showAll); /* * DisposeCodecNameList() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DisposeCodecNameList(CodecNameSpecListPtr list); /* * GetCodecInfo() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCodecInfo( CodecInfo * info, CodecType cType, CodecComponent codec); /* * GetMaxCompressionSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetMaxCompressionSize( PixMapHandle src, const Rect * srcRect, short colorDepth, CodecQ quality, CodecType cType, CompressorComponent codec, long * size); /* * GetCSequenceMaxCompressionSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCSequenceMaxCompressionSize( ImageSequence seqID, PixMapHandle src, long * size); /* * GetCompressionTime() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCompressionTime( PixMapHandle src, const Rect * srcRect, short colorDepth, CodecType cType, CompressorComponent codec, CodecQ * spatialQuality, CodecQ * temporalQuality, unsigned long * compressTime); /* * CompressImage() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CompressImage( PixMapHandle src, const Rect * srcRect, CodecQ quality, CodecType cType, ImageDescriptionHandle desc, Ptr data); /* * FCompressImage() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ 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); /* * DecompressImage() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DecompressImage( Ptr data, ImageDescriptionHandle desc, PixMapHandle dst, const Rect * srcRect, const Rect * dstRect, short mode, RgnHandle mask); /* * FDecompressImage() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ 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); /* For video compression, consider using ICMCompressionSessionCreate etc. instead of CompressSequenceBegin etc. */ /* * CompressSequenceBegin() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ 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); /* * CompressSequenceFrame() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CompressSequenceFrame( ImageSequence seqID, PixMapHandle src, const Rect * srcRect, CodecFlags flags, Ptr data, long * dataSize, UInt8 * similarity, ICMCompletionProcRecordPtr asyncCompletionProc); /* For video decompression, consider using ICMDecompressionSessionCreate etc. instead of DecompressSequenceBegin etc. */ /* * DecompressSequenceBegin() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ 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); /* For video decompression, consider using ICMDecompressionSessionCreate etc. instead of DecompressSequenceBeginS etc. */ /* * DecompressSequenceBeginS() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ 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); /* * DecompressSequenceFrame() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DecompressSequenceFrame( ImageSequence seqID, Ptr data, CodecFlags inFlags, CodecFlags * outFlags, ICMCompletionProcRecordPtr asyncCompletionProc); /* * DecompressSequenceFrameS() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DecompressSequenceFrameS( ImageSequence seqID, Ptr data, long dataSize, CodecFlags inFlags, CodecFlags * outFlags, ICMCompletionProcRecordPtr asyncCompletionProc); /* * DecompressSequenceFrameWhen() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DecompressSequenceFrameWhen( ImageSequence seqID, Ptr data, long dataSize, CodecFlags inFlags, CodecFlags * outFlags, ICMCompletionProcRecordPtr asyncCompletionProc, const ICMFrameTimeRecord * frameTime); /* * CDSequenceFlush() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceFlush(ImageSequence seqID); /* * SetDSequenceMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceMatrix( ImageSequence seqID, MatrixRecordPtr matrix); /* * GetDSequenceMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( OSErr ) GetDSequenceMatrix( ImageSequence seqID, MatrixRecordPtr matrix); /* * SetDSequenceMatte() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceMatte( ImageSequence seqID, PixMapHandle matte, const Rect * matteRect); /* * SetDSequenceMask() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceMask( ImageSequence seqID, RgnHandle mask); /* * SetDSequenceTransferMode() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceTransferMode( ImageSequence seqID, short mode, const RGBColor * opColor); /* * SetDSequenceDataProc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceDataProc( ImageSequence seqID, ICMDataProcRecordPtr dataProc, long bufferSize); /* * SetDSequenceAccuracy() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceAccuracy( ImageSequence seqID, CodecQ accuracy); /* * SetDSequenceSrcRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceSrcRect( ImageSequence seqID, const Rect * srcRect); /* * SetDSequenceFlags() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( OSErr ) SetDSequenceFlags( ImageSequence seqID, long flags, long flagsMask); enum { codecDSequenceDisableOverlaySurface = (1L << 5), codecDSequenceSingleField = (1L << 6), codecDSequenceBidirectionalPrediction = (1L << 7), codecDSequenceFlushInsteadOfDirtying = (1L << 8), codecDSequenceEnableSubPixelPositioning = (1L << 9), codecDSequenceDeinterlaceFields = (1L << 10) }; 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*/ }; /* * ICMSequenceGetInfo() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) ICMSequenceGetInfo( ImageSequence seqID, OSType which, void * data); /* * ICMSequenceSetInfo() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) ICMSequenceSetInfo( ImageSequence seqID, OSType which, void * data, Size dataSize); /* * GetDSequenceImageBuffer() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetDSequenceImageBuffer( ImageSequence seqID, GWorldPtr * gworld); /* * GetDSequenceScreenBuffer() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetDSequenceScreenBuffer( ImageSequence seqID, GWorldPtr * gworld); /* * SetCSequenceQuality() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCSequenceQuality( ImageSequence seqID, CodecQ spatialQuality, CodecQ temporalQuality); /* * SetCSequencePrev() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCSequencePrev( ImageSequence seqID, PixMapHandle prev, const Rect * prevRect); /* * SetCSequenceFlushProc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCSequenceFlushProc( ImageSequence seqID, ICMFlushProcRecordPtr flushProc, long bufferSize); /* * SetCSequenceKeyFrameRate() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCSequenceKeyFrameRate( ImageSequence seqID, long keyFrameRate); /* * GetCSequenceKeyFrameRate() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCSequenceKeyFrameRate( ImageSequence seqID, long * keyFrameRate); /* * GetCSequencePrevBuffer() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCSequencePrevBuffer( ImageSequence seqID, GWorldPtr * gworld); /* * CDSequenceBusy() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceBusy(ImageSequence seqID); /* * CDSequenceEnd() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceEnd(ImageSequence seqID); /* * CDSequenceEquivalentImageDescription() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceEquivalentImageDescription( ImageSequence seqID, ImageDescriptionHandle newDesc, Boolean * equivalent); /* * CDSequenceEquivalentImageDescriptionS() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) CDSequenceEquivalentImageDescriptionS( ImageSequence seqID, ImageDescriptionHandle newDesc, Boolean * equivalent, Boolean * canSwitch); /* * ReplaceDSequenceImageDescription() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) ReplaceDSequenceImageDescription( ImageSequence seqID, ImageDescriptionHandle newDesc); /* * GetCompressedImageSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCompressedImageSize( ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long * dataSize); /* * GetSimilarity() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetSimilarity( PixMapHandle src, const Rect * srcRect, ImageDescriptionHandle desc, Ptr data, Fixed * similarity); 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)*/ }; /* * GetImageDescriptionCTable() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetImageDescriptionCTable( ImageDescriptionHandle desc, CTabHandle * ctable); /* * SetImageDescriptionCTable() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetImageDescriptionCTable( ImageDescriptionHandle desc, CTabHandle ctable); /* * GetImageDescriptionExtension() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetImageDescriptionExtension( ImageDescriptionHandle desc, Handle * extension, long idType, long index); /* * AddImageDescriptionExtension() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) AddImageDescriptionExtension( ImageDescriptionHandle desc, Handle extension, long idType); /* * RemoveImageDescriptionExtension() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) RemoveImageDescriptionExtension( ImageDescriptionHandle desc, long idType, long index); /* * CountImageDescriptionExtensionType() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CountImageDescriptionExtensionType( ImageDescriptionHandle desc, long idType, long * count); /* * GetNextImageDescriptionExtensionType() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetNextImageDescriptionExtensionType( ImageDescriptionHandle desc, long * idType); /* * FindCodec() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) FindCodec( CodecType cType, CodecComponent specCodec, CompressorComponent * compressor, DecompressorComponent * decompressor); /* * CompressPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CompressPicture( PicHandle srcPicture, PicHandle dstPicture, CodecQ quality, CodecType cType); /* * FCompressPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) FCompressPicture( PicHandle srcPicture, PicHandle dstPicture, short colorDepth, CTabHandle ctable, CodecQ quality, short doDither, short compressAgain, ICMProgressProcRecordPtr progressProc, CodecType cType, CompressorComponent codec); /* * CompressPictureFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CompressPictureFile( short srcRefNum, short dstRefNum, CodecQ quality, CodecType cType); /* * FCompressPictureFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) FCompressPictureFile( short srcRefNum, short dstRefNum, short colorDepth, CTabHandle ctable, CodecQ quality, short doDither, short compressAgain, ICMProgressProcRecordPtr progressProc, CodecType cType, CompressorComponent codec); /* * GetPictureFileHeader() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetPictureFileHeader( short refNum, Rect * frame, OpenCPicParams * header); /* * DrawPictureFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DrawPictureFile( short refNum, const Rect * frame, ICMProgressProcRecordPtr progressProc); /* * DrawTrimmedPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DrawTrimmedPicture( PicHandle srcPicture, const Rect * frame, RgnHandle trimMask, short doDither, ICMProgressProcRecordPtr progressProc); /* * DrawTrimmedPictureFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) DrawTrimmedPictureFile( short srcRefnum, const Rect * frame, RgnHandle trimMask, short doDither, ICMProgressProcRecordPtr progressProc); /* * MakeThumbnailFromPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) MakeThumbnailFromPicture( PicHandle picture, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc); /* * MakeThumbnailFromPictureFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) MakeThumbnailFromPictureFile( short refNum, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc); /* * MakeThumbnailFromPixMap() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) MakeThumbnailFromPixMap( PixMapHandle src, const Rect * srcRect, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc); /* * TrimImage() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) TrimImage( ImageDescriptionHandle desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect * trimRect, ICMProgressProcRecordPtr progressProc); /* * ConvertImage() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ConvertImage( ImageDescriptionHandle srcDD, Ptr srcData, short colorDepth, CTabHandle ctable, CodecQ accuracy, CodecQ quality, CodecType cType, CodecComponent codec, ImageDescriptionHandle dstDD, Ptr dstData); /* * GetCompressedPixMapInfo() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCompressedPixMapInfo( PixMapPtr pix, ImageDescriptionHandle * desc, Ptr * data, long * bufferSize, ICMDataProcRecord * dataProc, ICMProgressProcRecord * progressProc); /* * SetCompressedPixMapInfo() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCompressedPixMapInfo( PixMapPtr pix, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, ICMProgressProcRecordPtr progressProc); /* * StdPix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) StdPix( PixMapPtr src, const Rect * srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, PixMapPtr matte, const Rect * matteRect, short flags); /* * TransformRgn() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) TransformRgn( MatrixRecordPtr matrix, RgnHandle rgn); /*********** preview stuff ***********/ #if CALL_NOT_IN_CARBON /* * SFGetFilePreview() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) SFGetFilePreview( Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, short numTypes, ConstSFTypeListPtr typeList, DlgHookUPP dlgHook, SFReply * reply); /* * SFPGetFilePreview() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) SFPGetFilePreview( Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, short numTypes, ConstSFTypeListPtr typeList, DlgHookUPP dlgHook, SFReply * reply, short dlgID, ModalFilterUPP filterProc); /* * StandardGetFilePreview() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) StandardGetFilePreview( FileFilterUPP fileFilter, short numTypes, ConstSFTypeListPtr typeList, StandardFileReply * reply); /* * CustomGetFilePreview() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ 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); #endif /* CALL_NOT_IN_CARBON */ /* * MakeFilePreview() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) MakeFilePreview( short resRefNum, ICMProgressProcRecordPtr progress); /* * AddFilePreview() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) AddFilePreview( short resRefNum, OSType previewType, Handle previewData); 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; /* * AlignScreenRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) AlignScreenRect( Rect * rp, ICMAlignmentProcRecordPtr alignmentProc); /* * AlignWindow() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) AlignWindow( WindowRef wp, Boolean front, const Rect * alignmentRect, ICMAlignmentProcRecordPtr alignmentProc); /* * DragAlignedWindow() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) DragAlignedWindow( WindowRef wp, Point startPt, Rect * boundsRect, Rect * alignmentRect, ICMAlignmentProcRecordPtr alignmentProc); /* * DragAlignedGrayRgn() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) DragAlignedGrayRgn( RgnHandle theRgn, Point startPt, Rect * boundsRect, Rect * slopRect, short axis, UniversalProcPtr actionProc, Rect * alignmentRect, ICMAlignmentProcRecordPtr alignmentProc); /* * SetCSequenceDataRateParams() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCSequenceDataRateParams( ImageSequence seqID, DataRateParamsPtr params); /* * SetCSequenceFrameNumber() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCSequenceFrameNumber( ImageSequence seqID, long frameNumber); /* * SetCSequencePreferredPacketSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetCSequencePreferredPacketSize( ImageSequence seqID, long preferredPacketSizeInBytes); /* * NewImageGWorld() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) NewImageGWorld( GWorldPtr * gworld, ImageDescriptionHandle idh, GWorldFlags flags); /* * GetCSequenceDataRateParams() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCSequenceDataRateParams( ImageSequence seqID, DataRateParamsPtr params); /* * GetCSequenceFrameNumber() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetCSequenceFrameNumber( ImageSequence seqID, long * frameNumber); /* * GetBestDeviceRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetBestDeviceRect( GDHandle * gdh, Rect * rp); /* * SetSequenceProgressProc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetSequenceProgressProc( ImageSequence seqID, ICMProgressProcRecord * progressProc); /* * GDHasScale() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GDHasScale( GDHandle gdh, short depth, Fixed * scale); /* * GDGetScale() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GDGetScale( GDHandle gdh, Fixed * scale, short * flags); /* * GDSetScale() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GDSetScale( GDHandle gdh, Fixed scale, short flags); /* * ICMShieldSequenceCursor() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ICMShieldSequenceCursor(ImageSequence seqID); /* * ICMDecompressComplete() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) ICMDecompressComplete( ImageSequence seqID, OSErr err, short flag, ICMCompletionProcRecordPtr completionRtn); /* * ICMDecompressCompleteS() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ICMDecompressCompleteS( ImageSequence seqID, OSErr err, short flag, ICMCompletionProcRecordPtr completionRtn); /* * ICMSequenceLockBits() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ICMSequenceLockBits( ImageSequence seqID, PixMapPtr dst, long flags); /* * ICMSequenceUnlockBits() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ICMSequenceUnlockBits( ImageSequence seqID, long flags); 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*/ /* new fields for QuickTime 6.5*/ short cmpCount; /* for use in PixMap.cmpCount*/ short cmpSize; /* for use in PixMap.cmpSize*/ }; typedef struct ICMPixelFormatInfo ICMPixelFormatInfo; typedef ICMPixelFormatInfo * ICMPixelFormatInfoPtr; /* IMPORTANT: Fill in theInfo->size with sizeof(ICMPixelFormatInfo) before calling ICMGetPixelFormatInfo */ /* * ICMGetPixelFormatInfo() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ICMGetPixelFormatInfo( OSType PixelFormat, ICMPixelFormatInfoPtr theInfo); /* IMPORTANT: Fill in theInfo->size with sizeof(ICMPixelFormatInfo) before calling ICMSetPixelFormatInfo */ /* * ICMSetPixelFormatInfo() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ICMSetPixelFormatInfo( OSType PixelFormat, ICMPixelFormatInfoPtr theInfo); enum { kICMGetChainUltimateParent = 0, kICMGetChainParent = 1, kICMGetChainChild = 2, kICMGetChainUltimateChild = 3 }; /* * ICMSequenceGetChainMember() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ICMSequenceGetChainMember( ImageSequence seqID, ImageSequence * retSeqID, long flags); /* * SetDSequenceTimeCode() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) SetDSequenceTimeCode( ImageSequence seqID, void * timeCodeFormat, void * timeCodeTime); /* * CDSequenceNewMemory() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceNewMemory( ImageSequence seqID, Ptr * data, Size dataSize, long dataUse, ICMMemoryDisposedUPP memoryGoneProc, void * refCon); /* * CDSequenceDisposeMemory() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceDisposeMemory( ImageSequence seqID, Ptr data); /* * CDSequenceNewDataSource() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceNewDataSource( ImageSequence seqID, ImageSequenceDataSource * sourceID, OSType sourceType, long sourceInputNumber, Handle dataDescription, ICMConvertDataFormatUPP transferProc, void * refCon); /* * CDSequenceDisposeDataSource() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceDisposeDataSource(ImageSequenceDataSource sourceID); /* * CDSequenceSetSourceData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceSetSourceData( ImageSequenceDataSource sourceID, void * data, long dataSize); /* * CDSequenceChangedSourceData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceChangedSourceData(ImageSequenceDataSource sourceID); /* * CDSequenceSetSourceDataQueue() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceSetSourceDataQueue( ImageSequenceDataSource sourceID, QHdrPtr dataQueue); /* * CDSequenceGetDataSource() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceGetDataSource( ImageSequence seqID, ImageSequenceDataSource * sourceID, OSType sourceType, long sourceInputNumber); /* * PtInDSequenceData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) PtInDSequenceData( ImageSequence seqID, void * data, Size dataSize, Point where, Boolean * hit); /* * HitTestDSequenceData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) HitTestDSequenceData( ImageSequence seqID, void * data, Size dataSize, Point where, long * hit, long hitFlags); /* * SetDSequenceNonScheduledDisplayTime() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later */ EXTERN_API( OSErr ) SetDSequenceNonScheduledDisplayTime( ImageSequence sequence, TimeValue64 displayTime, TimeScale displayTimeScale, UInt32 flags); /* * GetDSequenceNonScheduledDisplayTime() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later */ EXTERN_API( OSErr ) GetDSequenceNonScheduledDisplayTime( ImageSequence sequence, TimeValue64 * displayTime, TimeScale * displayTimeScale); /* * SetDSequenceNonScheduledDisplayDirection() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later */ EXTERN_API( OSErr ) SetDSequenceNonScheduledDisplayDirection( ImageSequence sequence, Fixed rate); /* * GetDSequenceNonScheduledDisplayDirection() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later */ EXTERN_API( OSErr ) GetDSequenceNonScheduledDisplayDirection( ImageSequence sequence, Fixed * rate); /* * GetGraphicsImporterForFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetGraphicsImporterForFile( const FSSpec * theFile, ComponentInstance * gi); /* * GetGraphicsImporterForDataRef() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetGraphicsImporterForDataRef( Handle dataRef, OSType dataRefType, ComponentInstance * gi); enum { kDontUseValidateToFindGraphicsImporter = 1L << 0 }; /* * GetGraphicsImporterForFileWithFlags() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetGraphicsImporterForFileWithFlags( const FSSpec * theFile, ComponentInstance * gi, long flags); /* * GetGraphicsImporterForDataRefWithFlags() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) GetGraphicsImporterForDataRefWithFlags( Handle dataRef, OSType dataRefType, ComponentInstance * gi, long flags); /* * QTGetFileNameExtension() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) QTGetFileNameExtension( ConstStrFileNameParam fileName, OSType fileType, OSType * extension); /* * ImageTranscodeSequenceBegin() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ImageTranscodeSequenceBegin( ImageTranscodeSequence * its, ImageDescriptionHandle srcDesc, OSType destType, ImageDescriptionHandle * dstDesc, void * data, long dataSize); /* * ImageTranscodeSequenceEnd() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ImageTranscodeSequenceEnd(ImageTranscodeSequence its); /* * ImageTranscodeFrame() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ImageTranscodeFrame( ImageTranscodeSequence its, void * srcData, long srcDataSize, void ** dstData, long * dstDataSize); /* * ImageTranscodeDisposeFrameData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ImageTranscodeDisposeFrameData( ImageTranscodeSequence its, void * dstData); /* * CDSequenceInvalidate() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceInvalidate( ImageSequence seqID, RgnHandle invalRgn); /* * CDSequenceSetTimeBase() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) CDSequenceSetTimeBase( ImageSequence seqID, void * base); /* * ImageFieldSequenceBegin() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ImageFieldSequenceBegin( ImageFieldSequence * ifs, ImageDescriptionHandle desc1, ImageDescriptionHandle desc2, ImageDescriptionHandle descOut); /* * ImageFieldSequenceExtractCombine() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ImageFieldSequenceExtractCombine( ImageFieldSequence ifs, long fieldFlags, void * data1, long dataSize1, void * data2, long dataSize2, void * outputData, long * outDataSize); /* * ImageFieldSequenceEnd() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) ImageFieldSequenceEnd(ImageFieldSequence ifs); enum { kICMTempThenAppMemory = 1L << 12, kICMAppThenTempMemory = 1L << 13 }; /* * QTNewGWorld() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) QTNewGWorld( GWorldPtr * offscreenGWorld, OSType PixelFormat, const Rect * boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags); /* * QTNewGWorldFromPtr() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( OSErr ) QTNewGWorldFromPtr( GWorldPtr * gw, OSType pixelFormat, const Rect * boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags, void * baseAddr, long rowBytes); /* * QTUpdateGWorld() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( GWorldFlags ) QTUpdateGWorld( GWorldPtr * offscreenGWorld, OSType PixelFormat, const Rect * boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags); /* * MakeImageDescriptionForPixMap() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) MakeImageDescriptionForPixMap( PixMapHandle pixmap, ImageDescriptionHandle * idh); /* * MakeImageDescriptionForEffect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( OSErr ) MakeImageDescriptionForEffect( OSType effectType, ImageDescriptionHandle * idh); /* * QTGetPixelSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( short ) QTGetPixelSize(OSType PixelFormat); /* * QTGetPixelFormatDepthForImageDescription() * * Availability: * Non-Carbon CFM: in QuickTimeLib 6.0 and later * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.2 and later * Windows: in qtmlClient.lib 6.0 and later */ EXTERN_API( short ) QTGetPixelFormatDepthForImageDescription(OSType PixelFormat); /* * QTGetPixMapPtrRowBytes() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( long ) QTGetPixMapPtrRowBytes(PixMapPtr pm); /* * QTGetPixMapHandleRowBytes() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( long ) QTGetPixMapHandleRowBytes(PixMapHandle pm); /* * QTSetPixMapPtrRowBytes() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( OSErr ) QTSetPixMapPtrRowBytes( PixMapPtr pm, long rowBytes); /* * QTSetPixMapHandleRowBytes() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( OSErr ) QTSetPixMapHandleRowBytes( PixMapHandle pm, long rowBytes); 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.*/ }; /* * QTGetPixMapPtrGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( Fixed ) QTGetPixMapPtrGammaLevel(PixMapPtr pm); /* * QTSetPixMapPtrGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) QTSetPixMapPtrGammaLevel( PixMapPtr pm, Fixed gammaLevel); /* * QTGetPixMapHandleGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( Fixed ) QTGetPixMapHandleGammaLevel(PixMapHandle pm); /* * QTSetPixMapHandleGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) QTSetPixMapHandleGammaLevel( PixMapHandle pm, Fixed gammaLevel); /* * QTGetPixMapPtrRequestedGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( Fixed ) QTGetPixMapPtrRequestedGammaLevel(PixMapPtr pm); /* * QTSetPixMapPtrRequestedGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) QTSetPixMapPtrRequestedGammaLevel( PixMapPtr pm, Fixed requestedGammaLevel); /* * QTGetPixMapHandleRequestedGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( Fixed ) QTGetPixMapHandleRequestedGammaLevel(PixMapHandle pm); /* * QTSetPixMapHandleRequestedGammaLevel() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) QTSetPixMapHandleRequestedGammaLevel( PixMapHandle pm, Fixed requestedGammaLevel); /* * QuadToQuadMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( OSErr ) QuadToQuadMatrix( const Fixed * source, const Fixed * dest, MatrixRecord * map); 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; /* * GetMatrixType() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( short ) GetMatrixType(const MatrixRecord * m); /* * CopyMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CopyMatrix( const MatrixRecord * m1, MatrixRecord * m2); /* * EqualMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Boolean ) EqualMatrix( const MatrixRecord * m1, const MatrixRecord * m2); /* * SetIdentityMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) SetIdentityMatrix(MatrixRecord * matrix); /* * TranslateMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) TranslateMatrix( MatrixRecord * m, Fixed deltaH, Fixed deltaV); /* * RotateMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) RotateMatrix( MatrixRecord * m, Fixed degrees, Fixed aboutX, Fixed aboutY); /* * ScaleMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) ScaleMatrix( MatrixRecord * m, Fixed scaleX, Fixed scaleY, Fixed aboutX, Fixed aboutY); /* * SkewMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) SkewMatrix( MatrixRecord * m, Fixed skewX, Fixed skewY, Fixed aboutX, Fixed aboutY); /* * TransformFixedPoints() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) TransformFixedPoints( const MatrixRecord * m, FixedPoint * fpt, long count); /* * TransformPoints() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) TransformPoints( const MatrixRecord * mp, Point * pt1, long count); /* * TransformFixedRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Boolean ) TransformFixedRect( const MatrixRecord * m, FixedRect * fr, FixedPoint * fpp); /* * TransformRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Boolean ) TransformRect( const MatrixRecord * m, Rect * r, FixedPoint * fpp); /* * InverseMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Boolean ) InverseMatrix( const MatrixRecord * m, MatrixRecord * im); /* * ConcatMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) ConcatMatrix( const MatrixRecord * a, MatrixRecord * b); /* * RectMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) RectMatrix( MatrixRecord * matrix, const Rect * srcRect, const Rect * dstRect); /* * MapMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) MapMatrix( MatrixRecord * matrix, const Rect * fromRect, const Rect * toRect); /* * CompAdd() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompAdd( wide * src, wide * dst); /* * CompSub() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompSub( wide * src, wide * dst); /* * CompNeg() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompNeg(wide * dst); /* * CompShift() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompShift( wide * src, short shift); /* * CompMul() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompMul( long src1, long src2, wide * dst); /* * CompDiv() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) CompDiv( wide * numerator, long denominator, long * remainder); /* * CompFixMul() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompFixMul( wide * compSrc, Fixed fixSrc, wide * compDst); /* * CompMulDiv() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompMulDiv( wide * co, long mul, long divisor); /* * CompMulDivTrunc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) CompMulDivTrunc( wide * co, long mul, long divisor, long * remainder); /* * CompCompare() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) CompCompare( const wide * a, const wide * minusb); /* * CompSquareRoot() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( unsigned long ) CompSquareRoot(const wide * src); /* * FixMulDiv() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Fixed ) FixMulDiv( Fixed src, Fixed mul, Fixed divisor); /* * UnsignedFixMulDiv() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Fixed ) UnsignedFixMulDiv( Fixed src, Fixed mul, Fixed divisor); /* * FracSinCos() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Fract ) FracSinCos( Fixed degree, Fract * cosOut); /* * FixExp2() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Fixed ) FixExp2(Fixed src); /* * FixLog2() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Fixed ) FixLog2(Fixed src); /* * FixPow() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Fixed ) FixPow( Fixed base, Fixed exp); typedef ComponentInstance GraphicsImportComponent; enum { GraphicsImporterComponentType = FOUR_CHAR_CODE('grip') }; /* Component flags for Graphics Importer components */ enum { graphicsImporterIsBaseImporter = 1L << 0, graphicsImporterCanValidateFile = 1L << 9, graphicsImporterSubTypeIsFileExtension = 1L << 12, graphicsImporterHasMIMEList = 1L << 14, graphicsImporterUsesImageDecompressor = 1L << 23 }; /* Atom types for QuickTime Image files */ enum { quickTimeImageFileImageDescriptionAtom = FOUR_CHAR_CODE('idsc'), quickTimeImageFileImageDataAtom = FOUR_CHAR_CODE('idat'), quickTimeImageFileMetaDataAtom = FOUR_CHAR_CODE('meta'), quickTimeImageFileColorSyncProfileAtom = FOUR_CHAR_CODE('iicc') }; /* Flags for GraphicsImportDoesDrawAllPixels */ enum { graphicsImporterDrawsAllPixels = 0, graphicsImporterDoesntDrawAllPixels = 1, graphicsImporterDontKnowIfDrawAllPixels = 2 }; /* Flags for GraphicsImportSetFlags */ enum { kGraphicsImporterDontDoGammaCorrection = 1L << 0, kGraphicsImporterTrustResolutionFromFile = 1L << 1, kGraphicsImporterEnableSubPixelPositioning = 1L << 2, kGraphicsImporterDontUseColorMatching = 1L << 3 /* set this flag (*before* calling GraphicsImportGetColorSyncProfile) if you do matching yourself */ }; /* Flags for GraphicsImportCreateCGImage */ enum { kGraphicsImportCreateCGImageUsingCurrentSettings = 1L << 0 }; 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 = 0xA96C6E6D, /* 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 = 0x65789286, /* n bytes (Note: this constant was erroneously 0x6578928C)*/ 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 */ /* Note: these were wrong in the QuickTime 6.0 headers -- the high two bytes were 0x677 instead of 0x6770. */ enum { kQTExifUserDataGPSVersionID = 0x67700000, /* 4 BYTEs */ kQTExifUserDataGPSLatitudeRef = 0x67700001, /* 2 ASCIIs*/ kQTExifUserDataGPSLatitude = 0x67700002, /* 3 RATIONALs */ kQTExifUserDataGPSLongitudeRef = 0x67700003, /* 2 ASCIIs */ kQTExifUserDataGPSLongitude = 0x67700004, /* 3 RATIONALs */ kQTExifUserDataGPSAltitudeRef = 0x67700005, /* 1 BYTE */ kQTExifUserDataGPSAltitude = 0x67700006, /* 1 RATIONAL */ kQTExifUserDataGPSTimeStamp = 0x67700007, /* 3 RATIONALs */ kQTExifUserDataGPSSatellites = 0x67700008, /* n ASCIIs */ kQTExifUserDataGPSStatus = 0x67700009, /* 2 ASCIIs */ kQTExifUserDataGPSMeasureMode = 0x6770000A, /* 2 ASCIIs */ kQTExifUserDataGPSDOP = 0x6770000B, /* 1 RATIONAL */ kQTExifUserDataGPSSpeedRef = 0x6770000C, /* 2 ASCIIs */ kQTExifUserDataGPSSpeed = 0x6770000D, /* 1 RATIONAL */ kQTExifUserDataGPSTrackRef = 0x6770000E, /* 2 ASCIIs */ kQTExifUserDataGPSTrack = 0x6770000F, /* 1 RATIONAL */ kQTExifUserDataGPSImgDirectionRef = 0x67700010, /* 2 ASCIIs */ kQTExifUserDataGPSImgDirection = 0x67700011, /* 1 RATIONAL */ kQTExifUserDataGPSMapDatum = 0x67700012, /* n ASCII */ kQTExifUserDataGPSDestLatitudeRef = 0x67700013, /* 2 ASCIIs */ kQTExifUserDataGPSDestLatitude = 0x67700014, /* 3 RATIONALs */ kQTExifUserDataGPSDestLongitudeRef = 0x67700015, /* 2 ASCIIs */ kQTExifUserDataGPSDestLongitude = 0x67700016, /* 3 RATIONALs */ kQTExifUserDataGPSDestBearingRef = 0x67700017, /* 2 ASCIIs */ kQTExifUserDataGPSDestBearing = 0x67700018, /* 1 RATIONAL */ kQTExifUserDataGPSDestDistanceRef = 0x67700019, /* 2 ASCIIs */ kQTExifUserDataGPSDestDistance = 0x6770001A /* 1 RATIONAL */ }; /** These are GraphicsImport procedures **/ /* * GraphicsImportSetDataReference() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetDataReference( GraphicsImportComponent ci, Handle dataRef, OSType dataReType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0001, 0x7000, 0xA82A); /* * GraphicsImportGetDataReference() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDataReference( GraphicsImportComponent ci, Handle * dataRef, OSType * dataReType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A); /* * GraphicsImportSetDataFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetDataFile( GraphicsImportComponent ci, const FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); /* * GraphicsImportGetDataFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDataFile( GraphicsImportComponent ci, FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); /* * GraphicsImportSetDataHandle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetDataHandle( GraphicsImportComponent ci, Handle h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A); /* * GraphicsImportGetDataHandle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDataHandle( GraphicsImportComponent ci, Handle * h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A); /* * GraphicsImportGetImageDescription() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetImageDescription( GraphicsImportComponent ci, ImageDescriptionHandle * desc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A); /* * GraphicsImportGetDataOffsetAndSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDataOffsetAndSize( GraphicsImportComponent ci, unsigned long * offset, unsigned long * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A); /* * GraphicsImportReadData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportReadData( GraphicsImportComponent ci, void * dataPtr, unsigned long dataOffset, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0009, 0x7000, 0xA82A); /* * GraphicsImportSetClip() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetClip( GraphicsImportComponent ci, RgnHandle clipRgn) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A); /* * GraphicsImportGetClip() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetClip( GraphicsImportComponent ci, RgnHandle * clipRgn) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A); /* * GraphicsImportSetSourceRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetSourceRect( GraphicsImportComponent ci, const Rect * sourceRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); /* * GraphicsImportGetSourceRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetSourceRect( GraphicsImportComponent ci, Rect * sourceRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); /* * GraphicsImportGetNaturalBounds() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetNaturalBounds( GraphicsImportComponent ci, Rect * naturalBounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); /* * GraphicsImportDraw() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportDraw(GraphicsImportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000F, 0x7000, 0xA82A); /* * GraphicsImportSetGWorld() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetGWorld( GraphicsImportComponent ci, CGrafPtr port, GDHandle gd) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0010, 0x7000, 0xA82A); /* * GraphicsImportGetGWorld() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetGWorld( GraphicsImportComponent ci, CGrafPtr * port, GDHandle * gd) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0011, 0x7000, 0xA82A); /* * GraphicsImportSetMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetMatrix( GraphicsImportComponent ci, const MatrixRecord * matrix) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); /* * GraphicsImportGetMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetMatrix( GraphicsImportComponent ci, MatrixRecord * matrix) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A); /* * GraphicsImportSetBoundsRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetBoundsRect( GraphicsImportComponent ci, const Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A); /* * GraphicsImportGetBoundsRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetBoundsRect( GraphicsImportComponent ci, Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A); /* * GraphicsImportSaveAsPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSaveAsPicture( GraphicsImportComponent ci, const FSSpec * fss, ScriptCode scriptTag) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0016, 0x7000, 0xA82A); /* * GraphicsImportSetGraphicsMode() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetGraphicsMode( GraphicsImportComponent ci, long graphicsMode, const RGBColor * opColor) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A); /* * GraphicsImportGetGraphicsMode() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetGraphicsMode( GraphicsImportComponent ci, long * graphicsMode, RGBColor * opColor) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0018, 0x7000, 0xA82A); /* * GraphicsImportSetQuality() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetQuality( GraphicsImportComponent ci, CodecQ quality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A); /* * GraphicsImportGetQuality() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetQuality( GraphicsImportComponent ci, CodecQ * quality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A); /* * GraphicsImportSaveAsQuickTimeImageFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSaveAsQuickTimeImageFile( GraphicsImportComponent ci, const FSSpec * fss, ScriptCode scriptTag) FIVEWORDINLINE(0x2F3C, 0x0006, 0x001B, 0x7000, 0xA82A); /* * GraphicsImportSetDataReferenceOffsetAndLimit() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetDataReferenceOffsetAndLimit( GraphicsImportComponent ci, unsigned long offset, unsigned long limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001C, 0x7000, 0xA82A); /* * GraphicsImportGetDataReferenceOffsetAndLimit() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDataReferenceOffsetAndLimit( GraphicsImportComponent ci, unsigned long * offset, unsigned long * limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A); /* * GraphicsImportGetAliasedDataReference() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetAliasedDataReference( GraphicsImportComponent ci, Handle * dataRef, OSType * dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001E, 0x7000, 0xA82A); /* * GraphicsImportValidate() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportValidate( GraphicsImportComponent ci, Boolean * valid) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A); /* * GraphicsImportGetMetaData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetMetaData( GraphicsImportComponent ci, void * userData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A); /* * GraphicsImportGetMIMETypeList() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetMIMETypeList( GraphicsImportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A); /* * GraphicsImportDoesDrawAllPixels() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportDoesDrawAllPixels( GraphicsImportComponent ci, short * drawsAllPixels) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A); /* * GraphicsImportGetAsPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetAsPicture( GraphicsImportComponent ci, PicHandle * picture) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A); /* * GraphicsImportExportImageFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportExportImageFile( GraphicsImportComponent ci, OSType fileType, OSType fileCreator, const FSSpec * fss, ScriptCode scriptTag) FIVEWORDINLINE(0x2F3C, 0x000E, 0x0024, 0x7000, 0xA82A); /* * GraphicsImportGetExportImageTypeList() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetExportImageTypeList( GraphicsImportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A); /* * GraphicsImportDoExportImageFileDialog() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ 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); /* * GraphicsImportGetExportSettingsAsAtomContainer() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetExportSettingsAsAtomContainer( GraphicsImportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); /* * GraphicsImportSetExportSettingsFromAtomContainer() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetExportSettingsFromAtomContainer( GraphicsImportComponent ci, void * qtAtomContainer) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A); /* * GraphicsImportSetProgressProc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetProgressProc( GraphicsImportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0029, 0x7000, 0xA82A); /* * GraphicsImportGetProgressProc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 3.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetProgressProc( GraphicsImportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A); /* * GraphicsImportGetImageCount() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetImageCount( GraphicsImportComponent ci, unsigned long * imageCount) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002B, 0x7000, 0xA82A); /* * GraphicsImportSetImageIndex() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetImageIndex( GraphicsImportComponent ci, unsigned long imageIndex) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A); /* * GraphicsImportGetImageIndex() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetImageIndex( GraphicsImportComponent ci, unsigned long * imageIndex) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A); /* * GraphicsImportGetDataOffsetAndSize64() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDataOffsetAndSize64( GraphicsImportComponent ci, wide * offset, wide * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A); /* * GraphicsImportReadData64() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportReadData64( GraphicsImportComponent ci, void * dataPtr, const wide * dataOffset, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002F, 0x7000, 0xA82A); /* * GraphicsImportSetDataReferenceOffsetAndLimit64() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetDataReferenceOffsetAndLimit64( GraphicsImportComponent ci, const wide * offset, const wide * limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0030, 0x7000, 0xA82A); /* * GraphicsImportGetDataReferenceOffsetAndLimit64() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDataReferenceOffsetAndLimit64( GraphicsImportComponent ci, wide * offset, wide * limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A); /* * GraphicsImportGetDefaultMatrix() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDefaultMatrix( GraphicsImportComponent ci, MatrixRecord * defaultMatrix) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0032, 0x7000, 0xA82A); /* * GraphicsImportGetDefaultClip() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDefaultClip( GraphicsImportComponent ci, RgnHandle * defaultRgn) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0033, 0x7000, 0xA82A); /* * GraphicsImportGetDefaultGraphicsMode() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDefaultGraphicsMode( GraphicsImportComponent ci, long * defaultGraphicsMode, RGBColor * defaultOpColor) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A); /* * GraphicsImportGetDefaultSourceRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDefaultSourceRect( GraphicsImportComponent ci, Rect * defaultSourceRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A); /* * GraphicsImportGetColorSyncProfile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetColorSyncProfile( GraphicsImportComponent ci, Handle * profile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0036, 0x7000, 0xA82A); /* * GraphicsImportSetDestRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetDestRect( GraphicsImportComponent ci, const Rect * destRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A); /* * GraphicsImportGetDestRect() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDestRect( GraphicsImportComponent ci, Rect * destRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A); /* * GraphicsImportSetFlags() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetFlags( GraphicsImportComponent ci, long flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0039, 0x7000, 0xA82A); /* * GraphicsImportGetFlags() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetFlags( GraphicsImportComponent ci, long * flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A); /* 2 private selectors */ /* * GraphicsImportGetBaseDataOffsetAndSize64() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later * CarbonLib: in CarbonLib 1.4 and later * Mac OS X: in version 10.1 and later * Windows: in qtmlClient.lib 5.0.2 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetBaseDataOffsetAndSize64( GraphicsImportComponent ci, wide * offset, wide * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003D, 0x7000, 0xA82A); /* * GraphicsImportSetImageIndexToThumbnail() * * Availability: * Non-Carbon CFM: in QuickTimeLib 6.0 and later * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.2 and later * Windows: in qtmlClient.lib 6.0 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetImageIndexToThumbnail(GraphicsImportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x003E, 0x7000, 0xA82A); #if TARGET_API_MAC_OSX /* * GraphicsImportCreateCGImage() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsImportCreateCGImage( GraphicsImportComponent ci, CGImageRef * imageRefOut, UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003F, 0x7000, 0xA82A); #endif /* TARGET_API_MAC_OSX */ /* * GraphicsImportSaveAsPictureToDataRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later * Windows: in qtmlClient.lib 6.5 and later */ EXTERN_API( ComponentResult ) GraphicsImportSaveAsPictureToDataRef( GraphicsImportComponent ci, Handle dataRef, OSType dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0040, 0x7000, 0xA82A); /* * GraphicsImportSaveAsQuickTimeImageFileToDataRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later * Windows: in qtmlClient.lib 6.5 and later */ EXTERN_API( ComponentResult ) GraphicsImportSaveAsQuickTimeImageFileToDataRef( GraphicsImportComponent ci, Handle dataRef, OSType dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0041, 0x7000, 0xA82A); /* * GraphicsImportExportImageFileToDataRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later * Windows: in qtmlClient.lib 6.5 and later */ EXTERN_API( ComponentResult ) GraphicsImportExportImageFileToDataRef( GraphicsImportComponent ci, OSType fileType, OSType fileCreator, Handle dataRef, OSType dataRefType) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0042, 0x7000, 0xA82A); /* * GraphicsImportDoExportImageFileToDataRefDialog() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later * Windows: in qtmlClient.lib 6.5 and later */ EXTERN_API( ComponentResult ) GraphicsImportDoExportImageFileToDataRefDialog( GraphicsImportComponent ci, Handle inDataRef, OSType inDataRefType, CFStringRef prompt, ModalFilterYDUPP filterProc, OSType * outExportedType, Handle * outDataRef, OSType * outDataRefType) FIVEWORDINLINE(0x2F3C, 0x001C, 0x0043, 0x7000, 0xA82A); #if TARGET_API_MAC_OSX /* NOTE: If the source override ColorSync profile is NULL, then the image's ColorSync profile may be used if available, otherwise a generic ColorSync profile may be used. */ /* * GraphicsImportSetOverrideSourceColorSyncProfileRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsImportSetOverrideSourceColorSyncProfileRef( GraphicsImportComponent ci, CMProfileRef newOverrideSourceProfileRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0044, 0x7000, 0xA82A); /* * GraphicsImportGetOverrideSourceColorSyncProfileRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsImportGetOverrideSourceColorSyncProfileRef( GraphicsImportComponent ci, CMProfileRef * outOverrideSourceProfileRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0045, 0x7000, 0xA82A); /* NOTE: If the destination ColorSync profile is NULL, then a generic ColorSync profile may be used. */ /* * GraphicsImportSetDestinationColorSyncProfileRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsImportSetDestinationColorSyncProfileRef( GraphicsImportComponent ci, CMProfileRef newDestinationProfileRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0046, 0x7000, 0xA82A); /* * GraphicsImportGetDestinationColorSyncProfileRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsImportGetDestinationColorSyncProfileRef( GraphicsImportComponent ci, CMProfileRef * destinationProfileRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0047, 0x7000, 0xA82A); #endif /* TARGET_API_MAC_OSX */ /* * GraphicsImportWillUseColorMatching() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later * Windows: in qtmlClient.lib 6.5 and later */ EXTERN_API( ComponentResult ) GraphicsImportWillUseColorMatching( GraphicsImportComponent ci, Boolean * outWillMatch) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0048, 0x7000, 0xA82A); #if TARGET_API_MAC_OSX /* This convenience API is implemented by the base graphics importer for format-specific importers. */ /* * GraphicsImportGetGenericColorSyncProfile() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsImportGetGenericColorSyncProfile( GraphicsImportComponent ci, OSType pixelFormat, void * reservedSetToNULL, UInt32 flags, Handle * genericColorSyncProfileOut) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0049, 0x7000, 0xA82A); #endif /* TARGET_API_MAC_OSX */ /* Format-specific importers that implement GetColorSyncProfile and that want the base graphics importer to automatically support ColorSync matching should: (a) implement GraphicsImportSetReturnGenericColorSyncProfile; when it is called, set an internal flag (b) change GraphicsImportGetColorSyncProfile so that, if this internal flag is set, when the source image file contains a profile and the kGraphicsImporterDontUseColorMatching flag is NOT set, it returns a generic profile of the appropriate colorspace instead. Other importers should *not* implement GraphicsImportSetReturnGenericColorSyncProfile. */ /* WARNING: Applications should not call this API; it is internal graphics importer plumbing. Set kGraphicsImporterDontUseColorMatching instead. */ /* * GraphicsImportSetReturnGenericColorSyncProfile() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later * Windows: in qtmlClient.lib 6.5 and later */ EXTERN_API( ComponentResult ) GraphicsImportSetReturnGenericColorSyncProfile( GraphicsImportComponent ci, Boolean returnGenericProfilesUnlessDontMatchFlagSet) FIVEWORDINLINE(0x2F3C, 0x0002, 0x004A, 0x7000, 0xA82A); /* WARNING: Applications should not call this API; it is internal graphics importer plumbing. */ /* * GraphicsImportGetReturnGenericColorSyncProfile() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later * Windows: in qtmlClient.lib 6.5 and later */ EXTERN_API( ComponentResult ) GraphicsImportGetReturnGenericColorSyncProfile( GraphicsImportComponent ci, Boolean * returnGenericProfilesUnlessDontMatchFlagSet) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004B, 0x7000, 0xA82A); typedef ComponentInstance GraphicsExportComponent; enum { GraphicsExporterComponentType = FOUR_CHAR_CODE('grex'), kBaseGraphicsExporterSubType = FOUR_CHAR_CODE('base') }; /* Component flags for Graphics Exporter components */ 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 }; enum { kQTJPEGQuantizationTables = FOUR_CHAR_CODE('jpqt'), kQTJPEGHuffmanTables = FOUR_CHAR_CODE('jpht') }; /** These are GraphicsExport procedures **/ /* To use: set the input and output (and other settings as desired) and call GEDoExport. */ /* * GraphicsExportDoExport() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ 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: */ /* * GraphicsExportCanTranscode() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportCanTranscode( GraphicsExportComponent ci, Boolean * canTranscode) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A); /* * GraphicsExportDoTranscode() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportDoTranscode(GraphicsExportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A); /* * GraphicsExportCanUseCompressor() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportCanUseCompressor( GraphicsExportComponent ci, Boolean * canUseCompressor, void * codecSettingsAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A); /* * GraphicsExportDoUseCompressor() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportDoUseCompressor( GraphicsExportComponent ci, void * codecSettingsAtomContainer, ImageDescriptionHandle * outDesc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A); /* * GraphicsExportDoStandaloneExport() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportDoStandaloneExport(GraphicsExportComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A); /* Queries applications can make of a format-specific graphics exporter: */ /* * GraphicsExportGetDefaultFileTypeAndCreator() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetDefaultFileTypeAndCreator( GraphicsExportComponent ci, OSType * fileType, OSType * fileCreator) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0007, 0x7000, 0xA82A); /* * GraphicsExportGetDefaultFileNameExtension() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetDefaultFileNameExtension( GraphicsExportComponent ci, OSType * fileNameExtension) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A); /* * GraphicsExportGetMIMETypeList() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetMIMETypeList( GraphicsExportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A); /* (1 unused selector) */ /* Graphics exporter settings: */ /* * GraphicsExportRequestSettings() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportRequestSettings( GraphicsExportComponent ci, ModalFilterYDUPP filterProc, void * yourDataProc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000B, 0x7000, 0xA82A); /* * GraphicsExportSetSettingsFromAtomContainer() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetSettingsFromAtomContainer( GraphicsExportComponent ci, void * qtAtomContainer) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); /* * GraphicsExportGetSettingsAsAtomContainer() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetSettingsAsAtomContainer( GraphicsExportComponent ci, void * qtAtomContainerPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); /* * GraphicsExportGetSettingsAsText() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetSettingsAsText( GraphicsExportComponent ci, Handle * theText) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); /* Graphics exporters may implement some or none of the following: */ /* * GraphicsExportSetDontRecompress() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetDontRecompress( GraphicsExportComponent ci, Boolean dontRecompress) FIVEWORDINLINE(0x2F3C, 0x0002, 0x000F, 0x7000, 0xA82A); /* * GraphicsExportGetDontRecompress() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetDontRecompress( GraphicsExportComponent ci, Boolean * dontRecompress) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A); /* * GraphicsExportSetInterlaceStyle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInterlaceStyle( GraphicsExportComponent ci, unsigned long interlaceStyle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A); /* * GraphicsExportGetInterlaceStyle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInterlaceStyle( GraphicsExportComponent ci, unsigned long * interlaceStyle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); /* * GraphicsExportSetMetaData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetMetaData( GraphicsExportComponent ci, void * userData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A); /* * GraphicsExportGetMetaData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetMetaData( GraphicsExportComponent ci, void * userData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A); /* * GraphicsExportSetTargetDataSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetTargetDataSize( GraphicsExportComponent ci, unsigned long targetDataSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A); /* * GraphicsExportGetTargetDataSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetTargetDataSize( GraphicsExportComponent ci, unsigned long * targetDataSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0016, 0x7000, 0xA82A); /* * GraphicsExportSetCompressionMethod() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetCompressionMethod( GraphicsExportComponent ci, long compressionMethod) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A); /* * GraphicsExportGetCompressionMethod() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetCompressionMethod( GraphicsExportComponent ci, long * compressionMethod) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A); /* * GraphicsExportSetCompressionQuality() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetCompressionQuality( GraphicsExportComponent ci, CodecQ spatialQuality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A); /* * GraphicsExportGetCompressionQuality() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetCompressionQuality( GraphicsExportComponent ci, CodecQ * spatialQuality) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A); /* * GraphicsExportSetResolution() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetResolution( GraphicsExportComponent ci, Fixed horizontalResolution, Fixed verticalResolution) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001B, 0x7000, 0xA82A); /* * GraphicsExportGetResolution() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetResolution( GraphicsExportComponent ci, Fixed * horizontalResolution, Fixed * verticalResolution) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001C, 0x7000, 0xA82A); /* * GraphicsExportSetDepth() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetDepth( GraphicsExportComponent ci, long depth) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A); /* * GraphicsExportGetDepth() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetDepth( GraphicsExportComponent ci, long * depth) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A); /* (2 unused selectors) */ /* * GraphicsExportSetColorSyncProfile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetColorSyncProfile( GraphicsExportComponent ci, Handle colorSyncProfile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A); /* * GraphicsExportGetColorSyncProfile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetColorSyncProfile( GraphicsExportComponent ci, Handle * colorSyncProfile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A); /* Always implemented by the base graphics exporter: */ /* * GraphicsExportSetProgressProc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetProgressProc( GraphicsExportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A); /* * GraphicsExportGetProgressProc() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetProgressProc( GraphicsExportComponent ci, ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0024, 0x7000, 0xA82A); /* Sources for the input image: */ /* * GraphicsExportSetInputDataReference() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputDataReference( GraphicsExportComponent ci, Handle dataRef, OSType dataRefType, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0025, 0x7000, 0xA82A); /* * GraphicsExportGetInputDataReference() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputDataReference( GraphicsExportComponent ci, Handle * dataRef, OSType * dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0026, 0x7000, 0xA82A); /* * GraphicsExportSetInputFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputFile( GraphicsExportComponent ci, const FSSpec * theFile, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0027, 0x7000, 0xA82A); /* * GraphicsExportGetInputFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputFile( GraphicsExportComponent ci, FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A); /* * GraphicsExportSetInputHandle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputHandle( GraphicsExportComponent ci, Handle h, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A); /* * GraphicsExportGetInputHandle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputHandle( GraphicsExportComponent ci, Handle * h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A); /* * GraphicsExportSetInputPtr() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputPtr( GraphicsExportComponent ci, Ptr p, unsigned long size, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002B, 0x7000, 0xA82A); /* * GraphicsExportGetInputPtr() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputPtr( GraphicsExportComponent ci, Ptr * p, unsigned long * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002C, 0x7000, 0xA82A); /* * GraphicsExportSetInputGraphicsImporter() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputGraphicsImporter( GraphicsExportComponent ci, GraphicsImportComponent grip) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A); /* * GraphicsExportGetInputGraphicsImporter() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputGraphicsImporter( GraphicsExportComponent ci, GraphicsImportComponent * grip) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002E, 0x7000, 0xA82A); /* * GraphicsExportSetInputPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputPicture( GraphicsExportComponent ci, PicHandle picture) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002F, 0x7000, 0xA82A); /* * GraphicsExportGetInputPicture() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputPicture( GraphicsExportComponent ci, PicHandle * picture) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A); /* * GraphicsExportSetInputGWorld() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputGWorld( GraphicsExportComponent ci, GWorldPtr gworld) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0031, 0x7000, 0xA82A); /* * GraphicsExportGetInputGWorld() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputGWorld( GraphicsExportComponent ci, GWorldPtr * gworld) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0032, 0x7000, 0xA82A); /* * GraphicsExportSetInputPixmap() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputPixmap( GraphicsExportComponent ci, PixMapHandle pixmap) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0033, 0x7000, 0xA82A); /* * GraphicsExportGetInputPixmap() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ 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: */ /* * GraphicsExportSetInputOffsetAndLimit() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputOffsetAndLimit( GraphicsExportComponent ci, unsigned long offset, unsigned long limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0035, 0x7000, 0xA82A); /* * GraphicsExportGetInputOffsetAndLimit() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ 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: */ /* * GraphicsExportMayExporterReadInputData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportMayExporterReadInputData( GraphicsExportComponent ci, Boolean * mayReadInputData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A); /* * GraphicsExportGetInputDataSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputDataSize( GraphicsExportComponent ci, unsigned long * size) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A); /* * GraphicsExportReadInputData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ 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: */ /* * GraphicsExportGetInputImageDescription() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputImageDescription( GraphicsExportComponent ci, ImageDescriptionHandle * desc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A); /* * GraphicsExportGetInputImageDimensions() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputImageDimensions( GraphicsExportComponent ci, Rect * dimensions) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003B, 0x7000, 0xA82A); /* * GraphicsExportGetInputImageDepth() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputImageDepth( GraphicsExportComponent ci, long * inputDepth) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A); /* * GraphicsExportDrawInputImage() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ 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: */ /* * GraphicsExportSetOutputDataReference() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetOutputDataReference( GraphicsExportComponent ci, Handle dataRef, OSType dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003E, 0x7000, 0xA82A); /* * GraphicsExportGetOutputDataReference() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetOutputDataReference( GraphicsExportComponent ci, Handle * dataRef, OSType * dataRefType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003F, 0x7000, 0xA82A); /* * GraphicsExportSetOutputFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetOutputFile( GraphicsExportComponent ci, const FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0040, 0x7000, 0xA82A); /* * GraphicsExportGetOutputFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetOutputFile( GraphicsExportComponent ci, FSSpec * theFile) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0041, 0x7000, 0xA82A); /* * GraphicsExportSetOutputHandle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetOutputHandle( GraphicsExportComponent ci, Handle h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0042, 0x7000, 0xA82A); /* * GraphicsExportGetOutputHandle() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetOutputHandle( GraphicsExportComponent ci, Handle * h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0043, 0x7000, 0xA82A); /* * GraphicsExportSetOutputOffsetAndMaxSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetOutputOffsetAndMaxSize( GraphicsExportComponent ci, unsigned long offset, unsigned long maxSize, Boolean truncateFile) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0044, 0x7000, 0xA82A); /* * GraphicsExportGetOutputOffsetAndMaxSize() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetOutputOffsetAndMaxSize( GraphicsExportComponent ci, unsigned long * offset, unsigned long * maxSize, Boolean * truncateFile) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0045, 0x7000, 0xA82A); /* * GraphicsExportSetOutputFileTypeAndCreator() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetOutputFileTypeAndCreator( GraphicsExportComponent ci, OSType fileType, OSType fileCreator) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0046, 0x7000, 0xA82A); /* * GraphicsExportGetOutputFileTypeAndCreator() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetOutputFileTypeAndCreator( GraphicsExportComponent ci, OSType * fileType, OSType * fileCreator) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0047, 0x7000, 0xA82A); /* Used by format-specific graphics exporters: */ /* * GraphicsExportWriteOutputData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportWriteOutputData( GraphicsExportComponent ci, const void * dataPtr, unsigned long dataSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0048, 0x7000, 0xA82A); /* * GraphicsExportSetOutputMark() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetOutputMark( GraphicsExportComponent ci, unsigned long mark) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0049, 0x7000, 0xA82A); /* * GraphicsExportGetOutputMark() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetOutputMark( GraphicsExportComponent ci, unsigned long * mark) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004A, 0x7000, 0xA82A); /* * GraphicsExportReadOutputData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 4.0 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.0 and later */ 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. */ /* * GraphicsExportSetThumbnailEnabled() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later * CarbonLib: in CarbonLib 1.4 and later * Mac OS X: in version 10.1 and later * Windows: in qtmlClient.lib 5.0.2 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetThumbnailEnabled( GraphicsExportComponent ci, Boolean enableThumbnail, long maxThumbnailWidth, long maxThumbnailHeight) FIVEWORDINLINE(0x2F3C, 0x000A, 0x004C, 0x7000, 0xA82A); /* * GraphicsExportGetThumbnailEnabled() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later * CarbonLib: in CarbonLib 1.4 and later * Mac OS X: in version 10.1 and later * Windows: in qtmlClient.lib 5.0.2 and later */ 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. */ /* * GraphicsExportSetExifEnabled() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later * CarbonLib: in CarbonLib 1.4 and later * Mac OS X: in version 10.1 and later * Windows: in qtmlClient.lib 5.0.2 and later */ EXTERN_API( ComponentResult ) GraphicsExportSetExifEnabled( GraphicsExportComponent ci, Boolean enableExif) FIVEWORDINLINE(0x2F3C, 0x0002, 0x004E, 0x7000, 0xA82A); /* * GraphicsExportGetExifEnabled() * * Availability: * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later * CarbonLib: in CarbonLib 1.4 and later * Mac OS X: in version 10.1 and later * Windows: in qtmlClient.lib 5.0.2 and later */ EXTERN_API( ComponentResult ) GraphicsExportGetExifEnabled( GraphicsExportComponent ci, Boolean * exifEnabled) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004F, 0x7000, 0xA82A); #if TARGET_API_MAC_OSX /* * GraphicsExportSetInputCGImage() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputCGImage( GraphicsExportComponent ci, CGImageRef imageRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0050, 0x7000, 0xA82A); /* * GraphicsExportGetInputCGImage() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputCGImage( GraphicsExportComponent ci, CGImageRef * imageRefOut) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0051, 0x7000, 0xA82A); /* * GraphicsExportSetInputCGBitmapContext() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsExportSetInputCGBitmapContext( GraphicsExportComponent ci, CGContextRef bitmapContextRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0052, 0x7000, 0xA82A); /* * GraphicsExportGetInputCGBitmapContext() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsExportGetInputCGBitmapContext( GraphicsExportComponent ci, CGContextRef * bitmapContextRefOut) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0053, 0x7000, 0xA82A); #endif /* TARGET_API_MAC_OSX */ /* * GraphicsExportSetFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsExportSetFlags( GraphicsExportComponent ci, UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0054, 0x7000, 0xA82A); /* * GraphicsExportGetFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) GraphicsExportGetFlags( GraphicsExportComponent ci, UInt32 * flagsOut) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0055, 0x7000, 0xA82A); typedef ComponentInstance ImageTranscoderComponent; enum { ImageTranscodererComponentType = FOUR_CHAR_CODE('imtc') }; /** These are ImageTranscoder procedures **/ /* * ImageTranscoderBeginSequence() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) ImageTranscoderBeginSequence( ImageTranscoderComponent itc, ImageDescriptionHandle srcDesc, ImageDescriptionHandle * dstDesc, void * data, long dataSize) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0001, 0x7000, 0xA82A); /* * ImageTranscoderConvert() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) ImageTranscoderConvert( ImageTranscoderComponent itc, void * srcData, long srcDataSize, void ** dstData, long * dstDataSize) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A); /* * ImageTranscoderDisposeData() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) ImageTranscoderDisposeData( ImageTranscoderComponent itc, void * dstData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); /* * ImageTranscoderEndSequence() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( ComponentResult ) ImageTranscoderEndSequence(ImageTranscoderComponent itc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A); #if (MAC_OS_X_VERSION_MAX_ALLOWED == MAC_OS_X_VERSION_10_2) || !defined(kComponentPropertyListenerCollectionContextVersion) /* MixedMode ProcInfo constants for component property calls */ enum { uppCallComponentGetComponentPropertyInfoProcInfo = 0x0003FFF0, uppCallComponentGetComponentPropertyProcInfo = 0x0003FFF0, uppCallComponentSetComponentPropertyProcInfo = 0x0000FFF0, uppCallComponentAddComponentPropertyListenerProcInfo = 0x0000FFF0, uppCallComponentRemoveComponentPropertyListenerProcInfo = 0x0000FFF0 }; /* == CallComponentGetComponentPropertyInfo flags == */ enum { kComponentPropertyFlagCanSetLater = (1L << 0), kComponentPropertyFlagCanSetNow = (1L << 1), kComponentPropertyFlagCanGetLater = (1L << 2), kComponentPropertyFlagCanGetNow = (1L << 3), kComponentPropertyFlagHasExtendedInfo = (1L << 4), kComponentPropertyFlagValueMustBeReleased = (1L << 5), kComponentPropertyFlagValueIsCFTypeRef = (1L << 6), kComponentPropertyFlagGetBufferMustBeInitialized = (1L << 7), kComponentPropertyFlagWillNotifyListeners = (1L << 8) }; typedef OSType ComponentPropertyClass; typedef OSType ComponentPropertyID; typedef OSType ComponentValueType; typedef void * ComponentValuePtr; typedef const void * ConstComponentValuePtr; /* == standard property class constants == */ enum { kComponentPropertyClassPropertyInfo = FOUR_CHAR_CODE('pnfo'), /* property info class */ /* property info property IDs */ kComponentPropertyInfoList = FOUR_CHAR_CODE('list'), /* array of ComponentPropertyInfo (CFData), one for each property */ kComponentPropertyCacheSeed = FOUR_CHAR_CODE('seed'), /* property cache seed value */ kComponentPropertyCacheFlags = FOUR_CHAR_CODE('flgs'), /* see kComponentPropertyCache flags */ kComponentPropertyExtendedInfo = FOUR_CHAR_CODE('meta') /* CFDictionary with extended property information*/ }; /* values for kComponentPropertyClassPropertyInfo/kComponentPropertyCacheFlags standard component property */ enum { kComponentPropertyCacheFlagNotPersistent = (1L << 0), /* property metadata should not be saved in persistent cache*/ kComponentPropertyCacheFlagIsDynamic = (1L << 1) /* property metadata should not cached at all*/ }; struct ComponentPropertyInfo { ComponentPropertyClass propClass; ComponentPropertyID propID; ComponentValueType propType; ByteCount propSize; UInt32 propFlags; }; typedef struct ComponentPropertyInfo ComponentPropertyInfo; #endif /* #MAC_OS_X_VERSION_10_3 <= MAC_OS_X_VERSION_MAX_ALLOWED */ /* == "QT" prefixed Component Property calls == */ typedef CALLBACK_API( void , QTComponentPropertyListenerProcPtr )(ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, void *inUserData); typedef STACK_UPP_TYPE(QTComponentPropertyListenerProcPtr) QTComponentPropertyListenerUPP; /* * QTGetComponentPropertyInfo() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) QTGetComponentPropertyInfo( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags) /* can be NULL */ FIVEWORDINLINE(0x2F3C, 0x0014, 0xFFF5, 0x7000, 0xA82A); /* * QTGetComponentProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) QTGetComponentProperty( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed) /* can be NULL */ FIVEWORDINLINE(0x2F3C, 0x0014, 0xFFF4, 0x7000, 0xA82A); /* * QTSetComponentProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) QTSetComponentProperty( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress) FIVEWORDINLINE(0x2F3C, 0x0010, 0xFFF3, 0x7000, 0xA82A); /* * QTAddComponentPropertyListener() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) QTAddComponentPropertyListener( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inDispatchProc, void * inUserData) /* can be NULL */ FIVEWORDINLINE(0x2F3C, 0x0010, 0xFFF2, 0x7000, 0xA82A); /* * QTRemoveComponentPropertyListener() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API( ComponentResult ) QTRemoveComponentPropertyListener( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inDispatchProc, void * inUserData) /* can be NULL */ FIVEWORDINLINE(0x2F3C, 0x0010, 0xFFF1, 0x7000, 0xA82A); /* == "QT" prefixed Component Property Listener helpers == */ typedef CFTypeRef QTComponentPropertyListenersRef; typedef struct QTComponentPropertyListenerCollectionContext QTComponentPropertyListenerCollectionContext; typedef CALLBACK_API( Boolean , QTComponentPropertyListenerFilterProcPtr )(QTComponentPropertyListenersRef inCollection, const QTComponentPropertyListenerCollectionContext *inCollectionContext, ComponentInstance inNotifier, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inListenerCallbackProc, const void *inListenerProcRefCon, const void *inFilterProcRefCon); typedef STACK_UPP_TYPE(QTComponentPropertyListenerFilterProcPtr) QTComponentPropertyListenerFilterUPP; #define kQTComponentPropertyListenerCollectionContextVersion 1 struct QTComponentPropertyListenerCollectionContext { UInt32 version; /* struct version */ QTComponentPropertyListenerFilterUPP filterProcUPP; void * filterProcData; }; #if CALL_NOT_IN_CARBON /* * NewQTComponentPropertyListenerUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( QTComponentPropertyListenerUPP ) NewQTComponentPropertyListenerUPP(QTComponentPropertyListenerProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTComponentPropertyListenerProcInfo = 0x00003FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTComponentPropertyListenerUPP) NewQTComponentPropertyListenerUPP(QTComponentPropertyListenerProcPtr userRoutine) { return (QTComponentPropertyListenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTComponentPropertyListenerProcInfo, GetCurrentArchitecture()); } #else #define NewQTComponentPropertyListenerUPP(userRoutine) (QTComponentPropertyListenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTComponentPropertyListenerProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewQTComponentPropertyListenerFilterUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( QTComponentPropertyListenerFilterUPP ) NewQTComponentPropertyListenerFilterUPP(QTComponentPropertyListenerFilterProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTComponentPropertyListenerFilterProcInfo = 0x003FFFD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTComponentPropertyListenerFilterUPP) NewQTComponentPropertyListenerFilterUPP(QTComponentPropertyListenerFilterProcPtr userRoutine) { return (QTComponentPropertyListenerFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTComponentPropertyListenerFilterProcInfo, GetCurrentArchitecture()); } #else #define NewQTComponentPropertyListenerFilterUPP(userRoutine) (QTComponentPropertyListenerFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTComponentPropertyListenerFilterProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeQTComponentPropertyListenerUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( void ) DisposeQTComponentPropertyListenerUPP(QTComponentPropertyListenerUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTComponentPropertyListenerUPP(QTComponentPropertyListenerUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTComponentPropertyListenerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeQTComponentPropertyListenerFilterUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( void ) DisposeQTComponentPropertyListenerFilterUPP(QTComponentPropertyListenerFilterUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTComponentPropertyListenerFilterUPP(QTComponentPropertyListenerFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTComponentPropertyListenerFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeQTComponentPropertyListenerUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( void ) InvokeQTComponentPropertyListenerUPP( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, void * inUserData, QTComponentPropertyListenerUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeQTComponentPropertyListenerUPP(ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, void * inUserData, QTComponentPropertyListenerUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppQTComponentPropertyListenerProcInfo, inComponent, inPropClass, inPropID, inUserData); } #else #define InvokeQTComponentPropertyListenerUPP(inComponent, inPropClass, inPropID, inUserData, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQTComponentPropertyListenerProcInfo, (inComponent), (inPropClass), (inPropID), (inUserData)) #endif #endif /* * InvokeQTComponentPropertyListenerFilterUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( Boolean ) InvokeQTComponentPropertyListenerFilterUPP( QTComponentPropertyListenersRef inCollection, const QTComponentPropertyListenerCollectionContext * inCollectionContext, ComponentInstance inNotifier, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inListenerCallbackProc, const void * inListenerProcRefCon, const void * inFilterProcRefCon, QTComponentPropertyListenerFilterUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(Boolean) InvokeQTComponentPropertyListenerFilterUPP(QTComponentPropertyListenersRef inCollection, const QTComponentPropertyListenerCollectionContext * inCollectionContext, ComponentInstance inNotifier, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inListenerCallbackProc, const void * inListenerProcRefCon, const void * inFilterProcRefCon, QTComponentPropertyListenerFilterUPP userUPP) { return (Boolean)CALL_EIGHT_PARAMETER_UPP(userUPP, uppQTComponentPropertyListenerFilterProcInfo, inCollection, inCollectionContext, inNotifier, inPropClass, inPropID, inListenerCallbackProc, inListenerProcRefCon, inFilterProcRefCon); } #else #define InvokeQTComponentPropertyListenerFilterUPP(inCollection, inCollectionContext, inNotifier, inPropClass, inPropID, inListenerCallbackProc, inListenerProcRefCon, inFilterProcRefCon, userUPP) (Boolean)CALL_EIGHT_PARAMETER_UPP((userUPP), uppQTComponentPropertyListenerFilterProcInfo, (inCollection), (inCollectionContext), (inNotifier), (inPropClass), (inPropID), (inListenerCallbackProc), (inListenerProcRefCon), (inFilterProcRefCon)) #endif #endif #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewQTComponentPropertyListenerProc(userRoutine) NewQTComponentPropertyListenerUPP(userRoutine) #define NewQTComponentPropertyListenerFilterProc(userRoutine) NewQTComponentPropertyListenerFilterUPP(userRoutine) #define CallQTComponentPropertyListenerProc(userRoutine, inComponent, inPropClass, inPropID, inUserData) InvokeQTComponentPropertyListenerUPP(inComponent, inPropClass, inPropID, inUserData, userRoutine) #define CallQTComponentPropertyListenerFilterProc(userRoutine, inCollection, inCollectionContext, inNotifier, inPropClass, inPropID, inListenerCallbackProc, inListenerProcRefCon, inFilterProcRefCon) InvokeQTComponentPropertyListenerFilterUPP(inCollection, inCollectionContext, inNotifier, inPropClass, inPropID, inListenerCallbackProc, inListenerProcRefCon, inFilterProcRefCon, userRoutine) #endif /* CALL_NOT_IN_CARBON */ /* * QTComponentPropertyListenerCollectionCreate() * * Summary: * Create a collection to use with the functions * ComponentPropertyListenerCollectionAddListener, * ComponentPropertyListenerCollectionRemoveListener, * ComponentPropertyListenerCollectionNotifyListeners, * ComponentPropertyListenerCollectionIsEmpty, and * ComponentPropertyListenerCollectionHasListenersForProperty. * * Parameters: * * outCollection: * Returns the new, empty, listener collection. * * inAllocator: * Allocator used to create the collection and it's contents. * * inContext: * The listener collection context. May be NULL. A copy of the * contents of the structure is made, so a pointer to a structure * on the stack can be passed. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( OSStatus ) QTComponentPropertyListenerCollectionCreate( CFAllocatorRef inAllocator, /* can be NULL */ const QTComponentPropertyListenerCollectionContext * inContext, /* can be NULL */ QTComponentPropertyListenersRef * outCollection); /* * QTComponentPropertyListenerCollectionAddListener() * * Summary: * Add a listener callback for the specified property class and ID * to a property listener collection. * * Parameters: * * inCollection: * The property listener collection. * * inPropClass: * The property class. * * inPropID: * The property ID. * * inListenerProc: * The property listener callback function. * * inListenerProcRefCon: * The data parameter to pass to the listener callback function. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( OSStatus ) QTComponentPropertyListenerCollectionAddListener( QTComponentPropertyListenersRef inCollection, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inListenerProc, const void * inListenerProcRefCon); /* * QTComponentPropertyListenerCollectionRemoveListener() * * Summary: * Remove a listener callback for the specified property class and * ID from a property listener collection. * * Parameters: * * inCollection: * The property listener collection. * * inPropClass: * The property class. * * inPropID: * The property ID. * * inListenerProc: * The property listener callback function. * * inListenerProcRefCon: * The data parameter to pass to the listener callback function. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( OSStatus ) QTComponentPropertyListenerCollectionRemoveListener( QTComponentPropertyListenersRef inCollection, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inListenerProc, const void * inListenerProcRefCon); /* * QTComponentPropertyListenerCollectionNotifyListeners() * * Summary: * Call all listener callbacks in the collection registered for the * specified property class and ID. * * Discussion: * If the "filterProcUPP" in the collection's context is non-NULL, * the filter function will be called before each registered * listener that matches the specified property class and ID. If the * filter function return false, the listener proc will not be * called. This is intended to allow a component to change the * calling semantics (call another thread, etc), to use a different * listener callback signature, etc. * * Parameters: * * inCollection: * The property listener collection. * * inNotifier: * The calling ComponentInstance. * * inPropClass: * The property class. * * inPropID: * The property ID. * * inFilterProcRefCon: * The data parameter to pass to the filter function. * * inFlags: * Flags. Must be set to 0. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( OSStatus ) QTComponentPropertyListenerCollectionNotifyListeners( QTComponentPropertyListenersRef inCollection, ComponentInstance inNotifier, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, const void * inFilterProcRefCon, /* can be NULL */ UInt32 inFlags); /* * QTComponentPropertyListenerCollectionIsEmpty() * * Summary: * Return true if the listener collection is empty. * * Parameters: * * inCollection: * The property listener collection. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( Boolean ) QTComponentPropertyListenerCollectionIsEmpty(QTComponentPropertyListenersRef inCollection); /* * QTComponentPropertyListenerCollectionHasListenersForProperty() * * Summary: * Returns true if there are any listeners registered for the * specified property class and ID. * * Parameters: * * inCollection: * The property listener collection. * * inPropClass: * The property class. * * inPropID: * The property ID. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.3 (or QuickTime 6.4) and later */ EXTERN_API_C( Boolean ) QTComponentPropertyListenerCollectionHasListenersForProperty( QTComponentPropertyListenersRef inCollection, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID); /* DRM properties*/ enum { kQTPropertyClass_DRM = FOUR_CHAR_CODE('drm ') }; enum { kQTDRMPropertyID_InteractWithUser = FOUR_CHAR_CODE('shui'), /* Boolean**/ kQTDRMPropertyID_IsProtected = FOUR_CHAR_CODE('prot'), /* Boolean**/ kQTDRMPropertyID_IsAuthorized = FOUR_CHAR_CODE('auth') /* Boolean**/ }; /* 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, kGraphicsImportCreateCGImageSelect = 0x003F, kGraphicsImportSaveAsPictureToDataRefSelect = 0x0040, kGraphicsImportSaveAsQuickTimeImageFileToDataRefSelect = 0x0041, kGraphicsImportExportImageFileToDataRefSelect = 0x0042, kGraphicsImportDoExportImageFileToDataRefDialogSelect = 0x0043, kGraphicsImportSetOverrideSourceColorSyncProfileRefSelect = 0x0044, kGraphicsImportGetOverrideSourceColorSyncProfileRefSelect = 0x0045, kGraphicsImportSetDestinationColorSyncProfileRefSelect = 0x0046, kGraphicsImportGetDestinationColorSyncProfileRefSelect = 0x0047, kGraphicsImportWillUseColorMatchingSelect = 0x0048, kGraphicsImportGetGenericColorSyncProfileSelect = 0x0049, kGraphicsImportSetReturnGenericColorSyncProfileSelect = 0x004A, kGraphicsImportGetReturnGenericColorSyncProfileSelect = 0x004B, 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, kGraphicsExportSetInputCGImageSelect = 0x0050, kGraphicsExportGetInputCGImageSelect = 0x0051, kGraphicsExportSetInputCGBitmapContextSelect = 0x0052, kGraphicsExportGetInputCGBitmapContextSelect = 0x0053, kGraphicsExportSetFlagsSelect = 0x0054, kGraphicsExportGetFlagsSelect = 0x0055, kImageTranscoderBeginSequenceSelect = 0x0001, kImageTranscoderConvertSelect = 0x0002, kImageTranscoderDisposeDataSelect = 0x0003, kImageTranscoderEndSequenceSelect = 0x0004, kQTGetComponentPropertyInfoSelect = -11, kQTGetComponentPropertySelect = -12, kQTSetComponentPropertySelect = -13, kQTAddComponentPropertyListenerSelect = -14, kQTRemoveComponentPropertyListenerSelect = -15 }; /* Aperture modes */ /* * Summary: * Aperture modes * * Discussion: * You can set the aperture mode property on a movie to indicate * whether aspect ratio and clean aperture correction should be * performed (kQTPropertyClass_Visual / * kQTVisualPropertyID_ApertureMode). When a movie is in clean, * production or encoded pixels aperture mode, each track's * dimensions are overriden by special dimensions for that mode. The * original track dimensions are preserved and can be restored by * setting the movie into classic aperture mode. Aperture modes are * not saved in movies. * You can set the aperture mode property on a decompression session * options object to indicate whether pixel buffers should be tagged * to enable aspect ratio and clean aperture correction * (kQTPropertyClass_ICMDecompressionSessionOptions / * kICMDecompressionSessionOptionsPropertyID_ApertureMode). */ enum { /* * An aperture mode which gives compatibility with behavior in * QuickTime 7.0.x and earlier. * A movie in classic aperture mode uses track dimensions as set in * NewMovieTrack and SetTrackDimensions. * A decompression session in classic aperture mode does not set the * clean aperture or pixel aspect ratio attachments on emitted pixel * buffers. * Movies default to classic aperture mode. If you call * SetTrackDimensions on a track, the movie is automatically switched * into classic aperture mode. */ kQTApertureMode_Classic = FOUR_CHAR_CODE('clas'), /* * An aperture mode for general display. * Where possible, video will be displayed at the correct pixel * aspect ratio, trimmed to the clean aperture. A movie in clean * aperture mode sets each track's dimensions to match its * kQTVisualPropertyID_CleanApertureDimensions. * A decompression session in clean aperture mode sets the clean * aperture and pixel aspect ratio attachments on emitted pixel * buffers based on the image description. */ kQTApertureMode_CleanAperture = FOUR_CHAR_CODE('clea'), /* * An aperture mode for modal use in authoring applications. * Where possible, video will be displayed at the correct pixel * aspect ratio, but without trimming to the clean aperture so that * the edge processing region can be viewed. A movie in production * aperture mode sets each track's dimensions to match its * kQTVisualPropertyID_ProductionApertureDimensions. * A decompression session in production aperture mode sets the pixel * aspect ratio attachments on emitted pixel buffers based on the * image description. */ kQTApertureMode_ProductionAperture = FOUR_CHAR_CODE('prod'), /* * An aperture mode for technical use. * Displays all encoded pixels with no aspect ratio or clean aperture * compensation. A movie in encoded pixels aperture mode sets each * track's dimensions to match its * kQTVisualPropertyID_EncodedPixelsDimensions. * A decompression session in encoded pixels aperture mode does not * set the clean aperture or pixel aspect ratio attachments on * emitted pixel buffers. */ kQTApertureMode_EncodedPixels = FOUR_CHAR_CODE('enco') }; /* Property interface for Image Descriptions */ /* * Summary: * Properties of image descriptions. */ enum { /* * Class identifier for image description properties. */ kQTPropertyClass_ImageDescription = FOUR_CHAR_CODE('idsc'), /* * The width of the encoded image. Usually, but not always, this is * the ImageDescription's width field. */ kICMImageDescriptionPropertyID_EncodedWidth = FOUR_CHAR_CODE('encw'), /* SInt32, Read/Write */ /* * The height of the encoded image. Usually, but not always, this is * the ImageDescription's height field. */ kICMImageDescriptionPropertyID_EncodedHeight = FOUR_CHAR_CODE('ench'), /* SInt32, Read/Write */ /* * Describes the clean aperture of the buffer. If not specified * explicitly in the image description, the default clean aperture * (full encoded width and height) will be returned. */ kICMImageDescriptionPropertyID_CleanAperture = FOUR_CHAR_CODE('clap'), /* Native-endian CleanApertureImageDescriptionExtension, Read/Write */ /* * Describes the pixel aspect ratio. If not specified explicitly in * the image description, a square (1:1) pixel aspect ratio will be * returned. */ kICMImageDescriptionPropertyID_PixelAspectRatio = FOUR_CHAR_CODE('pasp'), /* Native-endian PixelAspectRatioImageDescriptionExtension, Read/Write */ /* * Dimensions at which the image could be displayed on a square-pixel * display, generally calculated using the clean aperture and pixel * aspect ratio. * Note that this value is returned as a FixedPoint; the width and * height can also be read separately as rounded SInt32s via * kICMImageDescriptionPropertyID_CleanApertureDisplayWidth and * kICMImageDescriptionPropertyID_CleanApertureDisplayHeight. */ kICMImageDescriptionPropertyID_CleanApertureDisplayDimensions = FOUR_CHAR_CODE('cadi'), /* FixedPoint, Read */ /* * Dimensions at which the image could be displayed on a square-pixel * display, disregarding any clean aperture but honoring the pixel * aspect ratio. This may be useful for authoring applications that * want to expose the edge processing region. For general viewing, * use kICMImageDescriptionPropertyID_CleanApertureDimensions * instead. * Note that this value is returned as a FixedPoint; the width and * height can also be read separately as rounded SInt32s via * kICMImageDescriptionPropertyID_ProductionApertureDisplayWidth and * kICMImageDescriptionPropertyID_ProductionApertureDisplayHeight. */ kICMImageDescriptionPropertyID_ProductionApertureDisplayDimensions = FOUR_CHAR_CODE('prdi'), /* FixedPoint, Read */ /* * Dimensions of the encoded image. * Note that this value is returned as a FixedPoint for convenience; * the width and height can also be read separately as SInt32s via * kICMImageDescriptionPropertyID_EncodedWidth and * kICMImageDescriptionPropertyID_EncodedHeight. */ kICMImageDescriptionPropertyID_EncodedPixelsDimensions = FOUR_CHAR_CODE('endi'), /* FixedPoint, Read */ /* * A width at which the image could be displayed on a square-pixel * display, possibly calculated using the clean aperture and pixel * aspect ratio. */ kICMImageDescriptionPropertyID_CleanApertureDisplayWidth = FOUR_CHAR_CODE('disw'), /* SInt32, Read */ /* * A height at which the image could be displayed on a square-pixel * display, possibly calculated using the clean aperture and pixel * aspect ratio. */ kICMImageDescriptionPropertyID_CleanApertureDisplayHeight = FOUR_CHAR_CODE('dish'), /* SInt32, Read */ /* * A width at which the image could be displayed on a square-pixel * display, disregarding any clean aperture but honoring the pixel * aspect ratio. This may be useful for authoring applications that * want to expose the edge processing region. For general viewing, * use kICMImageDescriptionPropertyID_CleanApertureDisplayWidth * instead. */ kICMImageDescriptionPropertyID_ProductionApertureDisplayWidth = FOUR_CHAR_CODE('pdsw'), /* SInt32, Read */ /* * A height at which the image could be displayed on a square-pixel * display, disregarding any clean aperture but honoring the pixel * aspect ratio. This may be useful for authoring applications that * want to expose the edge processing region. For general viewing, * use kICMImageDescriptionPropertyID_CleanApertureDisplayHeight * instead. */ kICMImageDescriptionPropertyID_ProductionApertureDisplayHeight = FOUR_CHAR_CODE('pdsh'), /* SInt32, Read */ /* * Synonym for * kICMImageDescriptionPropertyID_CleanApertureDisplayWidth. */ kICMImageDescriptionPropertyID_DisplayWidth = FOUR_CHAR_CODE('disw'), /* SInt32, Read */ /* * Synonym for * kICMImageDescriptionPropertyID_CleanApertureDisplayHeight. */ kICMImageDescriptionPropertyID_DisplayHeight = FOUR_CHAR_CODE('dish'), /* SInt32, Read */ /* * Synonym for * kICMImageDescriptionPropertyID_ProductionApertureDisplayWidth. */ kICMImageDescriptionPropertyID_ProductionDisplayWidth = FOUR_CHAR_CODE('pdsw'), /* SInt32, Read */ /* * Synonym for * kICMImageDescriptionPropertyID_ProductionApertureDisplayHeight. */ kICMImageDescriptionPropertyID_ProductionDisplayHeight = FOUR_CHAR_CODE('pdsh'), /* SInt32, Read */ /* * Color information, if available in the * NCLCColorInfoImageDescriptionExtension format. */ kICMImageDescriptionPropertyID_NCLCColorInfo = FOUR_CHAR_CODE('nclc'), /* Native-endian NCLCColorInfoImageDescriptionExtension, Read/Write */ /* * A CGColorSpaceRef for the colorspace described by the image * description, constructed from video color info or ICC Profile. * IMPORTANT NOTE: The YCbCr matrix from the video color info is not * represented in the CGColorSpaceRef. The caller of GetProperty is * responsible for releasing this, eg, by calling * CGColorSpaceRelease. Only supported on Mac OS X. */ kICMImageDescriptionPropertyID_CGColorSpace = FOUR_CHAR_CODE('cgcs'), /* CGColorSpaceRef, Read -- caller of GetProperty must call CGColorSpaceRelease */ /* * A CFDataRef containing the serialized ICC profile described by the * image description. The caller of GetProperty is responsible for * releasing this, eg, by calling CFRelease. */ kICMImageDescriptionPropertyID_ICCProfile = FOUR_CHAR_CODE('iccp'), /* CFDataRef, Read/Write -- caller of GetProperty must call CFRelease */ /* * The gamma level described by the image description. */ kICMImageDescriptionPropertyID_GammaLevel = FOUR_CHAR_CODE('gama'), /* Fixed, Read/Write */ /* * Information about the number and order of fields, if available. */ kICMImageDescriptionPropertyID_FieldInfo = FOUR_CHAR_CODE('fiel'), /* FieldInfoImageDescriptionExtension2, Read/Write */ /* * The offset in bytes from the start of one row to the next. Only * valid if the codec type is a chunky pixel format. */ kICMImageDescriptionPropertyID_RowBytes = FOUR_CHAR_CODE('rowb'), /* SInt32, Read/Write */ /* * A track width suitable for passing to NewMovieTrack when creating * a new track to hold this image data. */ kICMImageDescriptionPropertyID_ClassicTrackWidth = FOUR_CHAR_CODE('claw'), /* Fixed, Read */ /* * A track height suitable for passing to NewMovieTrack when creating * a new track to hold this image data. */ kICMImageDescriptionPropertyID_ClassicTrackHeight = FOUR_CHAR_CODE('clah'), /* Fixed, Read */ /* * Defines a duration for quantizing time. This is applicable for * cases where a single media sample generates visual output that * varies continuously through its duration. By interpreting this * property, such a sample may be considered to have internal "step * points" at multiples of the stepping duration. This can be used to * throttle frame generation during playback, and when stepping using * InterestingTime APIs. Setting a step duration with value zero * removes any current step duration. */ kICMImageDescriptionPropertyID_StepDuration = FOUR_CHAR_CODE('step'), /* TimeRecord (base ignored), Read/Write */ /* * The clean aperture as a FixedRect in source coordinates, within * the rectangle defined by the image description width and height, * suitable for use as a source rectangle in a decompression * sequence. * For historical reasons, the DVCPROHD codecs store the production * aperture display dimensions in the image description width and * height; the actual encoded dimensions are smaller. For DVCPROHD, * the clip rect will be relative to the image description width and * height, not the encoded dimensions. */ kICMImageDescriptionPropertyID_CleanApertureClipRect = FOUR_CHAR_CODE('cacr'), /* FixedRect, Read */ /* * A matrix transforming the clean aperture clip rect to the origin, * scaled to the clean aperture display dimensions. * For historical reasons, the DVCPROHD codecs store the production * aperture display dimensions in the image description width and * height; the actual encoded dimensions are smaller. For DVCPROHD, * the matrix will be relative to the image description width and * height, not the encoded dimensions. */ kICMImageDescriptionPropertyID_CleanApertureMatrix = FOUR_CHAR_CODE('camx'), /* MatrixRecord, Read */ /* * A matrix transforming the image to the origin, scaled to the * production aperture display dimensions. * For historical reasons, the DVCPROHD codecs store the production * aperture display dimensions in the image description width and * height; the actual encoded dimensions are smaller. For DVCPROHD, * the matrix will be relative to the image description width and * height, not the encoded dimensions. */ kICMImageDescriptionPropertyID_ProductionApertureMatrix = FOUR_CHAR_CODE('pamx'), /* MatrixRecord, Read */ /* * A localized, human readable string summarizing the image as a * CFString, ie: "Apple DV, 720 x 480 (640 x 480), Millions". * The elements are: the codec name, the encoded pixels dimensions, * then parenthetically the clean aperture mode dimensions, but only * if they are different from the encoded pixels dimensions; then the * depth. * The codec name shall be from the localized decompressor component * name string if exactly one decompressor with the correct cType is * available; otherwise the string in the image description shall be * used. The caller of GetProperty is responsible for releasing this * CFString, eg, by calling CFRelease. */ kICMImageDescriptionPropertyID_SummaryString = FOUR_CHAR_CODE('isum') /* CFStringRef, Read - caller of GetProperty must call CFRelease*/ }; /* * ICMImageDescriptionGetPropertyInfo() * * Summary: * Gets info about a particular property of a ImageDescription. * * Parameters: * * inDesc: * ImageDescriptionHandle being interrogated * * inPropClass: * The class of property being requested * * inPropID: * The ID of the property being requested * * outPropType: * The type of property is returned here (can be NULL) * * outPropValueSize: * The size of property is returned here (can be NULL) * * outPropertyFlags: * The property flags are returned here (can be NULL) * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMImageDescriptionGetPropertyInfo( ImageDescriptionHandle inDesc, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags); /* can be NULL */ /* * ICMImageDescriptionGetProperty() * * Summary: * Gets a particular property of a ImageDescriptionHandle. * * Parameters: * * inDesc: * ImageDescriptionHandle being interrogated * * inPropClass: * The class of property being requested * * inPropID: * The ID of the property being requested * * inPropValueSize: * The size of the property value buffer * * outPropValueAddress: * Points to the buffer to receive the property value * * outPropValueSizeUsed: * Points to a variable to receive the actual size of returned * property value (can be NULL) * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMImageDescriptionGetProperty( ImageDescriptionHandle inDesc, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed); /* can be NULL */ /* * ICMImageDescriptionSetProperty() * * Summary: * Sets a particular property of a ImageDescriptionHandle. * * Parameters: * * inDesc: * ImageDescriptionHandle being modified * * inPropClass: * The class of property being set * * inPropID: * The ID of the property being set * * inPropValueSize: * The size of property value * * inPropValueAddress: * Points to the property value buffer * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMImageDescriptionSetProperty( ImageDescriptionHandle inDesc, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress); /* * ICMValidTimeFlags * * Summary: * Flags to describe which time values are valid. */ typedef UInt32 ICMValidTimeFlags; enum { /* * Indicates that a display time stamp is valid. */ kICMValidTime_DisplayTimeStampIsValid = 1L << 0, /* * Indicates that a display duration is valid. */ kICMValidTime_DisplayDurationIsValid = 1L << 1, /* * Indicates that a decode time stamp is valid. */ kICMValidTime_DecodeTimeStampIsValid = 1L << 2, /* * Indicates that a decode duration is valid. */ kICMValidTime_DecodeDurationIsValid = 1L << 3, /* * Indicates that a display offset (the offset from a decode time * stamp to a display time stamp) is valid. */ kICMValidTime_DisplayOffsetIsValid = 1L << 4 }; /* * ICMDecompressionSessionRef * * Summary: * Represents a decompression session that emits CVPixelBufferRefs * containing frames, tagged with display times. * * Discussion: * ICMDecompressionSession does not support source extraction, * matrix transformations, graphics transfer modes, region-based * clipping or data-loading procedures. Note that the pixel buffers * may be output out of display order, provided that the client opts * in. */ typedef struct OpaqueICMDecompressionSession* ICMDecompressionSessionRef; /* * QTVisualContextRef * * Summary: * Represents a destination visual rendering environment. * * Discussion: * The QTVisualContextRef type encapsulates a connection to a * generic visual destination. A single visual context object may * not be associated with more than one movie at a time. */ typedef struct OpaqueQTVisualContext* QTVisualContextRef; /* * ICMDecompressionSessionOptionsRef * * Summary: * Holds options for a decompression session. */ typedef struct OpaqueICMDecompressionSessionOptions* ICMDecompressionSessionOptionsRef; /* * ICMDecompressionFrameOptionsRef * * Summary: * Holds options for decompressing an individual frame. */ typedef struct OpaqueICMDecompressionFrameOptions* ICMDecompressionFrameOptionsRef; /* * ICMDecompressionTrackingFlags * * Summary: * Describes changes in state of a frame queued with an ICM * decompression session. */ typedef UInt32 ICMDecompressionTrackingFlags; enum { /* * Indicates that this is the last call for this sourceFrameRefCon. */ kICMDecompressionTracking_LastCall = 1L << 0, /* * Indicates that the session no longer needs the source data pointer. */ kICMDecompressionTracking_ReleaseSourceData = 1L << 1, /* * Indicates that a frame is being emitted. The pixelBuffer parameter * contains the decompressed frame. If the decompression session is * targetting a visual context, the frame has not yet been sent to * the visual context but will be after the callback returns. */ kICMDecompressionTracking_EmittingFrame = 1L << 2, /* * Indicates that this frame was decoded. */ kICMDecompressionTracking_FrameDecoded = 1L << 3, /* * Indicates that the codec decided to drop this frame. */ kICMDecompressionTracking_FrameDropped = 1L << 4, /* * Indicates that this frame will not be able to be displayed unless * it is queued for redecode (also known as FrameNotDisplayable). */ kICMDecompressionTracking_FrameNeedsRequeueing = 1L << 5 }; /* * ICMDecompressionTrackingCallback * * Summary: * The callback through which a client of an ICM decompression * session receives decoded frames and information about decoding. * * Discussion: * The client may retain the emitted pixel buffers as long as it * needs; they will not be reused before the client releases them. * * Parameters: * * decompressionTrackingRefCon: * The callback's reference value, copied from the * decompressionTrackingRefCon field of the * ICMDecompressionTrackingCallbackRecord structure. * * result: * Indicates whether there was an error in decompression. * * decompressionTrackingFlags: * One or more flags describing the a frame's state transitions. * * pixelBuffer: * When the kICMDecompressionTracking_EmittingFrame flag is set in * decompressionTrackingFlags, a pixel buffer containing the * decompressed frame. Otherwise, NULL. * * displayTime: * If kICMValidTime_DisplayTimeStampIsValid is set in * validTimeFlags, the display time of the frame. * * displayDuration: * If kICMValidTime_DisplayDurationIsValid is set in * validTimeFlags, the display duration of the frame. * * validTimeFlags: * Indicates which of displayTime and displayDuration is valid. * * reserved: * Reserved for future use. Ignore the value of this parameter. * * sourceFrameRefCon: * The frame's reference value, copied from the sourceFrameRefCon * parameter to ICMDecompressionSessionDecodeFrame. */ typedef CALLBACK_API_C( void , ICMDecompressionTrackingCallback )(void *decompressionTrackingRefCon, OSStatus result, ICMDecompressionTrackingFlags decompressionTrackingFlags, CVPixelBufferRef pixelBuffer, TimeValue64 displayTime, TimeValue64 displayDuration, ICMValidTimeFlags validTimeFlags, void *reserved, void *sourceFrameRefCon); /* * ICMDecompressionTrackingCallbackRecord * * Summary: * A tracking callback for an ICM decompression session. */ struct ICMDecompressionTrackingCallbackRecord { /* * The callback function pointer. */ ICMDecompressionTrackingCallback decompressionTrackingCallback; /* * The callback's reference value. */ void * decompressionTrackingRefCon; }; typedef struct ICMDecompressionTrackingCallbackRecord ICMDecompressionTrackingCallbackRecord; /* * ICMDecompressionSessionCreate() * * Summary: * Creates a session for decompressing video frames. * * Discussion: * Frames will be output through calls to trackingCallback. * * Parameters: * * allocator: * An allocator for the session. Pass NULL to use the default * allocator. * * desc: * An image description for the source frames. * * decompressionOptions: * Options for the session. The session will retain this options * object. You may change some options during the session by * modifying the object. * * destinationPixelBufferAttributes: * Describes requirements for emitted pixel buffers. * * trackingCallback: * The callback to be called with information about queued frames, * and pixel buffers containing the decompressed frames. * * decompressionSessionOut: * Points to a variable to receive the new decompression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionCreate( CFAllocatorRef allocator, /* can be NULL */ ImageDescriptionHandle desc, ICMDecompressionSessionOptionsRef decompressionOptions, /* can be NULL */ CFDictionaryRef destinationPixelBufferAttributes, /* can be NULL */ ICMDecompressionTrackingCallbackRecord * trackingCallback, ICMDecompressionSessionRef * decompressionSessionOut); /* * ICMDecompressionSessionCreateForVisualContext() * * Summary: * Creates a session for decompressing video frames. * * Discussion: * Frames will be output to a visual context. If desired, the * trackingCallback may attach additional data to pixel buffers * before they are sent to the visual context. * * Parameters: * * allocator: * An allocator for the session. Pass NULL to use the default * allocator. * * desc: * An image description for the source frames. * * decompressionOptions: * Options for the session. The session will retain this options * object. You may change some options during the session by * modifying the object. * * visualContext: * The target visual context. * * trackingCallback: * The callback to be called with information about queued frames, * and pixel buffers containing the decompressed frames. * * decompressionSessionOut: * Points to a variable to receive the new decompression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionCreateForVisualContext( CFAllocatorRef allocator, /* can be NULL */ ImageDescriptionHandle desc, ICMDecompressionSessionOptionsRef decompressionOptions, /* can be NULL */ QTVisualContextRef visualContext, ICMDecompressionTrackingCallbackRecord * trackingCallback, ICMDecompressionSessionRef * decompressionSessionOut); /* * ICMDecompressionSessionRetain() * * Summary: * Increments the retain count of a decompression session. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMDecompressionSessionRef ) ICMDecompressionSessionRetain(ICMDecompressionSessionRef session); /* * ICMDecompressionSessionRelease() * * Summary: * Decrements the retain count of a decompression session. If it * drops to zero, the session is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMDecompressionSessionRelease(ICMDecompressionSessionRef session); /* * ICMDecompressionSessionGetTypeID() * * Summary: * Returns the CFTypeID for decompression sessions. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMDecompressionSessionGetTypeID(void); /* * ICMDecompressionSessionDecodeFrame() * * Summary: * Queues a frame for decompression. * * Parameters: * * session: * The decompression session. * * data: * Points to the compressed data for this frame. The data must * remain in this location until the tracking callback is called * with the kICMDecompressionTracking_ReleaseSourceData flag set * in decompressionTrackingFlags. * * dataSize: * The number of bytes of compressed data. You may not pass zero * in this parameter. * * frameOptions: * Options for this frame. * * frameTime: * Points to a structure describing the frame's timing information. * * sourceFrameRefCon: * Your reference value for the frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionDecodeFrame( ICMDecompressionSessionRef session, const UInt8 * data, ByteCount dataSize, ICMDecompressionFrameOptionsRef frameOptions, /* can be NULL */ const ICMFrameTimeRecord * frameTime, void * sourceFrameRefCon); /* * ICMDecompressionSessionGetPropertyInfo() * * Summary: * Retrieves information about properties of a decompression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionGetPropertyInfo( ICMDecompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags); /* can be NULL */ /* * ICMDecompressionSessionGetProperty() * * Summary: * Retrieves the value of a specific property of a decompression * session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionGetProperty( ICMDecompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed); /* can be NULL */ /* * ICMDecompressionSessionSetProperty() * * Summary: * Sets the value of a specific property of a decompression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionSetProperty( ICMDecompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress); /* * ICMNonScheduledDisplayTime * * Discussion: * The display time for a decompression session. */ struct ICMNonScheduledDisplayTime { /* * A display time. Usually this is the display time of a * non-scheduled queued frame. */ TimeValue64 displayTime; /* * The timescale according to which displayTime should be interpreted. */ TimeScale displayTimeScale; /* * Reserved, set to zero. */ UInt32 flags; }; typedef struct ICMNonScheduledDisplayTime ICMNonScheduledDisplayTime; /* * Summary: * Properties of decompression sessions. */ enum { /* * Class identifier for decompression session properties. */ kQTPropertyClass_ICMDecompressionSession = FOUR_CHAR_CODE('icds'), /* * The non-scheduled display time for a decompression session. * Setting this requests display of the non-scheduled queued frame at * that display time, if there is one. * See ICMDecompressionSessionSetNonScheduledDisplayTime. */ kICMDecompressionSessionPropertyID_NonScheduledDisplayTime = FOUR_CHAR_CODE('nsti'), /* ICMNonScheduledDisplayTime, Read/Write */ /* * The direction for non-scheduled display time. * See ICMDecompressionSessionSetNonScheduledDisplayDirection. */ kICMDecompressionSessionPropertyID_NonScheduledDisplayDirection = FOUR_CHAR_CODE('nsdu'), /* Fixed, Read/Write */ /* * The pixel buffer pool from which emitted pixel buffers are * allocated. Getting this does not change the retain count of the * pool. */ kICMDecompressionSessionPropertyID_PixelBufferPool = FOUR_CHAR_CODE('pool'), /* CVPixelBufferPoolRef, Read */ /* * Indicates whether the a common pixel buffer pool is shared between * the decompressor and the session client. This is false if separate * pools are used because the decompressor's and the client's pixel * buffer attributes were incompatible. */ kICMDecompressionSessionPropertyID_PixelBufferPoolIsShared = FOUR_CHAR_CODE('plsh') /* Boolean, Read */ }; /* * ICMDecompressionSessionSetNonScheduledDisplayTime() * * Summary: * Sets the display time for a decompression session, and requests * display of the non-scheduled queued frame at that display time, * if there is one. * * Discussion: * Call ICMDecompressionSessionSetNonScheduledDisplayTime after * queueing non-scheduled frames with * ICMDecompressionSessionDecodeFrame with the * icmFrameTimeIsNonScheduledDisplayTime flag set to request display * of the frame at a particular display time. * If there is no queued non-scheduled frame with this display time, * the frame with the next earlier display time is displayed. (Which * of two display times is earlier is determined using the * non-scheduled display time direction, which you can set with * ICMDecompressionSessionSetNonScheduledDisplayDirection.) If there * is no such frame, nothing happens. * This has no effect if frames are scheduled against a timebase. * * Parameters: * * session: * The decompression session. * * displayTime: * A display time. Usually this is the display time of a * non-scheduled queued frame. * * displayTimeScale: * The timescale according to which displayTime should be * interpreted. * * flags: * Reserved, set to zero. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionSetNonScheduledDisplayTime( ICMDecompressionSessionRef session, TimeValue64 displayTime, TimeScale displayTimeScale, UInt32 flags); /* * ICMDecompressionSessionSetNonScheduledDisplayDirection() * * Summary: * Sets the direction for non-scheduled display time. * * Discussion: * If rate is zero or positive, direction is forwards. If negative, * direction is backwards. * Any frames queued under the opposite direction will be flushed. * * The non-scheduled display direction defaults to forwards (rate * 1.0). * * Parameters: * * session: * The decompression session. * * rate: * Indicates the direction. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionSetNonScheduledDisplayDirection( ICMDecompressionSessionRef session, Fixed rate); /* * ICMDecompressionSessionFlush() * * Summary: * Flushes frames queued with a decompression session. * * Discussion: * The tracking callback will be called for each frame with the * result -1. * * Parameters: * * session: * The decompression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionFlush(ICMDecompressionSessionRef session); /* * ICMDecompressionSessionOptionsCreate() * * Summary: * Creates a decompression session options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionOptionsCreate( CFAllocatorRef allocator, /* can be NULL */ ICMDecompressionSessionOptionsRef * options); /* * ICMDecompressionSessionOptionsCreateCopy() * * Summary: * Copies a decompression session options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionOptionsCreateCopy( CFAllocatorRef allocator, /* can be NULL */ ICMDecompressionSessionOptionsRef originalOptions, ICMDecompressionSessionOptionsRef * copiedOptions); /* * ICMDecompressionSessionOptionsRetain() * * Summary: * Increments the retain count of a decompression session options * object. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMDecompressionSessionOptionsRef ) ICMDecompressionSessionOptionsRetain(ICMDecompressionSessionOptionsRef options); /* * ICMDecompressionSessionOptionsRelease() * * Summary: * Decrements the retain count of a decompression session options * object. If it drops to zero, the object is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMDecompressionSessionOptionsRelease(ICMDecompressionSessionOptionsRef options); /* * ICMDecompressionSessionOptionsGetTypeID() * * Summary: * Returns the CFTypeID for decompression session options objects. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMDecompressionSessionOptionsGetTypeID(void); /* * ICMDecompressionSessionOptionsGetPropertyInfo() * * Summary: * Retrieves information about properties of a decompression session * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionOptionsGetPropertyInfo( ICMDecompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags); /* can be NULL */ /* * ICMDecompressionSessionOptionsGetProperty() * * Summary: * Retrieves the value of a specific property of a decompression * session options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionOptionsGetProperty( ICMDecompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed); /* can be NULL */ /* * ICMDecompressionSessionOptionsSetProperty() * * Summary: * Sets the value of a specific property of a decompression session * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionSessionOptionsSetProperty( ICMDecompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress); /* * Summary: * Properties of decompression session options objects. */ enum { /* * Class identifier for decompression session options object * properties. */ kQTPropertyClass_ICMDecompressionSessionOptions = FOUR_CHAR_CODE('idso'), /* * By default, this is true, meaning that frames must be output in * display order. Set this to false to allow frames to be output in * decode order rather than in display order. */ kICMDecompressionSessionOptionsPropertyID_DisplayOrderRequired = FOUR_CHAR_CODE('dorq'), /* Boolean, Read/Write */ /* * A specific decompressor component or component instance to be * used, or one of the wildcards anyCodec, bestSpeedCodec, * bestFidelityCodec, or bestCompressionCodec. * By default, this is anyCodec. */ kICMDecompressionSessionOptionsPropertyID_DecompressorComponent = FOUR_CHAR_CODE('imdc'), /* DecompressorComponent, Read/Write */ /* * The decompression accuracy. * The default accuracy is codecNormalQuality. */ kICMDecompressionSessionOptionsPropertyID_Accuracy = FOUR_CHAR_CODE('acur'), /* CodecQ, Read/Write */ /* * Requests special handling of fields. Not all codecs will obey this * request; some codecs will only handle it at certain accuracy * levels. Ignored for non-interlaced content. */ kICMDecompressionSessionOptionsPropertyID_FieldMode = FOUR_CHAR_CODE('fiel'), /* ICMFieldMode, Read/Write */ /* * The maximum number of buffers ahead of the current time that * should be decompressed. Used in sessions that target visual * contexts. By default, the number of buffers will be determined * from the visual context. */ kICMDecompressionSessionOptionsPropertyID_MaxBufferCount = FOUR_CHAR_CODE('m#bf'), /* UInt32, Read/Write */ /* * The minimum time ahead of the current time that frames should be * decompressed. Used in sessions that target visual contexts. By * default, the output-ahead time will be determined from the visual * context. */ kICMDecompressionSessionOptionsPropertyID_OutputAheadTime = FOUR_CHAR_CODE('futu'), /* TimeRecord, Read/Write */ /* * You can set the aperture mode property on a decompression session * options object to indicate whether pixel buffers should be tagged * to enable aspect ratio and clean aperture correction. The default * aperture mode for a decompression session is clean aperture mode. */ kICMDecompressionSessionOptionsPropertyID_ApertureMode = FOUR_CHAR_CODE('apmd') /* OSType, Read/Write */ }; /* * ICMFieldMode * * Summary: * Describes special field handling. */ typedef UInt32 ICMFieldMode; enum { /* * Both fields should be decompressed. */ kICMFieldMode_BothFields = 0, /* * Only the top field should be decompressed, producing a half-height * image. */ kICMFieldMode_TopFieldOnly = 1, /* * Only the bottom field should be decompressed, producing a * half-height image. */ kICMFieldMode_BottomFieldOnly = 2, /* * Both fields should be decompressed, and then filtered to reduce * interlacing artifacts. */ kICMFieldMode_DeinterlaceFields = 3 }; /* * ICMDecompressionFrameOptionsCreate() * * Summary: * Creates a frame decompression options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionFrameOptionsCreate( CFAllocatorRef allocator, /* can be NULL */ ICMDecompressionFrameOptionsRef * options); /* * ICMDecompressionFrameOptionsCreateCopy() * * Summary: * Copies a frame decompression options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionFrameOptionsCreateCopy( CFAllocatorRef allocator, /* can be NULL */ ICMDecompressionFrameOptionsRef originalOptions, ICMDecompressionFrameOptionsRef * copiedOptions); /* * ICMDecompressionFrameOptionsRetain() * * Summary: * Increments the retain count of a frame decompression options * object. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMDecompressionFrameOptionsRef ) ICMDecompressionFrameOptionsRetain(ICMDecompressionFrameOptionsRef options); /* * ICMDecompressionFrameOptionsRelease() * * Summary: * Decrements the retain count of a frame decompression options * object. If it drops to zero, the object is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMDecompressionFrameOptionsRelease(ICMDecompressionFrameOptionsRef options); /* * ICMDecompressionFrameOptionsGetTypeID() * * Summary: * Returns the CFTypeID for frame decompression options objects. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMDecompressionFrameOptionsGetTypeID(void); /* * ICMDecompressionFrameOptionsGetPropertyInfo() * * Summary: * Retrieves information about properties of a decompression frame * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionFrameOptionsGetPropertyInfo( ICMDecompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags); /* can be NULL */ /* * ICMDecompressionFrameOptionsGetProperty() * * Summary: * Retrieves the value of a specific property of a decompression * frame options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionFrameOptionsGetProperty( ICMDecompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed); /* can be NULL */ /* * ICMDecompressionFrameOptionsSetProperty() * * Summary: * Sets the value of a specific property of a decompression frame * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMDecompressionFrameOptionsSetProperty( ICMDecompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress); /* * Summary: * Properties of decompression frame options objects. */ enum { /* * Class identifier for decompression frame options object properties. */ kQTPropertyClass_ICMDecompressionFrameOptions = FOUR_CHAR_CODE('idfo'), /* * A specific pixel buffer that the frame should be decompressed * into. Setting this circumvents the pixel buffer pool mechanism. If * this buffer is not compatible with the codec's pixel buffer * requirements, decompression will fail. */ kICMDecompressionFrameOptionsPropertyID_DestinationPixelBuffer = FOUR_CHAR_CODE('cvpb') /* CVPixelBufferRef, Read/Write */ }; /* * ICMCompressionSessionRef * * Summary: * Represents a compression session for a sequence of images. * B-frame capable. */ typedef struct OpaqueICMCompressionSession* ICMCompressionSessionRef; /* * ICMEncodedFrameRef * * Summary: * Represents a frame encoded by a compressor component and emitted * by a compression session. * * Discussion: * Compressor components have access to the mutable flavor of * encoded frame object (ICMMutableEncodedFrameRef); compression * session clients receive the read-only flavor * (ICMMutableEncodedFrameRef). */ typedef const struct OpaqueICMEncodedFrame* ICMEncodedFrameRef; typedef struct OpaqueICMEncodedFrame* ICMMutableEncodedFrameRef; /* * ICMCompressionSessionOptionsRef * * Summary: * An opaque struct which holds options to configure a compression * session. */ typedef struct OpaqueICMCompressionSessionOptions* ICMCompressionSessionOptionsRef; /* * ICMCompressionFrameOptionsRef * * Summary: * A token which holds options to configure an individual frame * during a compression session. */ typedef struct OpaqueICMCompressionFrameOptions* ICMCompressionFrameOptionsRef; /* * ICMMultiPassStorageRef * * Summary: * A mechanism for storing information for each frame of a multipass * compression session. * * Discussion: * The ICM provides default storage mechanisms using temporary * files, but clients may override this with custom mechanisms. */ typedef struct OpaqueICMMultiPassStorage* ICMMultiPassStorageRef; /* * ICMEncodedFrameOutputCallback * * Summary: * The callback through which a client of an ICM compression session * receives encoded frames. * * Discussion: * During the encoded frame output callback, the ICM has a reference * to the passed ICMEncodedFrame, but the ICM will release that * reference afterwards; the callback should retain the encoded * frame if the client wants to keep it after the callback returns. * * Parameters: * * encodedFrameOutputRefCon: * The callback's reference value, copied from the * encodedFrameOutputRefCon field of the * ICMEncodedFrameOutputRecord. * * session: * The compression session. * * error: * Indicates whether there was an error. * * frame: * The encoded frame. * * reserved: * Reserved for future use. Ignore the value of this parameter. * * Result: * If the callback returns an error, the compressor and ICM will * stop emitting frames so that the error can be propogated back to * the caller of ICMCompressionSessionEncodeFrame or * ICMCompressionSessionCompleteFrames. */ typedef CALLBACK_API_C( OSStatus , ICMEncodedFrameOutputCallback )(void *encodedFrameOutputRefCon, ICMCompressionSessionRef session, OSStatus error, ICMEncodedFrameRef frame, void *reserved); /* * ICMEncodedFrameOutputRecord * * Summary: * Holds an encoded frame callback and reference value. */ struct ICMEncodedFrameOutputRecord { /* * An encoded frame callback. */ ICMEncodedFrameOutputCallback encodedFrameOutputCallback; /* * The reference value for the encoded frame callback. */ void * encodedFrameOutputRefCon; /* * The allocator for encoded frame data. Pass NULL if you do not need * a specific allocator. */ CFAllocatorRef frameDataAllocator; }; typedef struct ICMEncodedFrameOutputRecord ICMEncodedFrameOutputRecord; /* * ICMSourceTrackingFlags * */ typedef UInt32 ICMSourceTrackingFlags; enum { /* * Indicates that this is the last call for this sourceFrameRefCon. */ kICMSourceTracking_LastCall = 1L << 0, /* * Indicates that the session is done with the source pixel buffer * and has released any reference to it that it had. */ kICMSourceTracking_ReleasedPixelBuffer = 1L << 1, /* * Indicates that this frame was encoded. */ kICMSourceTracking_FrameWasEncoded = 1L << 2, /* * Indicates that this frame was dropped. */ kICMSourceTracking_FrameWasDropped = 1L << 3, /* * Indicates that this frame was merged into other frames. */ kICMSourceTracking_FrameWasMerged = 1L << 4, /* * Indicates that the time stamp of this frame was modified. */ kICMSourceTracking_FrameTimeWasChanged = 1L << 5, /* * Indicates that the ICM has copied the image from the source pixel * buffer into another pixel buffer because the source pixel buffer * was not compatible with the compressor's required pixel buffer * attributes. */ kICMSourceTracking_CopiedPixelBuffer = 1L << 6 }; /* * ICMSourceTrackingCallback * * Summary: * A callback which the ICM calls to provide information about the * status of a frame that was passed to * ICMCompressionSessionEncodeFrame. * * Discussion: * Note that this callback may be called several times. * * Parameters: * * sourceTrackingRefCon: * The callback's reference value, copied from the * sourceTrackingRefCon field of ICMSourceTrackingCallbackRecord. * * sourceTrackingFlags: * Flags describing what has happened to the frame. * * sourceFrameRefCon: * The frame's reference value, copied from the sourceFrameRefCon * parameter to ICMCompressionSessionEncodeFrame. * * reserved: * Reserved for future use. Ignore the value of this parameter. */ typedef CALLBACK_API_C( void , ICMSourceTrackingCallback )(void *sourceTrackingRefCon, ICMSourceTrackingFlags sourceTrackingFlags, void *sourceFrameRefCon, void *reserved); /* * ICMSourceTrackingCallbackRecord * * Summary: * A tracking callback for an ICM compression session. */ struct ICMSourceTrackingCallbackRecord { /* * The callback function pointer. */ ICMSourceTrackingCallback sourceTrackingCallback; /* * The callback's reference value. */ void * sourceTrackingRefCon; }; typedef struct ICMSourceTrackingCallbackRecord ICMSourceTrackingCallbackRecord; /* * ICMFrameType * * Summary: * Informally identifies a type of frame. * * Discussion: * Do not assume that there are no other frame types beyond I, P and * B. */ typedef UInt16 ICMFrameType; enum { kICMFrameType_I = 'I', kICMFrameType_P = 'P', kICMFrameType_B = 'B', kICMFrameType_Unknown = 0 }; /* ICMCompressionSessionRef routines */ /* * ICMCompressionSessionCreate() * * Summary: * Creates a compression session for the given codec type. * * Discussion: * Some compressors do not support arbitrary source dimensions, and * may override the suggested width and height. * * Parameters: * * allocator: * An allocator for the session. Pass NULL to use the default * allocator. * * width: * The width of frames. * * height: * The height of frames. * * cType: * The codec type. * * timescale: * The timescale to be used for all timestamps and durations used * in the session. * * compressionOptions: * Settings configuring the session. * * sourcePixelBufferAttributes: * Required attributes for source pixel buffers, used when * creating a pixel buffer pool for source frames. If you do not * want the ICM to create one for you, pass NULL. (Using pixel * buffers not allocated by the ICM may increase the chance that * it will be necessary to copy image data.) * * encodedFrameOutputRecord: * The callback that will receive encoded frames. * * compressionSessionOut: * Points to a variable to receive the created session object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionCreate( CFAllocatorRef allocator, /* can be NULL */ int width, int height, CodecType cType, TimeScale timescale, ICMCompressionSessionOptionsRef compressionOptions, /* can be NULL */ CFDictionaryRef sourcePixelBufferAttributes, /* can be NULL */ ICMEncodedFrameOutputRecord * encodedFrameOutputRecord, ICMCompressionSessionRef * compressionSessionOut); /* * ICMCompressionSessionRetain() * * Summary: * Increments the retain count of a compression session. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMCompressionSessionRef ) ICMCompressionSessionRetain(ICMCompressionSessionRef session); /* * ICMCompressionSessionRelease() * * Summary: * Decrements the retain count of a compression session. If it * drops to zero, the session is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. Remember to * call ICMCompressionSessionCompleteFrames first if you want to * ensure any pending frames are emitted. If you do not, they will * be discarded. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMCompressionSessionRelease(ICMCompressionSessionRef session); /* * ICMCompressionSessionGetTypeID() * * Summary: * Returns the CFTypeID for compression sessions. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMCompressionSessionGetTypeID(void); /* * ICMCompressionSessionGetPropertyInfo() * * Summary: * Retrieves information about properties of a compression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionGetPropertyInfo( ICMCompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags); /* can be NULL */ /* * ICMCompressionSessionGetProperty() * * Summary: * Retrieves the value of a specific property of a compression * session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionGetProperty( ICMCompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed); /* can be NULL */ /* * ICMCompressionSessionSetProperty() * * Summary: * Sets the value of a specific property of a compression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionSetProperty( ICMCompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress); /* * Summary: * Properties of compression sessions. */ enum { /* * Class identifier for compression session properties. */ kQTPropertyClass_ICMCompressionSession = FOUR_CHAR_CODE('icse'), /* * The time scale for the compression session. */ kICMCompressionSessionPropertyID_TimeScale = FOUR_CHAR_CODE('tscl'), /* TimeScale, Read */ /* * The compressor's pixel buffer attributes for the compression * session. You can use these to create a pixel buffer pool for * source pixel buffers. Note that this is not the same as the * sourcePixelBufferAttributes passed in to * ICMCompressionSessionCreate. Getting this property does not change * its retain count. */ kICMCompressionSessionPropertyID_CompressorPixelBufferAttributes = FOUR_CHAR_CODE('batt'), /* CFDictionaryRef, Read */ /* * A pool that can provide ideal source pixel buffers for a * compression session. The compression session creates this pixel * buffer pool based on the compressor's pixel buffer attributes and * any pixel buffer attributes passed in to * ICMCompressionSessionCreate. If the source pixel buffer attributes * and the compressor pixel buffer attributes can not be reconciled, * the pool is based on the source pixel buffer attributes and the * ICM converts each CVPixelBuffer internally. */ kICMCompressionSessionPropertyID_PixelBufferPool = FOUR_CHAR_CODE('pool'), /* CVPixelBufferPoolRef, Read */ /* * The image description for the compression session. For some * codecs, the image description may not be available before the * first frame is compressed. Multiple calls to retrieve this * property will return the same handle. The ICM will dispose this * handle when the compression session is disposed. * IMPORTANT: The caller must NOT dispose this handle. */ kICMCompressionSessionPropertyID_ImageDescription = FOUR_CHAR_CODE('idsc') /* ImageDescriptionHandle, Read */ }; /* * ICMCompressionSessionGetTimeScale() * * Summary: * Retrieves the time scale for the compression session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( TimeScale ) ICMCompressionSessionGetTimeScale(ICMCompressionSessionRef session); /* * ICMCompressionSessionGetPixelBufferPool() * * Summary: * Returns a pool that can provide ideal source pixel buffers for a * compression session. * * Discussion: * The compression session creates this pixel buffer pool based on * the compressor's pixel buffer attributes and any pixel buffer * attributes passed in to ICMCompressionSessionCreate. If the * source pixel buffer attributes and the compressor pixel buffer * attributes can not be reconciled, the pool is based on the source * pixel buffer attributes and the ICM converts each CVPixelBuffer * internally. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CVPixelBufferPoolRef ) ICMCompressionSessionGetPixelBufferPool(ICMCompressionSessionRef session); /* * ICMCompressionSessionGetImageDescription() * * Summary: * Retrieves the image description for the compression session. * * Discussion: * For some codecs, this may fail if called before the first frame * is compressed. Multiple calls to * ICMCompressionSessionGetImageDescription will return the same * handle. The ICM will dispose this handle when the compression * session is disposed. * IMPORTANT: The caller must NOT dispose this handle. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionGetImageDescription( ICMCompressionSessionRef session, ImageDescriptionHandle * imageDescOut); /* ICMCompressionSessionRef encoding routines */ /* * ICMCompressionSessionEncodeFrame() * * Summary: * Call this function to present frames to the compression session. * Encoded frames may or may not be output before the function * returns. * * Discussion: * The session will retain the pixel buffer as long as necessary; * the client should not modify the pixel data until the session * releases it. (The most practical way to deal with this is by * allocating pixel buffers from a pool.) * The client may fill in both, either or neither of * displayTimeStamp and displayDuration, but should set the * appropriate flags to indicate which is valid. If the client needs * to track the progress of a source frame, it should provide a * sourceTrackingCallback. * Note: If multipass compression is enabled, calls to * ICMCompressionSessionEncodeFrame must be bracketed by * ICMCompressionSessionBeginPass ... ICMCompressionSessionEndPass. * * Parameters: * * session: * Identifies the compression session. * * pixelBuffer: * Contains the source image to be compressed. PixelBuffer must * have a nonzero reference count. The session will retain it as * long as necessary. The client should not modify pixel buffer's * pixels until the pixel buffer release callback is called. In a * multipass encoding session pass where the compressor suggested * the flag kICMCompressionPassMode_NoSourceFrames, you may pass * NULL for pixelBuffer. * * displayTimeStamp: * The display timestamp of the frame, using the timescale passed * to ICMCompressionSessionCreate. If you pass a valid value, set * the kICMValidTime_DisplayTimeStampIsValid flag in * validTimeFlags. * * displayDuration: * The display duration of the frame, using the timescale passed * to ICMCompressionSessionCreate. If you pass a valid value, set * the kICMValidTime_DisplayDurationIsValid flag in validTimeFlags. * * validTimeFlags: * Flags to indicate which of displayTimeStamp and displayDuration * are valid. * * frameOptions: * Options for this frame. * * sourceTrackingCallback: * A callback to be notified about the status of this source * frame. Pass NULL if you do not require notification. * * sourceFrameRefCon: * Your reference to the source frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionEncodeFrame( ICMCompressionSessionRef session, CVPixelBufferRef pixelBuffer, TimeValue64 displayTimeStamp, TimeValue64 displayDuration, ICMValidTimeFlags validTimeFlags, ICMCompressionFrameOptionsRef frameOptions, /* can be NULL */ ICMSourceTrackingCallbackRecord * sourceTrackingCallback, /* can be NULL */ void * sourceFrameRefCon); /* * ICMCompressionSessionCompleteFrames() * * Discussion: * Call this function to force the compression session to complete * encoding frames. Set completeAllFrames to direct the session to * complete all pending frames. * If completeAllFrames is false, only frames with display time * stamps up to and including completeUntilDisplayTimeStamp. * If ICMCompressionSessionOptionsSetDurationsNeeded is true and you * are passing valid display timestamps but not display durations to * ICMCompressionSessionEncodeFrame, pass the display timestamp of * the next frame that would be passed to EncodeFrame in * nextDisplayTimeStamp. * Note: This function might return before frames are completed if * the encoded frame callback returns an error. * * Parameters: * * session: * Identifies the compression session. * * completeAllFrames: * Set to direct the session to complete all pending frames. * * completeUntilDisplayTimeStamp: * If completeAllFrames is false, the display timestamp to * complete frames up to. Ignored if completeAllFrames is true. * * nextDisplayTimeStamp: * See above. Ignored unless * ICMCompressionSessionOptionsSetDurationsNeeded set true and * kICMValidTime_DisplayDurationIsValid was clear in * validTimeFlags in last call to ICMCompressionSessionEncodeFrame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionCompleteFrames( ICMCompressionSessionRef session, Boolean completeAllFrames, TimeValue64 completeUntilDisplayTimeStamp, TimeValue64 nextDisplayTimeStamp); /* ICMCompressionSessionRef multipass support routines */ /* * ICMCompressionPassModeFlags * * Summary: * Flags describing how a compressor should behave in a given pass * of multipass encoding. */ typedef UInt32 ICMCompressionPassModeFlags; enum { /* * In this pass the compressor shall output encoded frames. */ kICMCompressionPassMode_OutputEncodedFrames = 1L << 0, /* * In this pass the client need not provide source frame buffers. */ kICMCompressionPassMode_NoSourceFrames = 1L << 1, /* * In this pass the compressor may write private data to multipass * storage. */ kICMCompressionPassMode_WriteToMultiPassStorage = 1L << 2, /* * In this pass the compressor may read private data from multipass * storage. */ kICMCompressionPassMode_ReadFromMultiPassStorage = 1L << 3, /* * The compressor will set this flag to indicate that it will not be * able to output encoded frames in the coming pass. If this flag is * not set, then the client is allowed to set the * kICMCompressionPassMode_OutputEncodedFrames flag when calling * ICMCompressionSessionBeginPass. */ kICMCompressionPassMode_NotReadyToOutputEncodedFrames = 1L << 4 }; /* * ICMCompressionSessionSupportsMultiPassEncoding() * * Summary: * Queries whether a compression session supports multipass encoding. * * Discussion: * Even if this function returns false, if you set the * kICMCompressionSessionOptionsPropertyID_MultiPassStorage property * on the CompressionSessionOptions, you must call * ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass. * * Parameters: * * session: * The compression session. * * multiPassStyleFlags: * Reserved. Set to zero. * * firstPassModeFlagsOut: * Points to a variable to receive the session's requested mode * flags for the first pass. The client may modify these flags, * but should not set kICMCompressionPassMode_NoSourceFrames. Pass * NULL if you do not want this information. * * Result: * true if the session supports multipass encoding, false otherwise. * If the session does not support multipass encoding, * *firstPassModeFlagsOut will be set to * kICMCompressionPassMode_OutputEncodedFrames. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Boolean ) ICMCompressionSessionSupportsMultiPassEncoding( ICMCompressionSessionRef session, UInt32 multiPassStyleFlags, ICMCompressionPassModeFlags * firstPassModeFlagsOut); /* can be NULL */ /* * ICMCompressionSessionBeginPass() * * Summary: * Call to announce the start of a specific compression pass. * * Discussion: * The source frames and frame options for each display timestamp * should be the same across passes. * During multipass compression, valid displayTimeStamps must be * passed to ICMCompressionSessionEncodeFrame since they are used to * index the compressor's stored state. * During an analysis pass * (kICMCompressionPassMode_WriteToMultiPassStorage), the compressor * does not output encoded frames, but records compressor-private * information for each frame. * During repeated analysis passes and the encoding pass * (kICMCompressionPassMode_ReadFromMultiPassStorage), the * compressor may refer to this information for other frames and use * it to improve encoding. * During an encoding pass * (kICMCompressionPassMode_OutputEncodedFrames), the compressor * must output encoded frames. * If the compressor set the kICMCompressionPassMode_NoSourceFrames * flag for the pass, the client may pass NULL pixel buffers to * ICMCompressionSessionEncodeFrame. * By default, the ICM provides local storage that lasts only until * the compression session is disposed. If the client provides * custom multipass storage, pass may be performed at different * times or on different machines; segments of each pass may even be * distributed. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionBeginPass( ICMCompressionSessionRef session, ICMCompressionPassModeFlags passModeFlags, UInt32 flags); /* * ICMCompressionSessionEndPass() * * Summary: * Call to announce the end of a pass. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionEndPass(ICMCompressionSessionRef session); /* * ICMCompressionSessionProcessBetweenPasses() * * Summary: * Lets the compressor perform processing between passes. * * Discussion: * Call this function repeatedly, until the compressor sets * *interpassProcessingDoneOut to true to indicate that it is done * with this round of interpass processing. * When done, the compressor will indicate its preferred mode for * the next pass. * The client may choose to begin an encoding pass (by ORing in the * kICMCompressionPassMode_OutputEncodedFrames flag) regardless of * the compressor's request. * * Parameters: * * session: * The compression session. * * flags: * Reserved. Set to zero. * * interpassProcessingDoneOut: * Points to a Boolean that will be set to false if * ICMCompressionSessionProcessBetweenPasses should be called * again, true if not * * requestedNextPassModeFlagsOut: * Points to ICMCompressionPassModeFlags that will be set to the * codec's recommended mode flags for the next pass. * kICMCompressionPassMode_OutputEncodedFrames will only be set if * it recommends that the next pass be the final one. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionProcessBetweenPasses( ICMCompressionSessionRef session, UInt32 flags, Boolean * interpassProcessingDoneOut, ICMCompressionPassModeFlags * requestedNextPassModeFlagsOut); /* ICMCompressionSessionOptionsRef routines */ /* * ICMCompressionSessionOptionsCreate() * * Summary: * Creates a compression session options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsCreate( CFAllocatorRef allocator, /* can be NULL */ ICMCompressionSessionOptionsRef * options); /* * ICMCompressionSessionOptionsCreateCopy() * * Summary: * Copies a compression session options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsCreateCopy( CFAllocatorRef allocator, /* can be NULL */ ICMCompressionSessionOptionsRef originalOptions, ICMCompressionSessionOptionsRef * copiedOptions); /* * ICMCompressionSessionOptionsRetain() * * Summary: * Increments the retain count of a compression session options * object. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMCompressionSessionOptionsRef ) ICMCompressionSessionOptionsRetain(ICMCompressionSessionOptionsRef options); /* * ICMCompressionSessionOptionsRelease() * * Summary: * Decrements the retain count of a compression session options * object. If it drops to zero, the object is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMCompressionSessionOptionsRelease(ICMCompressionSessionOptionsRef options); /* * ICMCompressionSessionOptionsGetTypeID() * * Summary: * Returns the CFTypeID for compression session options objects. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMCompressionSessionOptionsGetTypeID(void); /* * ICMCompressionSessionOptionsGetPropertyInfo() * * Summary: * Retrieves information about properties of a compression session * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsGetPropertyInfo( ICMCompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags); /* can be NULL */ /* * ICMCompressionSessionOptionsGetProperty() * * Summary: * Retrieves the value of a specific property of a compression * session options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsGetProperty( ICMCompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed); /* can be NULL */ /* * ICMCompressionSessionOptionsSetProperty() * * Summary: * Sets the value of a specific property of a compression session * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsSetProperty( ICMCompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress); /* */ enum { /* * Indicates no limit on the number of frames in the compression * window. */ kICMUnlimitedFrameDelayCount = -1L, /* * Indicates no time limit on the number of frames in the compression * window. */ kICMUnlimitedFrameDelayTime = -1L, /* * Indicates no CPU time limit on compression. */ kICMUnlimitedCPUTimeBudget = -1L }; /* * ICMDataRateLimit * * Summary: * A hard limit on the data rate. * * Discussion: * A hard limit is described by a data size in bytes and a duration * in seconds, and requires that the total size of compressed data * for any continuous segment of that duration (in decode time) must * not exceed the provided data size. */ struct ICMDataRateLimit { /* * The number of bytes. */ SInt32 dataSize; /* * The number of seconds. */ Float32 dataDuration; }; typedef struct ICMDataRateLimit ICMDataRateLimit; /* * Summary: * Scaling modes * * Discussion: * These constants indicate how source frames to a compression * session should be scaled if the dimensions and/or display aspect * ratio do not match. */ enum { /* * The full width and height of source frames shall be scaled to the * full width and height of the destination. This is the default if * no other scaling mode is specified. */ kICMScalingMode_StretchProductionAperture = FOUR_CHAR_CODE('sp2p'), /* * The clean aperture of the source frames shall be scaled to the * clean aperture of the destination. */ kICMScalingMode_StretchCleanAperture = FOUR_CHAR_CODE('sc2c'), /* * The clean aperture of the source frames shall be scaled to fit * inside the clean aperture of the destination, preserving the * original display aspect ratio. If the display aspect ratios are * different, the source frames will be centered with black bars * above and below, or to the left and right. */ kICMScalingMode_Letterbox = FOUR_CHAR_CODE('lett'), /* * The clean aperture of the source frames shall be scaled to cover * the clean aperture of the destination, preserving the original * display aspect ratio. If the display aspect ratios are different, * the source frames will be centered and cropped. */ kICMScalingMode_Trim = FOUR_CHAR_CODE('trim') }; /* * ICMSimpleBoundaryConditions * * Summary: * Indicates whether and how a compression session's frames will be * concatenated with other compressed frames to form a longer series. * * Discussion: * Some clients divide a long series of frames into several shorter * segments, each of which is then compressed by an independent * compression session. Boundary conditions tell the compressor * about how each session fits into the greater series: does this * session stand alone, or will it be used to encode the first * segment, a middle segment, or the last segment in a longer * continuum? * This information enables compressors to ensure that compressed * segments can be concatenated smoothly -- for example, avoiding * data rate spikes where segments are joined. * By default, a session is assumed to stand alone. */ struct ICMSimpleBoundaryConditions { /* * True if frames compressed in a separate session will be * concatenated before the beginning of this one. False if this is a * stand-alone session, or if this session will encode the first * segment of a multi-segment compression. By default, false. */ Boolean moreFramesBeforeStart; /* * True if frames compressed in a separate session will be * concatenated following the end of this one. False if this is a * stand-alone session, or if this session will encode the last * segment of a multi-segment compression. By default, false. */ Boolean moreFramesAfterEnd; }; typedef struct ICMSimpleBoundaryConditions ICMSimpleBoundaryConditions; /* * Summary: * Properties of compression sessions options objects. */ enum { /* * Class identifier for compression session options object properties. */ kQTPropertyClass_ICMCompressionSessionOptions = FOUR_CHAR_CODE('icso'), /* * Enables temporal compression. By default, temporal compression is * disabled. * IMPORTANT: If you want temporal compression (P frames and/or B * frames) you must set this to true. */ kICMCompressionSessionOptionsPropertyID_AllowTemporalCompression = FOUR_CHAR_CODE('p ok'), /* Boolean, Read/Write */ /* * Enables frame reordering. * In order to encode B frames, a compressor must reorder frames, * which means that the order in which they will be emitted and * stored (the decode order) is different from the order in which * they were presented to the compressor (the display order). * By default, frame reordering is disabled. * IMPORTANT: In order to encode using B frames, you must enable * frame reordering. */ kICMCompressionSessionOptionsPropertyID_AllowFrameReordering = FOUR_CHAR_CODE('b ok'), /* Boolean, Read/Write */ /* * Indicates that durations of emitted frames are needed. * If this flag is set and source frames are provided with times but * not durations, then frames will be delayed so that durations can * be calculated as the difference between one frame's time stamp and * the next frame's time stamp. * By default, this flag is clear, so frames will not be delayed in * order to calculate durations. * IMPORTANT: If you will be passing encoded frames to * AddMediaSampleFromEncodedFrame, you must set this flag to true. */ kICMCompressionSessionOptionsPropertyID_DurationsNeeded = FOUR_CHAR_CODE('need'), /* Boolean, Read/Write */ /* * The maximum interval between key frames, also known as the key * frame rate. * Key frames, also known as sync frames, reset inter-frame * dependencies; decoding a key frame is sufficient to prepare a * decompressor for correctly decoding the difference frames that * follow. * Compressors are allowed to generate key frames more frequently if * this would result in more efficient compression. * The default key frame interval is 0, which indicates that the * compressor should choose where to place all key frames. A key * frame interval of 1 indicates that every frame must be a key * frame, 2 indicates that at least every other frame must be a key * frame, etc. */ kICMCompressionSessionOptionsPropertyID_MaxKeyFrameInterval = FOUR_CHAR_CODE('kyfr'), /* SInt32, Read/Write */ /* * The requested maximum interval between partial sync frames. If the * interval is n, any sequence of n successive frames must include at * least one key or partial sync frame. * Where supported, partial sync frames perform a partial reset of * inter-frame dependencies; decoding two partial sync frames and the * non-droppable difference frames between them is sufficient to * prepare a decompressor for correctly decoding the difference * frames that follow. * Compressors are allowed to generate partial sync frames more * frequently if this would result in more efficient compression. * * The default partial sync frame interval is 0, which indicates that * the compressor should choose where to place partial sync frames. A * partial sync frame interval of 1 means there can be no difference * frames, so it is equivalent to a key frame interval of 1. A * partial sync frame interval of 2 means that every other frame must * be a key frame or a partial sync frame. * Compressors that do not support partial sync frames will ignore * this setting. */ kICMCompressionSessionOptionsPropertyID_MaxPartialSyncFrameInterval = FOUR_CHAR_CODE('psfr'), /* SInt32, Read/Write */ /* * Enables the compressor to modify frame times. * Some compressors are able to identify and coalesce runs of * identical frames and output single frames with longer duration, or * output frames at a different frame rate from the original. This * feature is controlled by the "allow frame time changes" flag. By * default, this flag is set to false, which forces compressors to * emit one encoded frame for every source frame, and to preserve * frame display times. * (Note: this feature replaces the practice of having compressors * return special high similarity values to indicate that frames * could be dropped.) * If you want to allow the compressor to modify frame times in order * to improve compression performance, enable frame time changes. */ kICMCompressionSessionOptionsPropertyID_AllowFrameTimeChanges = FOUR_CHAR_CODE('+ ok'), /* Boolean, Read/Write */ /* * Enables the compressor to call the encoded-frame callback from a * different thread. * By default, the flag is false, which means that the compressor * must call the encoded-frame callback from the same thread that * ICMCompressionSessionEncodeFrame and * ICMCompressionSessionCompleteFrames were called on. */ kICMCompressionSessionOptionsPropertyID_AllowAsyncCompletion = FOUR_CHAR_CODE('asok'), /* Boolean, Read/Write */ /* * The maximum frame delay count is the maximum number of frames that * a compressor is allowed to hold before it must output a compressed * frame. It limits the number of frames that may be held in the * "compression window". If the maximum frame delay count is M, then * before the call to encode frame N returns, frame N-M must have * been emitted. * The default is kICMUnlimitedFrameDelayCount, which sets no limit * on the compression window. */ kICMCompressionSessionOptionsPropertyID_MaxFrameDelayCount = FOUR_CHAR_CODE('cwin'), /* SInt32, Read/Write */ /* * The maximum frame delay time is the maximum difference between a * source frame's display time and the corresponding encoded frame's * decode time. It limits the span of display time that may be held * in the "compression window". If the maximum frame delay time is * TM, then before the call to encode a frame with display time TN * returns, all frames with display times up to and including TN-TM * must have been emitted. * The default is kICMUnlimitedFrameDelayTime, which sets no time * limit on the compression window. */ kICMCompressionSessionOptionsPropertyID_MaxFrameDelayTime = FOUR_CHAR_CODE('cwit'), /* TimeValue64, Read/Write */ /* * Sets a specific compressor component or component instance to be * used, or one of the wildcards anyCodec, bestSpeedCodec, * bestFidelityCodec, or bestCompressionCodec. * Use this API to force the Image Compression Manager to use a * specific compressor component or compressor component instance. * (If you pass in a component instance that you opened, the ICM will * not close that instance; you must do so after the compression * session is released.) To allow the Image Compression Manager to * choose the compressor component, set the compressorComponent to * anyCodec (the default), bestSpeedCodec, bestFidelityCodec or * bestCompressionCodec. */ kICMCompressionSessionOptionsPropertyID_CompressorComponent = FOUR_CHAR_CODE('imco'), /* CompressorComponent, Read/Write */ /* * A handle containing compressor settings. The compressor will be * configured with these settings (by a call to * ImageCodecSetSettings) during ICMCompressionSessionCreate. */ kICMCompressionSessionOptionsPropertyID_CompressorSettings = FOUR_CHAR_CODE('cost'), /* Handle, Read/Write */ /* * The depth for compression. * If a compressor does not support a specific depth, the closest * supported depth will be used (preferring deeper depths to * shallower depths). The default depth is k24RGBPixelFormat. */ kICMCompressionSessionOptionsPropertyID_Depth = FOUR_CHAR_CODE('deep'), /* UInt32, Read/Write */ /* * The color table for compression. Used with indexed-color depths. * * Clients who get this property are responsible for disposing the * returned CTabHandle. */ kICMCompressionSessionOptionsPropertyID_ColorTable = FOUR_CHAR_CODE('clut'), /* CTabHandle, Read/Write*/ /* * The compression quality. * This value is always used to set the spatialQuality; if temporal * compression is enabled, it is also used to set temporalQuality. *
The default quality is codecNormalQuality. */ kICMCompressionSessionOptionsPropertyID_Quality = FOUR_CHAR_CODE('qual'), /* CodecQ, Read/Write */ /* * The long-term desired average data rate in bytes per second. * This is not a hard limit. * The default data rate is zero, which indicates that the quality * setting should determine the size of compressed data. * Note that data rate settings only have an effect when timing * information is provided for source frames, and that some codecs do * not support limiting to specified data rates. */ kICMCompressionSessionOptionsPropertyID_AverageDataRate = FOUR_CHAR_CODE('aver'), /* SInt32, Read/Write */ /* * Zero, one or two hard limits on data rate. * Each hard limit is described by a data size in bytes and a * duration in seconds, and requires that the total size of * compressed data for any contiguous segment of that duration (in * decode time) must not exceed the data size. * By default, no data rate limits are set. * When setting this property, the inPropValueSize parameter should * be the number of data rate limits multiplied by * sizeof(ICMDataRateLimit). * Note that data rate settings only have an effect when timing * information is provided for source frames, and that some codecs do * not support limiting to specified data rates. */ kICMCompressionSessionOptionsPropertyID_DataRateLimits = FOUR_CHAR_CODE('hard'), /* C array of ICMDataRateLimit struct, Read/Write */ /* * The current number of data rate limits. */ kICMCompressionSessionOptionsPropertyID_DataRateLimitCount = FOUR_CHAR_CODE('har#'), /* UInt32, Read */ /* * The maximum allowed number of data rate limits. (Currently 2.) */ kICMCompressionSessionOptionsPropertyID_MaxDataRateLimits = FOUR_CHAR_CODE('mhar'), /* UInt32, Read */ /* * Indicates that the source was previously compressed. * This property is purely an optional, informational hint to the * compressor; by default it is false. */ kICMCompressionSessionOptionsPropertyID_WasCompressed = FOUR_CHAR_CODE('wasc'), /* Boolean, Read/Write */ /* * Recommends a CPU time budget for the compressor in microseconds * per frame. * Zero means to go as fast as possible. * By default, this is set to kICMUnlimitedCPUTimeBudget, which sets * no limit. * This is an advisory hint to the compressor, and some compressors * may ignore it. Multithreaded compressors may use this amount of * CPU time on each processor. * Compressors should not feel compelled to use the full time budget * if they complete ahead of time! */ kICMCompressionSessionOptionsPropertyID_CPUTimeBudget = FOUR_CHAR_CODE('cput'), /* UInt32, Read/Write */ /* * Storage for multi-pass compression. * To enable multipass compression, the client must provide a storage * location for multipass data. Use * ICMMultiPassStorageCreateWithTemporaryFile to have the ICM store * it in a temporary file. Use * ICMMultiPassStorageCreateWithCallbacks to manage the storage * yourself. * Note that the amount of multipass data to be stored can be * substantial; it could be greater than the size of the output movie * file. * If this property is not NULL, the client must call * ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass * around groups of calls to ICMCompressionSessionEncodeFrame. * By default, this property is NULL and multipass compression is * not enabled. The compression session options object retains the * multipass storage object, when one is set. */ kICMCompressionSessionOptionsPropertyID_MultiPassStorage = FOUR_CHAR_CODE('imps'), /* ICMMultiPassStorageRef, Read/Write */ /* * Indicates the number of source frames, if known. If nonzero, this * should be the exact number of times that the client calls * ICMCompressionSessionEncodeFrame in each pass. * The default is 0, which indicates that the number of source frames * is not known. */ kICMCompressionSessionOptionsPropertyID_SourceFrameCount = FOUR_CHAR_CODE('frco'), /* UInt64, Read/Write */ /* * Indicates the expected frame rate, if known. The frame rate is * measured in frames per second. This is not used to control the * frame rate; it is provided as a hint to the compressor so that it * can set up internal configuration before compression begins. The * actual frame rate will depend on frame durations and may vary. By * default, this is zero, indicating "unknown". */ kICMCompressionSessionOptionsPropertyID_ExpectedFrameRate = FOUR_CHAR_CODE('fran'), /* Fixed, Read/Write */ /* * Indicates how source frames to a compression session should be * scaled if the dimensions and/or display aspect ratio do not match. */ kICMCompressionSessionOptionsPropertyID_ScalingMode = FOUR_CHAR_CODE('scam'), /* OSType, Read/Write */ /* * Describes the clean aperture for compressed frames. Note that if * the compressor enforces a clean aperture, it will override this * setting. The clean aperture will be set on the output image * description and may affect scaling in some scaling modes. By * default, this is all zeros, meaning unset. */ kICMCompressionSessionOptionsPropertyID_CleanAperture = FOUR_CHAR_CODE('clap'), /* Native-endian CleanApertureImageDescriptionExtension, Read/Write */ /* * Describes the pixel aspect ratio for compressed frames. Note that * if the compressor enforces a pixel aspect ratio, it will override * this setting. The pixel aspect ratio will be set on the output * image description and may affect scaling in some scaling modes. By * default, this is all zeros, meaning unset. */ kICMCompressionSessionOptionsPropertyID_PixelAspectRatio = FOUR_CHAR_CODE('pasp'), /* Native-endian PixelAspectRatioImageDescriptionExtension, Read/Write */ /* * Describes the number and order of fields for compressed frames. * Note that if the compressor enforces field info, it will override * this setting. The field info will be set on the output image * description and may affect scaling in some scaling modes. By * default, this is all zeros, meaning unset. */ kICMCompressionSessionOptionsPropertyID_FieldInfo = FOUR_CHAR_CODE('fiel'), /* FieldInfoImageDescriptionExtension2, Read/Write */ /* * Indicates whether and how a compression session's frames will be * concatenated with other compressed frames to form a longer series. */ kICMCompressionSessionOptionsPropertyID_SimpleBoundaryConditions = FOUR_CHAR_CODE('ends'), /* ICMSimpleBoundaryConditions struct, Read/Write */ /* * Requests additional distortion to be applied to the aspect ratio * in the kICMScalingMode_Letterbox and kICMScalingMode_Trim scaling * modes. Values greater than fixed1 mean wider, values less than * fixed1 mean narrower. For example, a value of X2Fix(2.0) would * make the picture aspect ratio twice as wide. */ kICMCompressionSessionOptionsPropertyID_ExtraAspectRatioStretchFactor = FOUR_CHAR_CODE('exsf') /* Fixed, Default fixed1, Read/Write */ }; /* * ICMCompressionSessionOptionsSetAllowTemporalCompression() * * Summary: * Enables temporal compression. * * Discussion: * By default, temporal compression is disabled. * IMPORTANT: If you want temporal compression (P frames and/or B * frames) you must set this to true. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsSetAllowTemporalCompression( ICMCompressionSessionOptionsRef options, Boolean allowTemporalCompression); /* * ICMCompressionSessionOptionsGetAllowTemporalCompression() * * Summary: * Retrieves the allow temporal compression flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Boolean ) ICMCompressionSessionOptionsGetAllowTemporalCompression(ICMCompressionSessionOptionsRef options); /* * ICMCompressionSessionOptionsSetAllowFrameReordering() * * Summary: * Enables frame reordering. * * Discussion: * In order to encode B frames, a compressor must reorder frames, * which means that the order in which they will be emitted and * stored (the decode order) is different from the order in which * they were presented to the compressor (the display order). * By default, frame reordering is disabled. * IMPORTANT: In order to encode using B frames, you must enable * frame reordering. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsSetAllowFrameReordering( ICMCompressionSessionOptionsRef options, Boolean allowFrameReordering); /* * ICMCompressionSessionOptionsGetAllowFrameReordering() * * Summary: * Retrieves the allow frame reordering flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Boolean ) ICMCompressionSessionOptionsGetAllowFrameReordering(ICMCompressionSessionOptionsRef options); /* * ICMCompressionSessionOptionsSetDurationsNeeded() * * Summary: * Indicates that durations of emitted frames are needed. * * Discussion: * If this flag is set and source frames are provided with times but * not durations, then frames will be delayed so that durations can * be calculated as the difference between one frame's time stamp * and the next frame's time stamp. * By default, this flag is clear, so frames will not be delayed in * order to calculate durations. * IMPORTANT: If you will be passing encoded frames to * AddMediaSampleFromEncodedFrame, you must set this flag to true. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsSetDurationsNeeded( ICMCompressionSessionOptionsRef options, Boolean decodeDurationsNeeded); /* * ICMCompressionSessionOptionsGetDurationsNeeded() * * Summary: * Retrieves the "durations needed" flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Boolean ) ICMCompressionSessionOptionsGetDurationsNeeded(ICMCompressionSessionOptionsRef options); /* * ICMCompressionSessionOptionsSetMaxKeyFrameInterval() * * Summary: * Sets the maximum interval between key frames (also known as the * key frame rate). * * Discussion: * Compressors are allowed to generate key frames more frequently if * this would result in more efficient compression. * The default key frame interval is 0, which indicates that the * compressor should choose where to place all key frames. * (Note: this is a break with previous practice, which used a key * frame rate of zero to disable temporal compression.) * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsSetMaxKeyFrameInterval( ICMCompressionSessionOptionsRef options, SInt32 maxKeyFrameInterval); /* * ICMCompressionSessionOptionsGetMaxKeyFrameInterval() * * Summary: * Retrieves the maximum key frame interval. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( SInt32 ) ICMCompressionSessionOptionsGetMaxKeyFrameInterval(ICMCompressionSessionOptionsRef options); /* * ICMCompressionSessionOptionsSetAllowFrameTimeChanges() * * Summary: * Enables the compressor to modify frame times. * * Discussion: * Some compressors are able to identify and coalesce runs of * identical frames and output single frames with longer duration, * or output frames at a different frame rate from the original. * This feature is controlled by the "allow frame time changes" * flag. By default, this flag is set to false, which forces * compressors to emit one encoded frame for every source frame, and * to preserve frame display times. * (Note: this feature replaces the practice of having compressors * return special high similarity values to indicate that frames * could be dropped.) * If you want to allow the compressor to modify frame times in * order to improve compression performance, enable frame time * changes. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionSessionOptionsSetAllowFrameTimeChanges( ICMCompressionSessionOptionsRef options, Boolean allowFrameTimeChanges); /* * ICMCompressionSessionOptionsGetAllowFrameTimeChanges() * * Summary: * Retrieves the allow frame time changes flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Boolean ) ICMCompressionSessionOptionsGetAllowFrameTimeChanges(ICMCompressionSessionOptionsRef options); /* ICMMultiPassStorageRef routines */ /* * ICMMultiPassStorageCreationFlags * */ typedef UInt32 ICMMultiPassStorageCreationFlags; enum { /* * Indicates that the temporary file should not be deleted when the * multipass storage is released. */ kICMMultiPassStorage_DoNotDeleteWhenDone = 1L << 0 }; /* * ICMMultiPassStorageCreateWithTemporaryFile() * * Summary: * Creates a multipass storage using a temporary file. * * Discussion: * If you pass NULL for directoryRef, the ICM will use the user's * temporary items folder. * If you pass NULL for fileName, the ICM will pick a unique name. * * The file will be deleted when the multipass storage is released, * unless you set the kICMMultiPassStorage_DoNotDeleteWhenDone flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMMultiPassStorageCreateWithTemporaryFile( CFAllocatorRef allocator, /* can be NULL */ FSRef * directoryRef, /* can be NULL */ CFStringRef fileName, /* can be NULL */ ICMMultiPassStorageCreationFlags flags, ICMMultiPassStorageRef * multiPassStorageOut); /* * ICMMultiPassStorageStep * * Summary: * Indicates a jump in time stamps used to index multipass storage. */ typedef UInt32 ICMMultiPassStorageStep; enum { /* * Requests the first time stamp at which a value is stored. */ kICMMultiPassStorage_GetFirstTimeStamp = 1, /* * Requests the previous time stamp before the given time stamp at * which a value is stored. */ kICMMultiPassStorage_GetPreviousTimeStamp = 2, /* * Requests the next time stamp after the given time stamp at which a * value is stored. */ kICMMultiPassStorage_GetNextTimeStamp = 3, /* * Requests the last time stamp at which a value is stored. */ kICMMultiPassStorage_GetLastTimeStamp = 4 }; /* * ICMMultiPassSetDataAtTimeStampCallback * * Summary: * Stores a value at a given time stamp. * * Discussion: * The new data should replace any previous data held at that * timestamp with that index. * * Parameters: * * storageRefCon: * The callbacks' reference value. * * timeStamp: * The time stamp at which the value should be stored. * * index: * An index by which multiple values may be stored at a time * stamp. The meaning of individual indexes is private to the * compressor. * * data: * The data to be stored, or NULL to delete the value. The * contents are private to the compressor component. */ typedef CALLBACK_API_C( OSStatus , ICMMultiPassSetDataAtTimeStampCallback )(void *storageRefCon, TimeValue64 timeStamp, long index, CFDataRef data); /* * ICMMultiPassGetTimeStampCallback * * Summary: * Retrieves a time stamp for which a value is stored. * * Parameters: * * storageRefCon: * The callbacks' reference value. * * fromTimeStamp: * The initial time stamp. Ignored for some values of step. * * step: * Indicates the kind of time stamp search to perform. * * timeStampOut: * Points to a TimeValue64 to receive the found time stamp. Set to * -1 if no time stamp is found. */ typedef CALLBACK_API_C( OSStatus , ICMMultiPassGetTimeStampCallback )(void *storageRefCon, TimeValue64 fromTimeStamp, ICMMultiPassStorageStep step, TimeValue64 *timeStampOut); /* * ICMMultiPassCopyDataAtTimeStampCallback * * Summary: * Retrieves a value at a given time stamp and index. * * Parameters: * * storageRefCon: * The callbacks' reference value. * * timeStamp: * The time stamp at which the value should be retrieved. * * index: * An index by which multiple values may be stored at a time * stamp. The meaning of individual indexes is private to the * compressor. * * dataOut: * Points to a variable to receive the value. Set to a * newly-created CFMutableData containing the value for the given * time stamp and index, or set to NULL if no value is at that * time stamp and index. It will be the callers responsibility to * release the CFMutableData. */ typedef CALLBACK_API_C( OSStatus , ICMMultiPassCopyDataAtTimeStampCallback )(void *storageRefCon, TimeValue64 timeStamp, long index, CFMutableDataRef *dataOut); /* * ICMMultiPassReleaseCallback * * Summary: * Called when the multipass storage's retain count drops to zero. * * Parameters: * * storageRefCon: * The callbacks' reference value. */ typedef CALLBACK_API_C( OSStatus , ICMMultiPassReleaseCallback )(void * storageRefCon); /* * ICMMultiPassStorageCallbacks * * Summary: * A collection of callbacks for creating a custom multipass storage * object. */ struct ICMMultiPassStorageCallbacks { /* * The version of the struct. Set to * kICMMultiPassStorageCallbacksVersionOne. */ UInt32 version; /* * The callbacks' reference value. */ void * storageRefCon; /* * The callback for storing values. */ ICMMultiPassSetDataAtTimeStampCallback setDataAtTimeStampCallback; /* * The callback for finding time stamps. */ ICMMultiPassGetTimeStampCallback getTimeStampCallback; /* * The callback for retrieving values. */ ICMMultiPassCopyDataAtTimeStampCallback copyDataAtTimeStampCallback; /* * The callback for disposing the callback's state when done. */ ICMMultiPassReleaseCallback releaseCallback; }; typedef struct ICMMultiPassStorageCallbacks ICMMultiPassStorageCallbacks; enum { kICMMultiPassStorageCallbacksVersionOne = 1 }; /* * ICMMultiPassStorageCreateWithCallbacks() * * Summary: * Assembles a multipass storage mechanism from callbacks. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMMultiPassStorageCreateWithCallbacks( CFAllocatorRef allocator, /* can be NULL */ ICMMultiPassStorageCallbacks * callbacks, ICMMultiPassStorageRef * multiPassStorageOut); /* * ICMMultiPassStorageRetain() * * Summary: * Increments the retain count of a multipass storage object. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMMultiPassStorageRef ) ICMMultiPassStorageRetain(ICMMultiPassStorageRef multiPassStorage); /* * ICMMultiPassStorageRelease() * * Summary: * Decrements the retain count of a multipass storage object. If it * drops to zero, the object is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMMultiPassStorageRelease(ICMMultiPassStorageRef multiPassStorage); /* * ICMMultiPassStorageGetTypeID() * * Summary: * Returns the CFTypeID for multipass storage objects. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMMultiPassStorageGetTypeID(void); /* ICMCompressionFrameOptionsRef routines */ /* * ICMCompressionFrameOptionsCreate() * * Summary: * Creates a frame compression options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionFrameOptionsCreate( CFAllocatorRef allocator, /* can be NULL */ ICMCompressionSessionRef session, ICMCompressionFrameOptionsRef * options); /* * ICMCompressionFrameOptionsCreateCopy() * * Summary: * Copies a frame compression options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionFrameOptionsCreateCopy( CFAllocatorRef allocator, /* can be NULL */ ICMCompressionFrameOptionsRef originalOptions, ICMCompressionFrameOptionsRef * copiedOptions); /* * ICMCompressionFrameOptionsRetain() * * Summary: * Increments the retain count of a frame compression options object. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMCompressionFrameOptionsRef ) ICMCompressionFrameOptionsRetain(ICMCompressionFrameOptionsRef options); /* * ICMCompressionFrameOptionsRelease() * * Summary: * Decrements the retain count of a frame compression options * object. If it drops to zero, the object is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMCompressionFrameOptionsRelease(ICMCompressionFrameOptionsRef options); /* * ICMCompressionFrameOptionsGetTypeID() * * Summary: * Returns the CFTypeID for frame compression options objects. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMCompressionFrameOptionsGetTypeID(void); /* * ICMCompressionFrameOptionsGetPropertyInfo() * * Summary: * Retrieves information about properties of a compression frame * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionFrameOptionsGetPropertyInfo( ICMCompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType * outPropType, /* can be NULL */ ByteCount * outPropValueSize, /* can be NULL */ UInt32 * outPropertyFlags); /* can be NULL */ /* * ICMCompressionFrameOptionsGetProperty() * * Summary: * Retrieves the value of a specific property of a compression frame * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionFrameOptionsGetProperty( ICMCompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount * outPropValueSizeUsed); /* can be NULL */ /* * ICMCompressionFrameOptionsSetProperty() * * Summary: * Sets the value of a specific property of a compression frame * options object. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionFrameOptionsSetProperty( ICMCompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress); /* * Summary: * Properties of compression frame options objects. */ enum { /* * Class identifier for compression frame options object properties. */ kQTPropertyClass_ICMCompressionFrameOptions = FOUR_CHAR_CODE('icfo'), /* * Forces frames to be compressed as key frames. * The compressor must obey the "force key frame" flag if set. By * default this property is false. */ kICMCompressionFrameOptionsPropertyID_ForceKeyFrame = FOUR_CHAR_CODE('keyf'), /* Boolean, Read/Write */ /* * Requests a frame be compressed as a particular frame type. * The frame type setting may be ignored by the compressor if not * appropriate. * By default this is set to kICMFrameType_Unknown. * Do not assume that kICMFrameType_I means a key frame; if you need * a key frame, set the "force key frame" property. */ kICMCompressionFrameOptionsPropertyID_FrameType = FOUR_CHAR_CODE('frty') /* ICMFrameType, Read/Write */ }; /* * ICMCompressionFrameOptionsSetForceKeyFrame() * * Summary: * Forces frames to be compressed as key frames. * * Discussion: * The compressor must obey the "force key frame" flag if set. By * default this is set false. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionFrameOptionsSetForceKeyFrame( ICMCompressionFrameOptionsRef options, Boolean forceKeyFrame); /* * ICMCompressionFrameOptionsGetForceKeyFrame() * * Summary: * Retrieves the "force key frame" flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Boolean ) ICMCompressionFrameOptionsGetForceKeyFrame(ICMCompressionFrameOptionsRef options); /* * ICMCompressionFrameOptionsSetFrameType() * * Summary: * Requests a frame be compressed as a particular frame type. * * Discussion: * The frame type setting may be ignored by the compressor if not * appropriate. * By default this is set to kICMFrameType_Unknown. * Do not assume that kICMFrameType_I means a key frame; if you need * a key frame, set forceKeyFrame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressionFrameOptionsSetFrameType( ICMCompressionFrameOptionsRef options, ICMFrameType frameType); /* * ICMCompressionFrameOptionsGetFrameType() * * Summary: * Retrieves the frame type setting. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMFrameType ) ICMCompressionFrameOptionsGetFrameType(ICMCompressionFrameOptionsRef options); /* ICMEncodedFrameRef routines */ /* * ICMEncodedFrameRetain() * * Summary: * Increments the retain count of an encoded frame object. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMEncodedFrameRef ) ICMEncodedFrameRetain(ICMEncodedFrameRef frame); /* * ICMEncodedFrameRelease() * * Summary: * Decrements the retain count of an encoded frame object. If it * drops to zero, the object is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMEncodedFrameRelease(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetTypeID() * * Summary: * Returns the CFTypeID for encoded frame objects. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMEncodedFrameGetTypeID(void); /* * ICMEncodedFrameGetDataPtr() * * Summary: * Gets the data buffer. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( UInt8 * ) ICMEncodedFrameGetDataPtr(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetBufferSize() * * Summary: * Gets the size of the data buffer. * * Discussion: * This is the physical size of the buffer. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ByteCount ) ICMEncodedFrameGetBufferSize(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetDataSize() * * Summary: * Gets the data size of the compressed frame in the buffer. * * Discussion: * This is the logical size of the frame data. It may be less than * the physical size of the buffer. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ByteCount ) ICMEncodedFrameGetDataSize(ICMEncodedFrameRef frame); /* * ICMEncodedFrameSetDataSize() * * Summary: * Sets the data size of the compressed frame in the buffer. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetDataSize( ICMMutableEncodedFrameRef frame, ByteCount dataSize); /* * ICMEncodedFrameGetDecodeNumber() * * Summary: * Retrieves the decode number. * * Discussion: * The ICM automatically stamps ascending decode numbers on frames * after the compressor emits them. The first decode number in a * session is 1. * Note: Compressors should not call this function. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( UInt32 ) ICMEncodedFrameGetDecodeNumber(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetTimeScale() * * Summary: * Retrieves the timescale. * * Discussion: * This is always the same as the timescale of the compression * session. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( TimeScale ) ICMEncodedFrameGetTimeScale(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetImageDescription() * * Summary: * Retrieves the image description. * * Discussion: * Returns the same image description handle as * ICMCompressionSessionGetImageDescription. * IMPORTANT: The caller should NOT dispose this handle. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameGetImageDescription( ICMEncodedFrameRef frame, ImageDescriptionHandle * imageDescOut); /* * ICMEncodedFrameGetValidTimeFlags() * * Summary: * Retrieves flags indicating which of the time stamps and durations * are valid. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMValidTimeFlags ) ICMEncodedFrameGetValidTimeFlags(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetDecodeTimeStamp() * * Summary: * Retrieves the frame's decode time stamp. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( TimeValue64 ) ICMEncodedFrameGetDecodeTimeStamp(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetDisplayTimeStamp() * * Summary: * Retrieves the frame's display time stamp. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( TimeValue64 ) ICMEncodedFrameGetDisplayTimeStamp(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetDisplayOffset() * * Summary: * Retrieves the frame's display offset, which is the offset from * decode time stamp to display time stamp. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( TimeValue64 ) ICMEncodedFrameGetDisplayOffset(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetDecodeDuration() * * Summary: * Retrieves the frame's decode duration. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( TimeValue64 ) ICMEncodedFrameGetDecodeDuration(ICMEncodedFrameRef frame); /* * ICMEncodedFrameGetDisplayDuration() * * Summary: * Retrieves the frame's display duration. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( TimeValue64 ) ICMEncodedFrameGetDisplayDuration(ICMEncodedFrameRef frame); /* * ICMEncodedFrameSetValidTimeFlags() * * Summary: * Sets flags that indicate which of the time stamps and durations * are valid. * * Discussion: * Note that setting the (decode/display) (timestamp/duration) * automatically sets the corresponding valid time flags. For * example, calling ICMEncodedFrameSetDecodeTimeStamp sets * kICMValidTime_DisplayTimeStampIsValid. If both decode timestamp * and display timestamp are valid, * kICMValidTime_DisplayOffsetIsValid is automatically set. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetValidTimeFlags( ICMMutableEncodedFrameRef frame, ICMValidTimeFlags validTimeFlags); /* * ICMEncodedFrameSetDecodeTimeStamp() * * Summary: * Sets the decode time stamp. * * Discussion: * This automatically sets the kICMValidTime_DecodeTimeStampIsValid * flag. If the display timestamp is valid, it also sets the * kICMValidTime_DisplayOffsetIsValid flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetDecodeTimeStamp( ICMMutableEncodedFrameRef frame, TimeValue64 decodeTimeStamp); /* * ICMEncodedFrameSetDisplayTimeStamp() * * Summary: * Sets the display time stamp. * * Discussion: * This automatically sets the kICMValidTime_DisplayTimeStampIsValid * flag. If the decode timestamp is valid, it also sets the * kICMValidTime_DisplayOffsetIsValid flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetDisplayTimeStamp( ICMMutableEncodedFrameRef frame, TimeValue64 displayTimeStamp); /* * ICMEncodedFrameSetDecodeDuration() * * Summary: * Sets the decode duration. * * Discussion: * This automatically sets the kICMValidTime_DecodeDurationIsValid * flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetDecodeDuration( ICMMutableEncodedFrameRef frame, TimeValue64 decodeDuration); /* * ICMEncodedFrameSetDisplayDuration() * * Summary: * Sets the display duration. * * Discussion: * This automatically sets the kICMValidTime_DisplayDurationIsValid * flag. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetDisplayDuration( ICMMutableEncodedFrameRef frame, TimeValue64 displayDuration); /* * ICMEncodedFrameGetMediaSampleFlags() * * Summary: * Retrieves the media sample flags for an encoded frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( MediaSampleFlags ) ICMEncodedFrameGetMediaSampleFlags(ICMEncodedFrameRef frame); /* * ICMEncodedFrameSetMediaSampleFlags() * * Summary: * Sets the media sample flags for an encoded frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetMediaSampleFlags( ICMMutableEncodedFrameRef frame, MediaSampleFlags mediaSampleFlags); /* * ICMEncodedFrameGetFrameType() * * Summary: * Retrieves the frame type for an encoded frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMFrameType ) ICMEncodedFrameGetFrameType(ICMEncodedFrameRef frame); /* * ICMEncodedFrameSetFrameType() * * Summary: * Sets the frame type for an encoded frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetFrameType( ICMMutableEncodedFrameRef frame, ICMFrameType frameType); /* * ICMEncodedFrameGetSimilarity() * * Summary: * Retrieves the similarity for an encoded frame. * * Discussion: * 1.0 means identical. 0.0 means not at all alike. By default, * this is set to -1.0, which means unknown. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Float32 ) ICMEncodedFrameGetSimilarity(ICMEncodedFrameRef frame); /* * ICMEncodedFrameSetSimilarity() * * Summary: * Sets the similarity for an encoded frame. * * Discussion: * 1.0 means identical. 0.0 means not at all alike. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameSetSimilarity( ICMMutableEncodedFrameRef frame, Float32 similarity); /* * ICMEncodedFrameGetSourceFrameRefCon() * * Summary: * Retrieves the source frame reference value. * * Discussion: * This is copied from the sourceFrameRefCon parameter to * ICMCompressionSessionEncodeFrame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void * ) ICMEncodedFrameGetSourceFrameRefCon(ICMEncodedFrameRef frame); /* ICMCompressorSession interface for compressor components */ /* * ICMCompressorSessionRef * * Summary: * Represents the session between the ICM and an image compressor * component. * * Discussion: * (Do not confuse this with ICMCompressionSessionRef, which is the * session between the client and the ICM.) Note: compressors do not * need to make any retain or release calls on this token. */ typedef struct OpaqueICMCompressorSession* ICMCompressorSessionRef; /* * ICMCompressorSourceFrameRef * * Summary: * An opaque token that represents a frame that has been passed to * ICMCompressionSessionEncodeFrame. * * Discussion: * Such tokens are passed to the compressor component, which may * retain a window of them in order to perform out-of-order encoding. */ typedef struct OpaqueICMCompressorSourceFrame* ICMCompressorSourceFrameRef; /* * ICMCompressorSourceFrameRetain() * * Summary: * Increments the retain count of a source frame object. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMCompressorSourceFrameRef ) ICMCompressorSourceFrameRetain(ICMCompressorSourceFrameRef sourceFrame); /* * ICMCompressorSourceFrameRelease() * * Summary: * Decrements the retain count of a source frame object. If it * drops to zero, the object is disposed. * * Discussion: * If you pass NULL to this function, nothing happens. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) ICMCompressorSourceFrameRelease(ICMCompressorSourceFrameRef sourceFrame); /* * ICMCompressorSourceFrameGetTypeID() * * Summary: * Returns the CFTypeID for source frame objects. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) ICMCompressorSourceFrameGetTypeID(void); /* * ICMCompressorSourceFrameGetPixelBuffer() * * Summary: * Retrieves a source frame's pixel buffer. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CVPixelBufferRef ) ICMCompressorSourceFrameGetPixelBuffer(ICMCompressorSourceFrameRef sourceFrame); /* * ICMCompressorSourceFrameGetDisplayNumber() * * Summary: * Retrieves a source frame's display number. * * Discussion: * The ICM tags source frames with display numbers in the order they * are passed to ICMCompressionSessionEncodeFrame; the first display * number is 1. Compressors may compare these numbers to work out * whether prediction is forward or backward even when display times * are not provided. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( long ) ICMCompressorSourceFrameGetDisplayNumber(ICMCompressorSourceFrameRef sourceFrame); /* * ICMCompressorSourceFrameGetDisplayTimeStampAndDuration() * * Summary: * Retrieves the display time stamp and duration of a source frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressorSourceFrameGetDisplayTimeStampAndDuration( ICMCompressorSourceFrameRef sourceFrame, TimeValue64 * displayTimeStampOut, /* can be NULL */ TimeValue64 * displayDurationOut, /* can be NULL */ TimeScale * timeScaleOut, /* can be NULL */ ICMValidTimeFlags * validTimeFlagsOut); /* can be NULL */ /* * ICMCompressorSourceFrameGetFrameOptions() * * Summary: * Retrieves the frame compression options for a source frame. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( ICMCompressionFrameOptionsRef ) ICMCompressorSourceFrameGetFrameOptions(ICMCompressorSourceFrameRef sourceFrame); /* * ICMCompressorSourceFrameDetachPixelBuffer() * * Summary: * Disconnects the pixel buffer from the source frame and allows it * to be released. * * Discussion: * Compressor components often need to hold onto * ICMCompressorSourceFrameRefs for some time after they are done * with the pixel buffers. In order to allow pixel buffer memory to * be released earlier, they may call * ICMCompressorSourceFrameDetachPixelBuffer to declare that they * have no further need for the source frame's pixel buffer. After * calling this, ICMCompressorSourceFrameGetPixelBuffer will return * NULL. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressorSourceFrameDetachPixelBuffer(ICMCompressorSourceFrameRef sourceFrame); /* * ICMCompressorSessionDropFrame() * * Summary: * Called by a compressor to indicate that sourceFrame has been * dropped and will not contribute to any encoded frames. * * Discussion: * Calling this function does not automatically release the source * frame; if the compressor called ICMCompressorSourceFrameRetain it * should still call ICMCompressorSourceFrameRelease. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressorSessionDropFrame( ICMCompressorSessionRef session, ICMCompressorSourceFrameRef sourceFrame); /* * ICMCompressorSessionEmitEncodedFrame() * * Summary: * Called by a compressor to output an encoded frame corresponding * to one (or more) source frames. * * Discussion: * (Encoded frames may only correspond to more than one source frame * if allowFrameTimeChanges is set in the * compressionSessionOptions.) * After calling this, the compressor should release the encoded * frame by calling ICMEncodedFrameRelease. * Calling this function does not automatically release the source * frames; if the compressor called ICMCompressorSourceFrameRetain * it should still call ICMCompressorSourceFrameRelease. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMCompressorSessionEmitEncodedFrame( ICMCompressorSessionRef session, ICMMutableEncodedFrameRef encodedFrame, long numberOfSourceFrames, ICMCompressorSourceFrameRef sourceFrames[]); /* * ICMEncodedFrameCreateMutable() * * Summary: * Called by a compressor to create an encoded-frame token * corresponding to a given source frame. * * Discussion: * The encoded frame will initially have zero mediaSampleFlags; if * the frame is not a key frame, the compressor must call * ICMEncodedFrameSetMediaSampleFlags to set mediaSampleNotSync. If * the frame is droppable, the compressor should set * mediaSampleDroppable. If the frame is a partial key frame, the * compressor should set mediaSamplePartialSync. * The encoded frame will initially have undefined decodeTimeStamp * and decodeDuration. The compressor may set these directly by * calling ICMEncodedFrameSetDecodeTimeStamp and/or * ICMEncodedFrameSetDecodeDuration. If these are not set by the * compressor, the ICM will attempt to derive them. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMEncodedFrameCreateMutable( ICMCompressorSessionRef session, ICMCompressorSourceFrameRef sourceFrame, ByteCount bufferSize, ICMMutableEncodedFrameRef * frameOut); /* Multi-pass storage access routines for compressor components */ /* * ICMMultiPassStorageSetDataAtTimeStamp() * * Summary: * Called by a multipass-capable compressor to store data at a given * timestamp. * * Discussion: * The new data replaces any previous data held at that timestamp. * If data is NULL, the data for that timestamp is deleted. The * format of the data is private to the compressor. * * Parameters: * * multiPassStorage: * The multipass storage object. * * timeStamp: * The time stamp at which the value should be stored. * * index: * An index by which multiple values may be stored at a time * stamp. The meaning of individual indexes is private to the * compressor. * * data: * The data to be stored, or NULL to delete the value. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMMultiPassStorageSetDataAtTimeStamp( ICMMultiPassStorageRef multiPassStorage, TimeValue64 timeStamp, long index, CFDataRef data); /* * ICMMultiPassStorageGetTimeStamp() * * Summary: * Called by a multipass-capable compressor to retrieve a time stamp * for which a value is stored. * * Parameters: * * multiPassStorage: * The multipass storage object. * * fromTimeStamp: * The initial time stamp. Ignored for some values of step. * * step: * Indicates the kind of time stamp search to perform. * * timeStampOut: * Points to a TimeValue64 to receive the found time stamp. It * will be set to -1 if no time stamp is found. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMMultiPassStorageGetTimeStamp( ICMMultiPassStorageRef multiPassStorage, TimeValue64 fromTimeStamp, ICMMultiPassStorageStep step, TimeValue64 * timeStampOut); /* * ICMMultiPassStorageCopyDataAtTimeStamp() * * Summary: * Called by a multipass-capable compressor to retrieve data at a * given timestamp. * * Parameters: * * multiPassStorage: * The multipass storage object. * * timeStamp: * The time stamp at which the value should be retrieved. * * index: * An index by which multiple values may be stored at a time * stamp. The meaning of individual indexes is private to the * compressor. * * dataOut: * Points to a CFMutableDataRef to receive the value. It will be * set to a newly-created CFMutableData containing the value for * the given time stamp and index, or set to NULL if no value is * at that time stamp and index. It is the caller's responsibility * to release the CFMutableData. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) ICMMultiPassStorageCopyDataAtTimeStamp( ICMMultiPassStorageRef multiPassStorage, TimeValue64 timeStamp, long index, CFMutableDataRef * dataOut); #if TARGET_OS_MAC /* * kQTVisualContextTypeKey * * Summary: * Read-only CFStringRef: Type of the visual context. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextTypeKey; /* * kQTVisualContextType_PixelBuffer * * Summary: * Value for kQTVisualContextTypeKey for pixel buffer visual * contexts. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextType_PixelBuffer; /* * kQTVisualContextType_OpenGLTexture * * Summary: * Value for kQTVisualContextTypeKey for OpenGL texture visual * contexts. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextType_OpenGLTexture; /* * kQTVisualContextWorkingColorSpaceKey * * Summary: * CGColorSpaceRef: Color space in which QuickTime will perform * image processing. If this attribute is not set, images will be * processed in the output color space. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextWorkingColorSpaceKey; /* * kQTVisualContextOutputColorSpaceKey * * Summary: * CGColorSpaceRef: Color space of images produced by this visual * context. If this attribute is not set, images may be in any color * space. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextOutputColorSpaceKey; /* * kQTVisualContextExpectedReadAheadKey * * Summary: * CFNumberRef: Number of seconds ahead of real-time that the client * expects to pull images out of the visual context. Applications * using the CoreVideo display link should set this attribute * according to value returned from * CVDisplayLinkGetOutputVideoLatency(). * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextExpectedReadAheadKey; /* * kQTVisualContextPixelBufferAttributesKey * * Summary: * CFDictionaryRef: Dictionary containing pixel buffer attributes as * described for the CoreVideo pixel buffer pool. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextPixelBufferAttributesKey; /* * kQTVisualContextTargetDimensionsKey * * Summary: * CFDictionaryRef: Dictionary containing * kQTVisualContextTargetDimensions_WidthKey and * kQTVisualContextTargetDimensions_HeightKey. This is only a hint * to optimize certain media types, such as text, that can render at * any resolution. If this attribute is not set, the movie will * render at its native resolution. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextTargetDimensionsKey; /* * kQTVisualContextTargetDimensions_WidthKey * * Summary: * CFNumberRef: Width, in pixels, of the rendering target. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextTargetDimensions_WidthKey; /* * kQTVisualContextTargetDimensions_HeightKey * * Summary: * CFNumberRef: Height, in pixels, of the rendering target. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ extern const CFStringRef kQTVisualContextTargetDimensions_HeightKey; #else #define kQTVisualContextTypeKey CFSTR("Type") #define kQTVisualContextType_PixelBuffer CFSTR("PixelBuffer") #define kQTVisualContextType_OpenGLTexture CFSTR("OpenGLTexture") #define kQTVisualContextType_Direct3DTexture CFSTR("Direct3DTexture") #define kQTVisualContextWorkingColorSpaceKey CFSTR("WorkingColorSpace") #define kQTVisualContextOutputColorSpaceKey CFSTR("OutputColorSpace") #define kQTVisualContextExpectedReadAheadKey CFSTR("ExpectedReadAhead") #define kQTVisualContextPixelBufferAttributesKey CFSTR("PixelBufferAttributes") #define kQTVisualContextTargetDimensionsKey CFSTR("TargetDimensions") #define kQTVisualContextTargetDimensions_WidthKey CFSTR("Width") #define kQTVisualContextTargetDimensions_HeightKey CFSTR("Height") #endif /* TARGET_OS_MAC */ /* * QTVisualContextRetain() * * Summary: * Increments the visual context's reference count. * * Discussion: * The same visual context is returned for convenience. If * visualContext is NULL, nothing happens. * * Parameters: * * visualContext: * [in] The visual context to retain. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( QTVisualContextRef ) QTVisualContextRetain(QTVisualContextRef visualContext); /* * QTVisualContextRelease() * * Summary: * Decrements the visual context's reference count. * * Discussion: * If the retain count decreases to zero, the visual context is * disposed. If visualContext is NULL, nothing happens. * * Parameters: * * visualContext: * [in] The visual context to release. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) QTVisualContextRelease(QTVisualContextRef visualContext); /* * QTVisualContextGetTypeID() * * Summary: * Returns the CFTypeID for QTVisualContextRef. * * Discussion: * You could use this to test whether a CFTypeRef that extracted * from a CF container such as a CFArray was a QTVisualContextRef. * All visual contexts have the same CFTypeID. If you need to * distinguish between different types of visual contexts (eg. * PixelBuffer vs. OpenGLTexture), query for kQTVisualContextTypeKey * with QTVisualContextGetAttribute(). * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( CFTypeID ) QTVisualContextGetTypeID(void); /* * QTVisualContextSetAttribute() * * Summary: * Sets a visual context attribute. * * Parameters: * * visualContext: * [in] The visual context. * * attributeKey: * [in] Identifier of attribute to set. * * attributeValue: * [in] Value of attribute to set, or NULL to remove a value. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) QTVisualContextSetAttribute( QTVisualContextRef visualContext, CFStringRef attributeKey, CFTypeRef attributeValue); /* can be NULL */ /* * QTVisualContextGetAttribute() * * Summary: * Gets a visual context attribute. * * Parameters: * * visualContext: * [in] The visual context. * * attributeKey: * [in] Identifier of attribute to get. * * attributeValueOut: * [out] Pointer to variable that will receive the attribute * value, or NULL if the attribute is not set. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) QTVisualContextGetAttribute( QTVisualContextRef visualContext, CFStringRef attributeKey, CFTypeRef * attributeValueOut); /* * QTVisualContextImageAvailableCallback * * Summary: * User-defined callback function to recieve notifications when a * new image becomes available. * * Discussion: * Due to unpredictible activity, such as user seeks or the arrival * of streaming video packets from a network, new images may become * available for times supposedly occupied by previous images. * Applications using the CoreVideo display link to drive rendering * probably do not need to install a callback of this type since * they will already be checking for new images at a sufficient rate. * * Parameters: * * visualContext: * [in] The visual context invoking the callback. * * timeStamp: * [in] Time for which a new image has become available. * * refCon: * [in] User-defined value passed to * QTVisualContextSetImageAvailableCallback. */ typedef CALLBACK_API_C( void , QTVisualContextImageAvailableCallback )(QTVisualContextRef visualContext, const CVTimeStamp *timeStamp, void *refCon); /* * QTVisualContextSetImageAvailableCallback() * * Summary: * Installs user-defined callback to be notified when new images * become available. * * Discussion: * This routine installs the user defined * QTVisualContextImageAvailableCallback callback. There can only be * one callback associated with a QTVisualContext at a given time. * * Parameters: * * visualContext: * [in] The visual context. * * imageAvailableCallback: * [in] User-defined callback function to recieve notifications. * Pass NULL to remove any existing callback. * * refCon: * [in] User-defined value to pass to * QTVisualContextImageAvailableCallback. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) QTVisualContextSetImageAvailableCallback( QTVisualContextRef visualContext, QTVisualContextImageAvailableCallback imageAvailableCallback, /* can be NULL */ void * refCon); /* can be NULL */ /* * QTVisualContextIsNewImageAvailable() * * Summary: * Queries whether a new image is available for a given time. * * Discussion: * This function returns true if there is a image available for the * specified time that is different from the last image retrieved * from QTVisualContextCopyImageForTime. See * QTVisualContextCopyImageForTime for restrictions on time-stamps. * * Parameters: * * visualContext: * [in] The visual context. * * timeStamp: * [in] Time in question. Pass NULL to request the image at the * current time. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( Boolean ) QTVisualContextIsNewImageAvailable( QTVisualContextRef visualContext, const CVTimeStamp * timeStamp); /* can be NULL */ /* * QTVisualContextCopyImageForTime() * * Summary: * Retrieves an image buffer from the visual context, indexed by the * provided timestamp. * * Discussion: * You should not request image buffers further ahead of the current * time than the read-ahead time specified with the * kQTVisualContextExpectedReadAheadKey attribute. You may skip * images by passing later times, but you may not pass an earlier * time than passed to a previous call to this function. * * Parameters: * * visualContext: * [in] The visual context. * * allocator: * [in] Allocator used to create new CVImageBufferRef. * * timeStamp: * [in] Time in question. Pass NULL to request the image at the * current time. * * newImage: * [out] Points to variable to receive new image. If there is no * video at the requested time, this variable will be set to NULL. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) QTVisualContextCopyImageForTime( QTVisualContextRef visualContext, CFAllocatorRef allocator, /* can be NULL */ const CVTimeStamp * timeStamp, /* can be NULL */ CVImageBufferRef * newImage); /* * QTVisualContextTask() * * Summary: * Causes visual context to release internally held resources for * later re-use. * * Discussion: * For optimal resource management, this function should be called * in every rendering pass, after old images have been released, new * images have been used and all rendering has been flushed to the * screen. This call is not mandatory. * * Parameters: * * visualContext: * [in] The visual context. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( void ) QTVisualContextTask(QTVisualContextRef visualContext); #if TARGET_OS_MAC /* * QTOpenGLTextureContextCreate() * * Summary: * Creates a new OpenGL texture context for the given OpenGL context * and pixel format. * * Discussion: * This function will fail if the graphics hardware is insufficient. * * Parameters: * * allocator: * [in] Allocator used to create the texture context. * * cglContext: * [in] OpenGL context used to create textures. * * cglPixelFormat: * [in] OpenGL pixel format used to create the OpenGL context. * * attributes: * [in] Dictionary of attributes. * * newTextureContext: * [out] Points to a variable to recieve the new OpenGL texture * context. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) QTOpenGLTextureContextCreate( CFAllocatorRef allocator, /* can be NULL */ CGLContextObj cglContext, CGLPixelFormatObj cglPixelFormat, CFDictionaryRef attributes, /* can be NULL */ QTVisualContextRef * newTextureContext); /* * QTPixelBufferContextCreate() * * Summary: * Creates a new pixel buffer context with the given attributes. * * Discussion: * This function will fail if the graphics hardware is insufficient. * * Parameters: * * allocator: * [in] Allocator used to create the pixel buffer context. * * attributes: * [in] Dictionary of attributes. * * newPixelBufferContext: * [out] Points to a variable to recieve the new pixel buffer * context. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.4 (or QuickTime 7.0) and later */ EXTERN_API_C( OSStatus ) QTPixelBufferContextCreate( CFAllocatorRef allocator, /* can be NULL */ CFDictionaryRef attributes, /* can be NULL */ QTVisualContextRef * newPixelBufferContext); #endif /* TARGET_OS_MAC */ #if TARGET_OS_WIN32 #if CALL_NOT_IN_CARBON /* * QTDirect3DTextureContextCreate() * * Summary: * Creates a new Direct3D texture context for the given Direct3D * device and pixel format. * * Discussion: * This function will fail if the graphics hardware is insufficient. * * Parameters: * * allocator: * [in] Allocator used to create the texture context. * * d3dDevice: * [in] Direct3D device used to create textures. * * d3dPixelFormat: * [in] Direct3D pixel format used to create the Direct3D device. * * attributes: * [in] Dictionary of attributes. * * newTextureContext: * [out] Points to a variable to recieve the new Direct3D texture * context. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 6.6 and later */ EXTERN_API_C( OSStatus ) QTDirect3DTextureContextCreate( CFAllocatorRef allocator, /* can be NULL */ void * d3dDevice, UInt32 d3dPixelFormat, CFDictionaryRef attributes, /* can be NULL */ QTVisualContextRef * newTextureContext); #endif /* CALL_NOT_IN_CARBON */ #endif /* TARGET_OS_WIN32 */ #endif // !__LP64__ #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__ */