Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

13011 lines
422 KiB

5 years ago
/*
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__ */