mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-23 06:36:54 +00:00
13011 lines
422 KiB
C
13011 lines
422 KiB
C
/*
|
|
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__ */
|
|
|