You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13010 lines
422 KiB
13010 lines
422 KiB
/* |
|
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 <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __QUICKDRAW__ |
|
#include <Quickdraw.h> |
|
#endif |
|
|
|
#ifndef __QDOFFSCREEN__ |
|
#include <QDOffscreen.h> |
|
#endif |
|
|
|
#ifndef __COMPONENTS__ |
|
#include <Components.h> |
|
#endif |
|
|
|
#ifndef __DIALOGS__ |
|
#include <Dialogs.h> |
|
#endif |
|
|
|
#ifndef __STANDARDFILE__ |
|
#include <StandardFile.h> |
|
#endif |
|
|
|
#if TARGET_OS_MAC |
|
|
|
#include <OpenGL/OpenGL.h> |
|
#include <QuartzCore/CoreVideo.h> |
|
|
|
#else |
|
|
|
#include <CoreVideo.h> |
|
|
|
#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. |
|
* <BR> 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__ */ |
|
|
|
|