You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3621 lines
132 KiB
3621 lines
132 KiB
/* |
|
File: ImageCodec.h |
|
|
|
Contains: QuickTime 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 __IMAGECODEC__ |
|
#define __IMAGECODEC__ |
|
|
|
#ifndef __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __QUICKDRAW__ |
|
#include <Quickdraw.h> |
|
#endif |
|
|
|
#ifndef __COMPONENTS__ |
|
#include <Components.h> |
|
#endif |
|
|
|
#ifndef __IMAGECOMPRESSION__ |
|
#include <ImageCompression.h> |
|
#endif |
|
|
|
#ifndef __MOVIES__ |
|
#include <Movies.h> |
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#if PRAGMA_IMPORT |
|
#pragma import on |
|
#endif |
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=mac68k |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(push, 2) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack(2) |
|
#endif |
|
|
|
/* QuickTime is not available to 64-bit clients */ |
|
|
|
#if !__LP64__ |
|
|
|
/* |
|
The following GX types were previously in GXTypes.h, but that header |
|
is not available in any Mac OS X framework. |
|
*/ |
|
struct gxPoint { |
|
Fixed x; |
|
Fixed y; |
|
}; |
|
typedef struct gxPoint gxPoint; |
|
struct gxPath { |
|
long vectors; |
|
long controlBits[1]; |
|
gxPoint vector[1]; |
|
}; |
|
typedef struct gxPath gxPath; |
|
struct gxPaths { |
|
long contours; |
|
gxPath contour[1]; |
|
}; |
|
typedef struct gxPaths gxPaths; |
|
/* codec capabilities flags */ |
|
enum { |
|
codecCanScale = 1L << 0, |
|
codecCanMask = 1L << 1, |
|
codecCanMatte = 1L << 2, |
|
codecCanTransform = 1L << 3, |
|
codecCanTransferMode = 1L << 4, |
|
codecCanCopyPrev = 1L << 5, |
|
codecCanSpool = 1L << 6, |
|
codecCanClipVertical = 1L << 7, |
|
codecCanClipRectangular = 1L << 8, |
|
codecCanRemapColor = 1L << 9, |
|
codecCanFastDither = 1L << 10, |
|
codecCanSrcExtract = 1L << 11, |
|
codecCanCopyPrevComp = 1L << 12, |
|
codecCanAsync = 1L << 13, |
|
codecCanMakeMask = 1L << 14, |
|
codecCanShift = 1L << 15, |
|
codecCanAsyncWhen = 1L << 16, |
|
codecCanShieldCursor = 1L << 17, |
|
codecCanManagePrevBuffer = 1L << 18, |
|
codecHasVolatileBuffer = 1L << 19, /* codec requires redraw after window movement */ |
|
codecWantsRegionMask = 1L << 20, |
|
codecImageBufferIsOnScreen = 1L << 21, /* old def of codec using overlay surface, = ( codecIsDirectToScreenOnly | codecUsesOverlaySurface | codecImageBufferIsOverlaySurface | codecSrcMustBeImageBuffer ) */ |
|
codecWantsDestinationPixels = 1L << 22, |
|
codecWantsSpecialScaling = 1L << 23, |
|
codecHandlesInputs = 1L << 24, |
|
codecCanDoIndirectSurface = 1L << 25, /* codec can handle indirect surface (GDI) */ |
|
codecIsSequenceSensitive = 1L << 26, |
|
codecRequiresOffscreen = 1L << 27, |
|
codecRequiresMaskBits = 1L << 28, |
|
codecCanRemapResolution = 1L << 29, |
|
codecIsDirectToScreenOnly = 1L << 30, /* codec can only decompress data to the screen */ |
|
codecCanLockSurface = 1L << 31 /* codec can lock destination surface, icm doesn't lock for you */ |
|
}; |
|
|
|
/* codec capabilities flags2 */ |
|
enum { |
|
codecUsesOverlaySurface = 1L << 0, /* codec uses overlay surface */ |
|
codecImageBufferIsOverlaySurface = 1L << 1, /* codec image buffer is overlay surface, the bits in the buffer are on the screen */ |
|
codecSrcMustBeImageBuffer = 1L << 2, /* codec can only source data from an image buffer */ |
|
codecImageBufferIsInAGPMemory = 1L << 4, /* codec image buffer is in AGP space, byte writes are OK */ |
|
codecImageBufferIsInPCIMemory = 1L << 5, /* codec image buffer is across a PCI bus; byte writes are bad */ |
|
codecImageBufferMemoryFlagsValid = 1L << 6, /* set by ImageCodecNewImageBufferMemory/NewImageGWorld to indicate that it set the AGP/PCI flags (supported in QuickTime 6.0 and later) */ |
|
codecDrawsHigherQualityScaled = 1L << 7, /* codec will draw higher-quality image if it performs scaling (eg, wipe effect with border) */ |
|
codecSupportsOutOfOrderDisplayTimes = 1L << 8, /* codec supports frames queued in one order for display in a different order, eg, IPB content */ |
|
codecSupportsScheduledBackwardsPlaybackWithDifferenceFrames = 1L << 9 /* codec can use additional buffers to minimise redecoding during backwards playback */ |
|
}; |
|
|
|
struct CodecCapabilities { |
|
long flags; |
|
short wantedPixelSize; |
|
short extendWidth; |
|
short extendHeight; |
|
short bandMin; |
|
short bandInc; |
|
short pad; |
|
unsigned long time; |
|
long flags2; /* field new in QuickTime 4.0 */ |
|
}; |
|
typedef struct CodecCapabilities CodecCapabilities; |
|
/* codec condition flags */ |
|
enum { |
|
codecConditionFirstBand = 1L << 0, |
|
codecConditionLastBand = 1L << 1, |
|
codecConditionFirstFrame = 1L << 2, |
|
codecConditionNewDepth = 1L << 3, |
|
codecConditionNewTransform = 1L << 4, |
|
codecConditionNewSrcRect = 1L << 5, |
|
codecConditionNewMask = 1L << 6, |
|
codecConditionNewMatte = 1L << 7, |
|
codecConditionNewTransferMode = 1L << 8, |
|
codecConditionNewClut = 1L << 9, |
|
codecConditionNewAccuracy = 1L << 10, |
|
codecConditionNewDestination = 1L << 11, |
|
codecConditionFirstScreen = 1L << 12, |
|
codecConditionDoCursor = 1L << 13, |
|
codecConditionCatchUpDiff = 1L << 14, |
|
codecConditionMaskMayBeChanged = 1L << 15, |
|
codecConditionToBuffer = 1L << 16, |
|
codecConditionCodecChangedMask = 1L << 31 |
|
}; |
|
|
|
|
|
enum { |
|
codecInfoResourceType = FOUR_CHAR_CODE('cdci'), /* codec info resource type */ |
|
codecInterfaceVersion = 2 /* high word returned in component GetVersion */ |
|
}; |
|
|
|
struct CDSequenceDataSourceQueueEntry { |
|
void * nextBusy; |
|
|
|
long descSeed; |
|
Handle dataDesc; |
|
void * data; |
|
long dataSize; |
|
|
|
long useCount; |
|
|
|
TimeValue frameTime; |
|
TimeValue frameDuration; |
|
TimeValue timeScale; |
|
}; |
|
typedef struct CDSequenceDataSourceQueueEntry CDSequenceDataSourceQueueEntry; |
|
typedef CDSequenceDataSourceQueueEntry * CDSequenceDataSourceQueueEntryPtr; |
|
struct CDSequenceDataSource { |
|
long recordSize; |
|
|
|
void * next; |
|
|
|
ImageSequence seqID; |
|
ImageSequenceDataSource sourceID; |
|
OSType sourceType; |
|
long sourceInputNumber; |
|
void * dataPtr; |
|
Handle dataDescription; |
|
long changeSeed; |
|
ICMConvertDataFormatUPP transferProc; |
|
void * transferRefcon; |
|
long dataSize; |
|
|
|
/* fields available in QT 3 and later */ |
|
|
|
QHdrPtr dataQueue; /* queue of CDSequenceDataSourceQueueEntry structures*/ |
|
|
|
void * originalDataPtr; |
|
long originalDataSize; |
|
Handle originalDataDescription; |
|
long originalDataDescriptionSeed; |
|
}; |
|
typedef struct CDSequenceDataSource CDSequenceDataSource; |
|
typedef CDSequenceDataSource * CDSequenceDataSourcePtr; |
|
struct ICMFrameTimeInfo { |
|
wide startTime; |
|
long scale; |
|
long duration; |
|
}; |
|
typedef struct ICMFrameTimeInfo ICMFrameTimeInfo; |
|
typedef ICMFrameTimeInfo * ICMFrameTimeInfoPtr; |
|
struct CodecCompressParams { |
|
ImageSequence sequenceID; /* precompress,bandcompress */ |
|
ImageDescriptionHandle imageDescription; /* precompress,bandcompress */ |
|
Ptr data; |
|
long bufferSize; |
|
long frameNumber; |
|
long startLine; |
|
long stopLine; |
|
long conditionFlags; |
|
CodecFlags callerFlags; |
|
CodecCapabilities * capabilities; /* precompress,bandcompress */ |
|
ICMProgressProcRecord progressProcRecord; |
|
ICMCompletionProcRecord completionProcRecord; |
|
ICMFlushProcRecord flushProcRecord; |
|
|
|
PixMap srcPixMap; /* precompress,bandcompress */ |
|
PixMap prevPixMap; |
|
CodecQ spatialQuality; |
|
CodecQ temporalQuality; |
|
Fixed similarity; |
|
DataRateParamsPtr dataRateParams; |
|
long reserved; |
|
|
|
/* The following fields only exist for QuickTime 2.1 and greater */ |
|
UInt16 majorSourceChangeSeed; |
|
UInt16 minorSourceChangeSeed; |
|
CDSequenceDataSourcePtr sourceData; |
|
|
|
/* The following fields only exist for QuickTime 2.5 and greater */ |
|
long preferredPacketSizeInBytes; |
|
|
|
/* The following fields only exist for QuickTime 3.0 and greater */ |
|
long requestedBufferWidth; /* must set codecWantsSpecialScaling to indicate this field is valid*/ |
|
long requestedBufferHeight; /* must set codecWantsSpecialScaling to indicate this field is valid*/ |
|
|
|
/* The following fields only exist for QuickTime 4.0 and greater */ |
|
OSType wantedSourcePixelType; |
|
|
|
/* The following fields only exist for QuickTime 5.0 and greater */ |
|
long compressedDataSize; /* if nonzero, this overrides (*imageDescription)->dataSize*/ |
|
UInt32 taskWeight; /* preferred weight for MP tasks implementing this operation*/ |
|
OSType taskName; /* preferred name (type) for MP tasks implementing this operation*/ |
|
}; |
|
typedef struct CodecCompressParams CodecCompressParams; |
|
struct CodecDecompressParams { |
|
ImageSequence sequenceID; /* predecompress,banddecompress */ |
|
ImageDescriptionHandle imageDescription; /* predecompress,banddecompress */ |
|
Ptr data; |
|
long bufferSize; |
|
long frameNumber; |
|
long startLine; |
|
long stopLine; |
|
long conditionFlags; |
|
CodecFlags callerFlags; |
|
CodecCapabilities * capabilities; /* predecompress,banddecompress */ |
|
ICMProgressProcRecord progressProcRecord; |
|
ICMCompletionProcRecord completionProcRecord; |
|
ICMDataProcRecord dataProcRecord; |
|
|
|
CGrafPtr port; /* predecompress,banddecompress */ |
|
PixMap dstPixMap; /* predecompress,banddecompress */ |
|
BitMapPtr maskBits; |
|
PixMapPtr mattePixMap; |
|
Rect srcRect; /* predecompress,banddecompress */ |
|
MatrixRecord * matrix; /* predecompress,banddecompress */ |
|
CodecQ accuracy; /* predecompress,banddecompress */ |
|
short transferMode; /* predecompress,banddecompress */ |
|
ICMFrameTimePtr frameTime; /* banddecompress */ |
|
long reserved[1]; |
|
|
|
/* The following fields only exist for QuickTime 2.0 and greater */ |
|
SInt8 matrixFlags; /* high bit set if 2x resize */ |
|
SInt8 matrixType; |
|
Rect dstRect; /* only valid for simple transforms */ |
|
|
|
/* The following fields only exist for QuickTime 2.1 and greater */ |
|
UInt16 majorSourceChangeSeed; |
|
UInt16 minorSourceChangeSeed; |
|
CDSequenceDataSourcePtr sourceData; |
|
|
|
RgnHandle maskRegion; |
|
|
|
/* The following fields only exist for QuickTime 2.5 and greater */ |
|
OSType ** wantedDestinationPixelTypes; /* Handle to 0-terminated list of OSTypes */ |
|
|
|
long screenFloodMethod; |
|
long screenFloodValue; |
|
short preferredOffscreenPixelSize; |
|
|
|
/* The following fields only exist for QuickTime 3.0 and greater */ |
|
ICMFrameTimeInfoPtr syncFrameTime; /* banddecompress */ |
|
Boolean needUpdateOnTimeChange; /* banddecompress */ |
|
Boolean enableBlackLining; |
|
Boolean needUpdateOnSourceChange; /* band decompress */ |
|
Boolean pad; |
|
|
|
long unused; |
|
|
|
CGrafPtr finalDestinationPort; |
|
|
|
long requestedBufferWidth; /* must set codecWantsSpecialScaling to indicate this field is valid*/ |
|
long requestedBufferHeight; /* must set codecWantsSpecialScaling to indicate this field is valid*/ |
|
|
|
/* The following fields only exist for QuickTime 4.0 and greater */ |
|
Rect displayableAreaOfRequestedBuffer; /* set in predecompress*/ |
|
Boolean requestedSingleField; |
|
Boolean needUpdateOnNextIdle; |
|
Boolean pad2[2]; |
|
Fixed bufferGammaLevel; |
|
|
|
/* The following fields only exist for QuickTime 5.0 and greater */ |
|
UInt32 taskWeight; /* preferred weight for MP tasks implementing this operation*/ |
|
OSType taskName; /* preferred name (type) for MP tasks implementing this operation*/ |
|
|
|
/* The following fields only exist for QuickTime 6.0 and greater */ |
|
Boolean pad3; |
|
UInt8 destinationBufferMemoryPreference; /* a codec's PreDecompress/Preflight call can set this to express a preference about what kind of memory its destination buffer should go into. no guarantees.*/ |
|
UInt8 codecBufferMemoryPreference; /* may indicate preferred kind of memory that NewImageGWorld/NewImageBufferMemory should create its buffer in, if applicable.*/ |
|
Boolean onlyUseCodecIfItIsInUserPreferredCodecList; /* set to prevent this codec from being used unless it is in the userPreferredCodec list*/ |
|
|
|
QTMediaContextID mediaContextID; |
|
|
|
/* The following fields only exist for QuickTime 6.5 and greater */ |
|
UInt8 deinterlaceRequest; /* set by the ICM before PreDecompress/Preflight */ |
|
UInt8 deinterlaceAnswer; /* codec should set this in PreDecompress/Preflight if it will satisfy the deinterlaceRequest */ |
|
|
|
/* The following fields only exist for QuickTime 7.0 and greater */ |
|
UInt8 pad4[2]; |
|
long reserved2; |
|
UInt32 reserved3; |
|
long reserved4; |
|
void * reserved5; |
|
void * reserved6; |
|
void * reserved7; |
|
void * reserved8; |
|
}; |
|
typedef struct CodecDecompressParams CodecDecompressParams; |
|
enum { |
|
matrixFlagScale2x = 1L << 7, |
|
matrixFlagScale1x = 1L << 6, |
|
matrixFlagScaleHalf = 1L << 5 |
|
}; |
|
|
|
enum { |
|
kScreenFloodMethodNone = 0, |
|
kScreenFloodMethodKeyColor = 1, |
|
kScreenFloodMethodAlpha = 2 |
|
}; |
|
|
|
enum { |
|
kFlushLastQueuedFrame = 0, |
|
kFlushFirstQueuedFrame = 1 |
|
}; |
|
|
|
enum { |
|
kNewImageGWorldErase = 1L << 0 |
|
}; |
|
|
|
/* values for destinationBufferMemoryPreference and codecBufferMemoryPreference */ |
|
enum { |
|
kICMImageBufferNoPreference = 0, |
|
kICMImageBufferPreferMainMemory = 1, |
|
kICMImageBufferPreferVideoMemory = 2 |
|
}; |
|
|
|
/* values for deinterlaceRequest and deinterlaceAnswer */ |
|
enum { |
|
kICMNoDeinterlacing = 0, |
|
kICMDeinterlaceFields = 1 |
|
}; |
|
|
|
typedef CALLBACK_API( void , ImageCodecTimeTriggerProcPtr )(void * refcon); |
|
typedef CALLBACK_API( void , ImageCodecDrawBandCompleteProcPtr )(void *refcon, ComponentResult drawBandResult, UInt32 drawBandCompleteFlags); |
|
typedef STACK_UPP_TYPE(ImageCodecTimeTriggerProcPtr) ImageCodecTimeTriggerUPP; |
|
typedef STACK_UPP_TYPE(ImageCodecDrawBandCompleteProcPtr) ImageCodecDrawBandCompleteUPP; |
|
/* |
|
* NewImageCodecTimeTriggerUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( ImageCodecTimeTriggerUPP ) |
|
NewImageCodecTimeTriggerUPP(ImageCodecTimeTriggerProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppImageCodecTimeTriggerProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(ImageCodecTimeTriggerUPP) NewImageCodecTimeTriggerUPP(ImageCodecTimeTriggerProcPtr userRoutine) { return (ImageCodecTimeTriggerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppImageCodecTimeTriggerProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewImageCodecTimeTriggerUPP(userRoutine) (ImageCodecTimeTriggerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppImageCodecTimeTriggerProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* NewImageCodecDrawBandCompleteUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( ImageCodecDrawBandCompleteUPP ) |
|
NewImageCodecDrawBandCompleteUPP(ImageCodecDrawBandCompleteProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppImageCodecDrawBandCompleteProcInfo = 0x00000FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(ImageCodecDrawBandCompleteUPP) NewImageCodecDrawBandCompleteUPP(ImageCodecDrawBandCompleteProcPtr userRoutine) { return (ImageCodecDrawBandCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppImageCodecDrawBandCompleteProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewImageCodecDrawBandCompleteUPP(userRoutine) (ImageCodecDrawBandCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppImageCodecDrawBandCompleteProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeImageCodecTimeTriggerUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeImageCodecTimeTriggerUPP(ImageCodecTimeTriggerUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeImageCodecTimeTriggerUPP(ImageCodecTimeTriggerUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeImageCodecTimeTriggerUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeImageCodecDrawBandCompleteUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeImageCodecDrawBandCompleteUPP(ImageCodecDrawBandCompleteUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeImageCodecDrawBandCompleteUPP(ImageCodecDrawBandCompleteUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeImageCodecDrawBandCompleteUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeImageCodecTimeTriggerUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeImageCodecTimeTriggerUPP( |
|
void * refcon, |
|
ImageCodecTimeTriggerUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeImageCodecTimeTriggerUPP(void * refcon, ImageCodecTimeTriggerUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppImageCodecTimeTriggerProcInfo, refcon); } |
|
#else |
|
#define InvokeImageCodecTimeTriggerUPP(refcon, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppImageCodecTimeTriggerProcInfo, (refcon)) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeImageCodecDrawBandCompleteUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeImageCodecDrawBandCompleteUPP( |
|
void * refcon, |
|
ComponentResult drawBandResult, |
|
UInt32 drawBandCompleteFlags, |
|
ImageCodecDrawBandCompleteUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeImageCodecDrawBandCompleteUPP(void * refcon, ComponentResult drawBandResult, UInt32 drawBandCompleteFlags, ImageCodecDrawBandCompleteUPP userUPP) { CALL_THREE_PARAMETER_UPP(userUPP, uppImageCodecDrawBandCompleteProcInfo, refcon, drawBandResult, drawBandCompleteFlags); } |
|
#else |
|
#define InvokeImageCodecDrawBandCompleteUPP(refcon, drawBandResult, drawBandCompleteFlags, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppImageCodecDrawBandCompleteProcInfo, (refcon), (drawBandResult), (drawBandCompleteFlags)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewImageCodecTimeTriggerProc(userRoutine) NewImageCodecTimeTriggerUPP(userRoutine) |
|
#define NewImageCodecDrawBandCompleteProc(userRoutine) NewImageCodecDrawBandCompleteUPP(userRoutine) |
|
#define CallImageCodecTimeTriggerProc(userRoutine, refcon) InvokeImageCodecTimeTriggerUPP(refcon, userRoutine) |
|
#define CallImageCodecDrawBandCompleteProc(userRoutine, refcon, drawBandResult, drawBandCompleteFlags) InvokeImageCodecDrawBandCompleteUPP(refcon, drawBandResult, drawBandCompleteFlags, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
struct ImageSubCodecDecompressCapabilities { |
|
long recordSize; /* sizeof(ImageSubCodecDecompressCapabilities)*/ |
|
long decompressRecordSize; /* size of your codec's decompress record*/ |
|
Boolean canAsync; /* default true*/ |
|
UInt8 pad0; |
|
/* The following field only exists for QuickTime 4.1 and greater */ |
|
UInt16 suggestedQueueSize; |
|
/* The following field only exists for QuickTime 4.0 and greater */ |
|
Boolean canProvideTrigger; |
|
|
|
/* The following fields only exist for QuickTime 5.0 and greater */ |
|
Boolean subCodecFlushesScreen; /* only used on Mac OS X*/ |
|
Boolean subCodecCallsDrawBandComplete; |
|
UInt8 pad2[1]; |
|
|
|
/* The following fields only exist for QuickTime 5.0.1 and greater */ |
|
Boolean isChildCodec; /* set by base codec before calling Initialize*/ |
|
UInt8 reserved1; |
|
UInt8 pad4[1]; |
|
|
|
/* The following fields only exist for QuickTime 7.0 and greater */ |
|
Boolean subCodecIsMultiBufferAware; /* set if subcodec always draws using ImageSubCodecDecompressRecord.baseAddr/rowBytes passed to ImageCodecDrawBand, and always writes every pixel in the buffer*/ |
|
Boolean subCodecSupportsOutOfOrderDisplayTimes; |
|
Boolean subCodecSupportsScheduledBackwardsPlaybackWithDifferenceFrames; |
|
Boolean subCodecNeedsHelpReportingNonDisplayableFrames; |
|
Boolean baseCodecShouldCallDecodeBandForAllFrames; |
|
|
|
UInt8 pad5[2]; |
|
Boolean subCodecSupportsDrawInDecodeOrder; /* indicates that it's okay for the subcodec to get a single DrawBand call for each frame in decode order even when frames need reordering. (This will only happen when other circumstances allow it.)*/ |
|
Boolean subCodecSupportsDecodeSmoothing; /* Frame-reordering subcodecs should set this to indicate that they can safely decode a non-droppable frame before drawing the previous non-droppable frame. This enables smoother playback in GWorlds.*/ |
|
UInt8 pad6[4]; |
|
}; |
|
typedef struct ImageSubCodecDecompressCapabilities ImageSubCodecDecompressCapabilities; |
|
enum { |
|
kCodecFrameTypeUnknown = 0, |
|
kCodecFrameTypeKey = 1, |
|
kCodecFrameTypeDifference = 2, |
|
kCodecFrameTypeDroppableDifference = 3 |
|
}; |
|
|
|
struct ImageSubCodecDecompressRecord { |
|
Ptr baseAddr; |
|
long rowBytes; |
|
Ptr codecData; |
|
ICMProgressProcRecord progressProcRecord; |
|
ICMDataProcRecord dataProcRecord; |
|
void * userDecompressRecord; /* pointer to codec-specific per-band data*/ |
|
UInt8 frameType; |
|
Boolean inhibitMP; /* set this in BeginBand to tell the base decompressor not to call DrawBand from an MP task for this frame. (Only has any effect for MP-capable subcodecs. New in QuickTime 5.0.)*/ |
|
UInt8 pad[2]; |
|
long priv[2]; |
|
|
|
/* The following fields only exist for QuickTime 5.0 and greater */ |
|
ImageCodecDrawBandCompleteUPP drawBandCompleteUPP; /* only used if subcodec set subCodecCallsDrawBandComplete; if drawBandCompleteUPP is non-nil, codec must call it when a frame is finished, but may return from DrawBand before the frame is finished. */ |
|
void * drawBandCompleteRefCon; /* Note: do not call drawBandCompleteUPP directly from a hardware interrupt; instead, use DTInstall to run a function at deferred task time, and call drawBandCompleteUPP from that. */ |
|
|
|
/* The following fields only exist for QuickTime 7.0 and greater */ |
|
void * reserved1; |
|
long reserved2; |
|
long reserved3; |
|
}; |
|
typedef struct ImageSubCodecDecompressRecord ImageSubCodecDecompressRecord; |
|
/* |
|
These data structures are used by code that wants to pass planar pixmap |
|
information around. |
|
The structure below gives the basic idea of what is being done. |
|
Normal instances of code will use a fixed number of planes (eg YUV420 uses |
|
three planes, Y, U and V). Each such code instance will define its own |
|
version of the PlanarPixMapInfo struct counting the number of planes it |
|
needs along with defining constants that specify the meanings of each |
|
plane. |
|
*/ |
|
struct PlanarComponentInfo { |
|
SInt32 offset; |
|
UInt32 rowBytes; |
|
}; |
|
typedef struct PlanarComponentInfo PlanarComponentInfo; |
|
struct PlanarPixMapInfo { |
|
PlanarComponentInfo componentInfo[1]; |
|
}; |
|
typedef struct PlanarPixMapInfo PlanarPixMapInfo; |
|
struct PlanarPixmapInfoSorensonYUV9 { |
|
PlanarComponentInfo componentInfoY; |
|
PlanarComponentInfo componentInfoU; |
|
PlanarComponentInfo componentInfoV; |
|
}; |
|
typedef struct PlanarPixmapInfoSorensonYUV9 PlanarPixmapInfoSorensonYUV9; |
|
struct PlanarPixmapInfoYUV420 { |
|
PlanarComponentInfo componentInfoY; |
|
PlanarComponentInfo componentInfoCb; |
|
PlanarComponentInfo componentInfoCr; |
|
}; |
|
typedef struct PlanarPixmapInfoYUV420 PlanarPixmapInfoYUV420; |
|
enum { |
|
codecSuggestedBufferSentinel = FOUR_CHAR_CODE('sent') /* codec public resource containing suggested data pattern to put past end of data buffer */ |
|
}; |
|
|
|
|
|
/* name of parameters or effect -- placed in root container, required */ |
|
enum { |
|
kParameterTitleName = FOUR_CHAR_CODE('name'), |
|
kParameterTitleID = 1 |
|
}; |
|
|
|
/* codec sub-type of parameters or effect -- placed in root container, required */ |
|
enum { |
|
kParameterWhatName = FOUR_CHAR_CODE('what'), |
|
kParameterWhatID = 1 |
|
}; |
|
|
|
/* effect version -- placed in root container, optional, but recommended */ |
|
enum { |
|
kParameterVersionName = FOUR_CHAR_CODE('vers'), |
|
kParameterVersionID = 1 |
|
}; |
|
|
|
/* is effect repeatable -- placed in root container, optional, default is TRUE*/ |
|
enum { |
|
kParameterRepeatableName = FOUR_CHAR_CODE('pete'), |
|
kParameterRepeatableID = 1 |
|
}; |
|
|
|
enum { |
|
kParameterRepeatableTrue = 1, |
|
kParameterRepeatableFalse = 0 |
|
}; |
|
|
|
/* substitution codec in case effect is missing -- placed in root container, recommended */ |
|
enum { |
|
kParameterAlternateCodecName = FOUR_CHAR_CODE('subs'), |
|
kParameterAlternateCodecID = 1 |
|
}; |
|
|
|
/* maximum number of sources -- placed in root container, required */ |
|
enum { |
|
kParameterSourceCountName = FOUR_CHAR_CODE('srcs'), |
|
kParameterSourceCountID = 1 |
|
}; |
|
|
|
/* EFFECT CLASSES*/ |
|
|
|
/* |
|
The effect major class defines the major grouping of the effect. |
|
Major classes are defined only by Apple and are not extendable by third |
|
parties. Major classes are used for filtering of the effect list by |
|
applications, but do not define what UI sub-group may or may not be |
|
presented to the user. For example, the major class may be a transition, |
|
but the minor class may be a wipe. |
|
*/ |
|
|
|
/* |
|
Effects that fail to include a |
|
kEffectMajorClassType will be classified as kMiscMajorClass. |
|
*/ |
|
enum { |
|
kEffectMajorClassType = FOUR_CHAR_CODE('clsa'), |
|
kEffectMajorClassID = 1 |
|
}; |
|
|
|
enum { |
|
kGeneratorMajorClass = FOUR_CHAR_CODE('genr'), /* zero source effects*/ |
|
kFilterMajorClass = FOUR_CHAR_CODE('filt'), /* one source effects*/ |
|
kTransitionMajorClass = FOUR_CHAR_CODE('tran'), /* multisource morph effects */ |
|
kCompositorMajorClass = FOUR_CHAR_CODE('comp'), /* multisource layer effects*/ |
|
kMiscMajorClass = FOUR_CHAR_CODE('misc') /* all other effects*/ |
|
}; |
|
|
|
/* |
|
The effect minor class defines the grouping of effects for the purposes |
|
of UI. Apple defines a set of minor classes and will extend it over |
|
time. Apple also provides strings within the UI for minor classes |
|
that it defines. Third party developers may either classify |
|
their effects as a type defined by Apple, or may define their own |
|
minor class. Effects which define a minor class of their own |
|
must also then supply a kEffectMinorClassNameType atom. |
|
*/ |
|
|
|
/* |
|
If a kEffectMinorClassNameType atom is present, but |
|
the minor type is one defined by Apple, the Apple supplied |
|
string will be used in the UI. |
|
*/ |
|
|
|
/* |
|
Effects that fail to supply a kEffectMinorClassType will be |
|
classified as kMiscMinorClass. |
|
*/ |
|
enum { |
|
kEffectMinorClassType = FOUR_CHAR_CODE('clsi'), |
|
kEffectMinorClassID = 1, |
|
kEffectMinorClassNameType = FOUR_CHAR_CODE('clsn'), |
|
kEffectMinorClassNameID = 1 |
|
}; |
|
|
|
enum { |
|
kGeneratorMinorClass = FOUR_CHAR_CODE('genr'), /* "Generators"*/ |
|
kRenderMinorClass = FOUR_CHAR_CODE('rend'), /* "Render"*/ |
|
kFilterMinorClass = FOUR_CHAR_CODE('filt'), /* "Filters"*/ |
|
kArtisticMinorClass = FOUR_CHAR_CODE('arts'), /* "Artistic*/ |
|
kBlurMinorClass = FOUR_CHAR_CODE('blur'), /* "Blur"*/ |
|
kSharpenMinorClass = FOUR_CHAR_CODE('shrp'), /* "Sharpen"*/ |
|
kDistortMinorClass = FOUR_CHAR_CODE('dist'), /* "Distort"*/ |
|
kNoiseMinorClass = FOUR_CHAR_CODE('nois'), /* "Noise"*/ |
|
kAdjustmentMinorClass = FOUR_CHAR_CODE('adst'), /* "Adjustments"*/ |
|
kTransitionMinorClass = FOUR_CHAR_CODE('tran'), /* "Transitions"*/ |
|
kWipeMinorClass = FOUR_CHAR_CODE('wipe'), /* "Wipes"*/ |
|
k3DMinorClass = FOUR_CHAR_CODE('pzre'), /* "3D Transitions"*/ |
|
kCompositorMinorClass = FOUR_CHAR_CODE('comp'), /* "Compositors"*/ |
|
kEffectsMinorClass = FOUR_CHAR_CODE('fxfx'), /* "Special Effects"*/ |
|
kMiscMinorClass = FOUR_CHAR_CODE('misc') /* "Miscellaneous"*/ |
|
}; |
|
|
|
/* |
|
Effects can define a number of "preset" values which will be presented to the user |
|
in a simplified UI. Each preset is an atom within the parameter description list |
|
and must have an atom ID from 1 going up sequentially. Inside of this atom are three other |
|
atoms containing: |
|
1) the name of the preset as a Pascal string |
|
2) a preview picture for the preset, 86 x 64 pixels in size |
|
3) the ENTIRE set of parameter values needed to create a sample of this preset. |
|
*/ |
|
enum { |
|
kEffectPresetType = FOUR_CHAR_CODE('peff'), |
|
kPresetNameType = FOUR_CHAR_CODE('pnam'), |
|
kPresetNameID = 1, |
|
kPresetPreviewPictureType = FOUR_CHAR_CODE('ppct'), |
|
kPresetPreviewPictureID = 1, |
|
kPresetSettingsType = FOUR_CHAR_CODE('psst'), |
|
kPresetSettingsID = 1 |
|
}; |
|
|
|
enum { |
|
kParameterDependencyName = FOUR_CHAR_CODE('deep'), |
|
kParameterDependencyID = 1 |
|
}; |
|
|
|
enum { |
|
kParameterListDependsUponColorProfiles = FOUR_CHAR_CODE('prof'), |
|
kParameterListDependsUponFonts = FOUR_CHAR_CODE('font') |
|
}; |
|
|
|
struct ParameterDependancyRecord { |
|
long dependCount; |
|
OSType depends[1]; |
|
}; |
|
typedef struct ParameterDependancyRecord ParameterDependancyRecord; |
|
/* |
|
enumeration list in container -- placed in root container, optional unless used by a |
|
parameter in the list |
|
*/ |
|
enum { |
|
kParameterEnumList = FOUR_CHAR_CODE('enum') |
|
}; |
|
|
|
struct EnumValuePair { |
|
long value; |
|
Str255 name; |
|
}; |
|
typedef struct EnumValuePair EnumValuePair; |
|
struct EnumListRecord { |
|
long enumCount; /* number of enumeration items to follow*/ |
|
EnumValuePair values[1]; /* values and names for them, packed */ |
|
}; |
|
typedef struct EnumListRecord EnumListRecord; |
|
/* atom type of parameter*/ |
|
enum { |
|
kParameterAtomTypeAndID = FOUR_CHAR_CODE('type') |
|
}; |
|
|
|
enum { |
|
kNoAtom = FOUR_CHAR_CODE('none'), /* atom type for no data got/set*/ |
|
kAtomNoFlags = 0x00000000, |
|
kAtomNotInterpolated = 0x00000001, /* atom can never be interpolated*/ |
|
kAtomInterpolateIsOptional = 0x00000002, /* atom can be interpolated, but it is an advanced user operation*/ |
|
kAtomMayBeIndexed = 0x00000004 /* more than one value of atom can exist with accending IDs (ie, lists of colors)*/ |
|
}; |
|
|
|
struct ParameterAtomTypeAndID { |
|
QTAtomType atomType; /* type of atom this data comes from/goes into*/ |
|
QTAtomID atomID; /* ID of atom this data comes from/goes into*/ |
|
long atomFlags; /* options for this atom*/ |
|
Str255 atomName; /* name of this value type*/ |
|
}; |
|
typedef struct ParameterAtomTypeAndID ParameterAtomTypeAndID; |
|
/* optional specification of mapping between parameters and properties*/ |
|
enum { |
|
kParameterProperty = FOUR_CHAR_CODE('prop') |
|
}; |
|
|
|
struct ParameterProperty { |
|
OSType propertyClass; /* class to set for this property (0 for default which is specified by caller)*/ |
|
OSType propertyID; /* id to set for this property (default is the atomType)*/ |
|
}; |
|
typedef struct ParameterProperty ParameterProperty; |
|
/* data type of a parameter*/ |
|
enum { |
|
kParameterDataType = FOUR_CHAR_CODE('data') |
|
}; |
|
|
|
enum { |
|
kParameterTypeDataLong = kTweenTypeLong, /* integer value*/ |
|
kParameterTypeDataFixed = kTweenTypeFixed, /* fixed point value*/ |
|
kParameterTypeDataRGBValue = kTweenTypeRGBColor, /* RGBColor data*/ |
|
kParameterTypeDataDouble = kTweenTypeQTFloatDouble, /* IEEE 64 bit floating point value*/ |
|
kParameterTypeDataText = FOUR_CHAR_CODE('text'), /* editable text item*/ |
|
kParameterTypeDataEnum = FOUR_CHAR_CODE('enum'), /* enumerated lookup value*/ |
|
kParameterTypeDataBitField = FOUR_CHAR_CODE('bool'), /* bit field value (something that holds boolean(s))*/ |
|
kParameterTypeDataImage = FOUR_CHAR_CODE('imag') /* reference to an image via Picture data*/ |
|
}; |
|
|
|
struct ParameterDataType { |
|
OSType dataType; /* type of data this item is stored as*/ |
|
}; |
|
typedef struct ParameterDataType ParameterDataType; |
|
/* |
|
alternate (optional) data type -- main data type always required. |
|
Must be modified or deleted when modifying main data type. |
|
Main data type must be modified when alternate is modified. |
|
*/ |
|
enum { |
|
kParameterAlternateDataType = FOUR_CHAR_CODE('alt1'), |
|
kParameterTypeDataColorValue = FOUR_CHAR_CODE('cmlr'), /* CMColor data (supported on machines with ColorSync)*/ |
|
kParameterTypeDataCubic = FOUR_CHAR_CODE('cubi'), /* cubic bezier(s) (no built-in support)*/ |
|
kParameterTypeDataNURB = FOUR_CHAR_CODE('nurb') /* nurb(s) (no built-in support)*/ |
|
}; |
|
|
|
struct ParameterAlternateDataEntry { |
|
OSType dataType; /* type of data this item is stored as*/ |
|
QTAtomType alternateAtom; /* where to store*/ |
|
}; |
|
typedef struct ParameterAlternateDataEntry ParameterAlternateDataEntry; |
|
struct ParameterAlternateDataType { |
|
long numEntries; |
|
ParameterAlternateDataEntry entries[1]; |
|
}; |
|
typedef struct ParameterAlternateDataType ParameterAlternateDataType; |
|
/* legal values for the parameter*/ |
|
enum { |
|
kParameterDataRange = FOUR_CHAR_CODE('rang') |
|
}; |
|
|
|
enum { |
|
kNoMinimumLongFixed = 0x7FFFFFFF, /* ignore minimum/maxiumum values*/ |
|
kNoMaximumLongFixed = (long)0x80000000, |
|
kNoScaleLongFixed = 0, /* don't perform any scaling of value*/ |
|
kNoPrecision = (-1) /* allow as many digits as format*/ |
|
}; |
|
|
|
/* 'text'*/ |
|
struct StringRangeRecord { |
|
long maxChars; /* maximum length of string*/ |
|
long maxLines; /* number of editing lines to use (1 typical, 0 to default)*/ |
|
}; |
|
typedef struct StringRangeRecord StringRangeRecord; |
|
/* 'long'*/ |
|
struct LongRangeRecord { |
|
long minValue; /* no less than this*/ |
|
long maxValue; /* no more than this*/ |
|
long scaleValue; /* muliply content by this going in, divide going out*/ |
|
long precisionDigits; /* # digits of precision when editing via typing*/ |
|
}; |
|
typedef struct LongRangeRecord LongRangeRecord; |
|
/* 'enum'*/ |
|
struct EnumRangeRecord { |
|
long enumID; /* 'enum' list in root container to search within*/ |
|
}; |
|
typedef struct EnumRangeRecord EnumRangeRecord; |
|
/* 'fixd'*/ |
|
struct FixedRangeRecord { |
|
Fixed minValue; /* no less than this*/ |
|
Fixed maxValue; /* no more than this*/ |
|
Fixed scaleValue; /* muliply content by this going in, divide going out*/ |
|
long precisionDigits; /* # digits of precision when editing via typing*/ |
|
}; |
|
typedef struct FixedRangeRecord FixedRangeRecord; |
|
/* 'doub'*/ |
|
|
|
#define kNoMinimumDouble (NAN) /* ignore minimum/maxiumum values */ |
|
#define kNoMaximumDouble (NAN) |
|
#define kNoScaleDouble (0) /* don't perform any scaling of value */ |
|
struct DoubleRangeRecord |
|
{ |
|
QTFloatDouble minValue; /* no less than this */ |
|
QTFloatDouble maxValue; /* no more than this */ |
|
QTFloatDouble scaleValue; /* muliply content by this going in, divide going out */ |
|
long precisionDigits; /* # digits of precision when editing via typing */ |
|
}; |
|
typedef struct DoubleRangeRecord DoubleRangeRecord; |
|
|
|
/* 'bool' */ |
|
struct BooleanRangeRecord { |
|
long maskValue; /* value to mask on/off to set/clear the boolean*/ |
|
}; |
|
typedef struct BooleanRangeRecord BooleanRangeRecord; |
|
/* 'rgb '*/ |
|
struct RGBRangeRecord { |
|
RGBColor minColor; |
|
RGBColor maxColor; |
|
}; |
|
typedef struct RGBRangeRecord RGBRangeRecord; |
|
/* 'imag'*/ |
|
enum { |
|
kParameterImageNoFlags = 0, |
|
kParameterImageIsPreset = 1 |
|
}; |
|
|
|
enum { |
|
kStandardPresetGroup = FOUR_CHAR_CODE('pset') |
|
}; |
|
|
|
struct ImageRangeRecord { |
|
long imageFlags; |
|
OSType fileType; /* file type to contain the preset group (normally kStandardPresetGroup)*/ |
|
long replacedAtoms; /* # atoms at this level replaced by this preset group*/ |
|
}; |
|
typedef struct ImageRangeRecord ImageRangeRecord; |
|
/* union of all of the above*/ |
|
|
|
struct ParameterRangeRecord |
|
{ |
|
union |
|
{ |
|
LongRangeRecord longRange; |
|
EnumRangeRecord enumRange; |
|
FixedRangeRecord fixedRange; |
|
DoubleRangeRecord doubleRange; |
|
StringRangeRecord stringRange; |
|
BooleanRangeRecord booleanRange; |
|
RGBRangeRecord rgbRange; |
|
ImageRangeRecord imageRange; |
|
} u; |
|
}; |
|
typedef struct ParameterRangeRecord ParameterRangeRecord; |
|
|
|
/* UI behavior of a parameter*/ |
|
enum { |
|
kParameterDataBehavior = FOUR_CHAR_CODE('ditl') |
|
}; |
|
|
|
enum { |
|
/* items edited via typing*/ |
|
kParameterItemEditText = FOUR_CHAR_CODE('edit'), /* edit text box*/ |
|
kParameterItemEditLong = FOUR_CHAR_CODE('long'), /* long number editing box*/ |
|
kParameterItemEditFixed = FOUR_CHAR_CODE('fixd'), /* fixed point number editing box*/ |
|
kParameterItemEditDouble = FOUR_CHAR_CODE('doub'), /* double number editing box*/ |
|
/* items edited via control(s)*/ |
|
kParameterItemPopUp = FOUR_CHAR_CODE('popu'), /* pop up value for enum types*/ |
|
kParameterItemRadioCluster = FOUR_CHAR_CODE('radi'), /* radio cluster for enum types*/ |
|
kParameterItemCheckBox = FOUR_CHAR_CODE('chex'), /* check box for booleans*/ |
|
kParameterItemControl = FOUR_CHAR_CODE('cntl'), /* item controlled via a standard control of some type*/ |
|
/* special user items*/ |
|
kParameterItemLine = FOUR_CHAR_CODE('line'), /* line*/ |
|
kParameterItemColorPicker = FOUR_CHAR_CODE('pick'), /* color swatch & picker*/ |
|
kParameterItemGroupDivider = FOUR_CHAR_CODE('divi'), /* start of a new group of items*/ |
|
kParameterItemStaticText = FOUR_CHAR_CODE('stat'), /* display "parameter name" as static text*/ |
|
kParameterItemDragImage = FOUR_CHAR_CODE('imag'), /* allow image display, along with drag and drop*/ |
|
/* flags valid for lines and groups*/ |
|
kGraphicsNoFlags = 0x00000000, /* no options for graphics*/ |
|
kGraphicsFlagsGray = 0x00000001, /* draw lines with gray*/ |
|
/* flags valid for groups*/ |
|
kGroupNoFlags = 0x00000000, /* no options for group -- may be combined with graphics options */ |
|
kGroupAlignText = 0x00010000, /* edit text items in group have the same size*/ |
|
kGroupSurroundBox = 0x00020000, /* group should be surrounded with a box*/ |
|
kGroupMatrix = 0x00040000, /* side-by-side arrangement of group is okay*/ |
|
kGroupNoName = 0x00080000, /* name of group should not be displayed above box*/ |
|
/* flags valid for popup/radiocluster/checkbox/control*/ |
|
kDisableControl = 0x00000001, |
|
kDisableWhenNotEqual = (0x00000000 + kDisableControl), |
|
kDisableWhenEqual = (0x00000010 + kDisableControl), |
|
kDisableWhenLessThan = (0x00000020 + kDisableControl), |
|
kDisableWhenGreaterThan = (0x00000030 + kDisableControl), /* flags valid for controls*/ |
|
kCustomControl = 0x00100000, /* flags valid for popups*/ |
|
kPopupStoreAsString = 0x00010000 |
|
}; |
|
|
|
struct ControlBehaviors { |
|
QTAtomID groupID; /* group under control of this item*/ |
|
long controlValue; /* control value for comparison purposes*/ |
|
QTAtomType customType; /* custom type identifier, for kCustomControl*/ |
|
QTAtomID customID; /* custom type ID, for kCustomControl*/ |
|
}; |
|
typedef struct ControlBehaviors ControlBehaviors; |
|
struct ParameterDataBehavior { |
|
OSType behaviorType; |
|
long behaviorFlags; |
|
union { |
|
ControlBehaviors controls; |
|
} u; |
|
}; |
|
typedef struct ParameterDataBehavior ParameterDataBehavior; |
|
/* higher level purpose of a parameter or set of parameters*/ |
|
enum { |
|
kParameterDataUsage = FOUR_CHAR_CODE('use ') |
|
}; |
|
|
|
enum { |
|
kParameterUsagePixels = FOUR_CHAR_CODE('pixl'), |
|
kParameterUsageRectangle = FOUR_CHAR_CODE('rect'), |
|
kParameterUsagePoint = FOUR_CHAR_CODE('xy '), |
|
kParameterUsage3DPoint = FOUR_CHAR_CODE('xyz '), |
|
kParameterUsageDegrees = FOUR_CHAR_CODE('degr'), |
|
kParameterUsageRadians = FOUR_CHAR_CODE('rads'), |
|
kParameterUsagePercent = FOUR_CHAR_CODE('pcnt'), |
|
kParameterUsageSeconds = FOUR_CHAR_CODE('secs'), |
|
kParameterUsageMilliseconds = FOUR_CHAR_CODE('msec'), |
|
kParameterUsageMicroseconds = 0xB5736563, |
|
kParameterUsage3by3Matrix = FOUR_CHAR_CODE('3by3'), |
|
kParameterUsageCircularDegrees = FOUR_CHAR_CODE('degc'), |
|
kParameterUsageCircularRadians = FOUR_CHAR_CODE('radc') |
|
}; |
|
|
|
struct ParameterDataUsage { |
|
OSType usageType; /* higher level purpose of the data or group*/ |
|
}; |
|
typedef struct ParameterDataUsage ParameterDataUsage; |
|
/* default value(s) for a parameter*/ |
|
enum { |
|
kParameterDataDefaultItem = FOUR_CHAR_CODE('dflt') |
|
}; |
|
|
|
/* atoms that help to fill in data within the info window */ |
|
enum { |
|
kParameterInfoLongName = 0xA96E616D, |
|
kParameterInfoCopyright = 0xA9637079, |
|
kParameterInfoDescription = 0xA9696E66, |
|
kParameterInfoWindowTitle = 0xA9776E74, |
|
kParameterInfoPicture = 0xA9706978, |
|
kParameterInfoManufacturer = 0xA96D616E, |
|
kParameterInfoIDs = 1 |
|
}; |
|
|
|
/* flags for ImageCodecValidateParameters */ |
|
enum { |
|
kParameterValidationNoFlags = 0x00000000, |
|
kParameterValidationFinalValidation = 0x00000001 |
|
}; |
|
|
|
|
|
typedef long QTParameterValidationOptions; |
|
/* QTAtomTypes for atoms in image compressor settings containers*/ |
|
enum { |
|
kImageCodecSettingsFieldCount = FOUR_CHAR_CODE('fiel'), /* Number of fields (UInt8) */ |
|
kImageCodecSettingsFieldOrdering = FOUR_CHAR_CODE('fdom'), /* Ordering of fields (UInt8)*/ |
|
kImageCodecSettingsFieldOrderingF1F2 = 1, |
|
kImageCodecSettingsFieldOrderingF2F1 = 2 |
|
}; |
|
|
|
|
|
|
|
/* |
|
* Summary: |
|
* Additional Image Description Extensions |
|
*/ |
|
enum { |
|
|
|
/* |
|
* Image description extension describing the color properties. |
|
*/ |
|
kColorInfoImageDescriptionExtension = FOUR_CHAR_CODE('colr'), |
|
|
|
/* |
|
* Image description extension describing the pixel aspect ratio. |
|
*/ |
|
kPixelAspectRatioImageDescriptionExtension = FOUR_CHAR_CODE('pasp'), /* big-endian PixelAspectRatioImageDescriptionExtension */ |
|
|
|
/* |
|
* Image description extension describing the clean aperture. |
|
*/ |
|
kCleanApertureImageDescriptionExtension = FOUR_CHAR_CODE('clap'), /* big-endian CleanApertureImageDescriptionExtension */ |
|
|
|
/* |
|
* Specifies the offset in bytes from the start of one pixel row to |
|
* the next. Only valid for chunky pixel formats. If present, this |
|
* image description extension overrides other conventions for |
|
* calculating rowBytes. |
|
*/ |
|
kQTRowBytesImageDescriptionExtension = FOUR_CHAR_CODE('rowb') /* big-endian SInt32 */ |
|
}; |
|
|
|
/* Color Info Image Description Extension types*/ |
|
enum { |
|
kVideoColorInfoImageDescriptionExtensionType = FOUR_CHAR_CODE('nclc'), /* For video color descriptions (defined below) */ |
|
kICCProfileColorInfoImageDescriptionExtensionType = FOUR_CHAR_CODE('prof') /* For ICC Profile color descriptions (not defined here)*/ |
|
}; |
|
|
|
|
|
/* Video Color Info Image Description Extensions*/ |
|
struct NCLCColorInfoImageDescriptionExtension { |
|
OSType colorParamType; /* Type of color parameter 'nclc' */ |
|
UInt16 primaries; /* CIE 1931 xy chromaticity coordinates */ |
|
UInt16 transferFunction; /* Nonlinear transfer function from RGB to ErEgEb */ |
|
UInt16 matrix; /* Matrix from ErEgEb to EyEcbEcr */ |
|
}; |
|
typedef struct NCLCColorInfoImageDescriptionExtension NCLCColorInfoImageDescriptionExtension; |
|
/* Primaries*/ |
|
enum { |
|
kQTPrimaries_ITU_R709_2 = 1, /* ITU-R BT.709-2, SMPTE 274M-1995, and SMPTE 296M-1997 */ |
|
kQTPrimaries_Unknown = 2, /* Unknown */ |
|
kQTPrimaries_EBU_3213 = 5, /* EBU Tech. 3213 (1981) */ |
|
kQTPrimaries_SMPTE_C = 6 /* SMPTE C Primaries from SMPTE RP 145-1993 */ |
|
}; |
|
|
|
/* Transfer Function*/ |
|
enum { |
|
kQTTransferFunction_ITU_R709_2 = 1, /* Recommendation ITU-R BT.709-2, SMPTE 274M-1995, SMPTE 296M-1997, SMPTE 293M-1996 and SMPTE 170M-1994 */ |
|
kQTTransferFunction_Unknown = 2, /* Unknown */ |
|
kQTTransferFunction_SMPTE_240M_1995 = 7 /* SMPTE 240M-1995 and interim color implementation of SMPTE 274M-1995 */ |
|
}; |
|
|
|
/* Matrix*/ |
|
enum { |
|
kQTMatrix_ITU_R_709_2 = 1, /* Recommendation ITU-R BT.709-2 (1125/60/2:1 only), SMPTE 274M-1995 and SMPTE 296M-1997 */ |
|
kQTMatrix_Unknown = 2, /* Unknown */ |
|
kQTMatrix_ITU_R_601_4 = 6, /* Recommendation ITU-R BT.601-4, Recommendation ITU-R BT.470-4 System B and G, SMPTE 170M-1994 and SMPTE 293M-1996 */ |
|
kQTMatrix_SMPTE_240M_1995 = 7 /* SMPTE 240M-1995 and interim color implementation of SMPTE 274M-1995 */ |
|
}; |
|
|
|
|
|
/* Field/Frame Info Image Description (this remaps to FieldInfoImageDescriptionExtension)*/ |
|
struct FieldInfoImageDescriptionExtension2 { |
|
UInt8 fields; |
|
UInt8 detail; |
|
}; |
|
typedef struct FieldInfoImageDescriptionExtension2 FieldInfoImageDescriptionExtension2; |
|
enum { |
|
kQTFieldsProgressiveScan = 1, |
|
kQTFieldsInterlaced = 2 |
|
}; |
|
|
|
enum { |
|
kQTFieldDetailUnknown = 0, |
|
kQTFieldDetailTemporalTopFirst = 1, |
|
kQTFieldDetailTemporalBottomFirst = 6, |
|
kQTFieldDetailSpatialFirstLineEarly = 9, |
|
kQTFieldDetailSpatialFirstLineLate = 14 |
|
}; |
|
|
|
|
|
/* Pixel Aspect Ratio Image Description Extensions*/ |
|
struct PixelAspectRatioImageDescriptionExtension { |
|
UInt32 hSpacing; /* Horizontal Spacing */ |
|
UInt32 vSpacing; /* Vertical Spacing */ |
|
}; |
|
typedef struct PixelAspectRatioImageDescriptionExtension PixelAspectRatioImageDescriptionExtension; |
|
/* Clean Aperture Image Description Extensions*/ |
|
struct CleanApertureImageDescriptionExtension { |
|
UInt32 cleanApertureWidthN; /* width of clean aperture, numerator, denominator */ |
|
UInt32 cleanApertureWidthD; |
|
UInt32 cleanApertureHeightN; /* height of clean aperture, numerator, denominator*/ |
|
UInt32 cleanApertureHeightD; |
|
SInt32 horizOffN; /* horizontal offset of clean aperture center minus (width-1)/2, numerator, denominator */ |
|
UInt32 horizOffD; |
|
SInt32 vertOffN; /* vertical offset of clean aperture center minus (height-1)/2, numerator, denominator */ |
|
UInt32 vertOffD; |
|
}; |
|
typedef struct CleanApertureImageDescriptionExtension CleanApertureImageDescriptionExtension; |
|
typedef CALLBACK_API( ComponentResult , ImageCodecMPDrawBandProcPtr )(void *refcon, ImageSubCodecDecompressRecord *drp); |
|
typedef STACK_UPP_TYPE(ImageCodecMPDrawBandProcPtr) ImageCodecMPDrawBandUPP; |
|
/* |
|
* NewImageCodecMPDrawBandUPP() |
|
* |
|
* 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( ImageCodecMPDrawBandUPP ) |
|
NewImageCodecMPDrawBandUPP(ImageCodecMPDrawBandProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppImageCodecMPDrawBandProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(ImageCodecMPDrawBandUPP) NewImageCodecMPDrawBandUPP(ImageCodecMPDrawBandProcPtr userRoutine) { return (ImageCodecMPDrawBandUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppImageCodecMPDrawBandProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewImageCodecMPDrawBandUPP(userRoutine) (ImageCodecMPDrawBandUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppImageCodecMPDrawBandProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeImageCodecMPDrawBandUPP() |
|
* |
|
* 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 ) |
|
DisposeImageCodecMPDrawBandUPP(ImageCodecMPDrawBandUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeImageCodecMPDrawBandUPP(ImageCodecMPDrawBandUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeImageCodecMPDrawBandUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeImageCodecMPDrawBandUPP() |
|
* |
|
* 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( ComponentResult ) |
|
InvokeImageCodecMPDrawBandUPP( |
|
void * refcon, |
|
ImageSubCodecDecompressRecord * drp, |
|
ImageCodecMPDrawBandUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(ComponentResult) InvokeImageCodecMPDrawBandUPP(void * refcon, ImageSubCodecDecompressRecord * drp, ImageCodecMPDrawBandUPP userUPP) { return (ComponentResult)CALL_TWO_PARAMETER_UPP(userUPP, uppImageCodecMPDrawBandProcInfo, refcon, drp); } |
|
#else |
|
#define InvokeImageCodecMPDrawBandUPP(refcon, drp, userUPP) (ComponentResult)CALL_TWO_PARAMETER_UPP((userUPP), uppImageCodecMPDrawBandProcInfo, (refcon), (drp)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewImageCodecMPDrawBandProc(userRoutine) NewImageCodecMPDrawBandUPP(userRoutine) |
|
#define CallImageCodecMPDrawBandProc(userRoutine, refcon, drp) InvokeImageCodecMPDrawBandUPP(refcon, drp, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* codec selectors 0-127 are reserved by Apple */ |
|
/* codec selectors 128-191 are subtype specific */ |
|
/* codec selectors 192-255 are vendor specific */ |
|
/* codec selectors 256-511 are available for general use */ |
|
/* codec selectors 512-1023 are reserved by Apple */ |
|
/* codec selectors 1024-32767 are available for general use */ |
|
/* negative selectors are reserved by the Component Manager */ |
|
/* |
|
* ImageCodecGetCodecInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecGetCodecInfo( |
|
ComponentInstance ci, |
|
CodecInfo * info) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0000, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetCompressionTime() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecGetCompressionTime( |
|
ComponentInstance ci, |
|
PixMapHandle src, |
|
const Rect * srcRect, |
|
short depth, |
|
CodecQ * spatialQuality, |
|
CodecQ * temporalQuality, |
|
unsigned long * time) FIVEWORDINLINE(0x2F3C, 0x0016, 0x0001, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetMaxCompressionSize() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecGetMaxCompressionSize( |
|
ComponentInstance ci, |
|
PixMapHandle src, |
|
const Rect * srcRect, |
|
short depth, |
|
CodecQ quality, |
|
long * size) FIVEWORDINLINE(0x2F3C, 0x0012, 0x0002, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecPreCompress() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecPreCompress( |
|
ComponentInstance ci, |
|
CodecCompressParams * params) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecBandCompress() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecBandCompress( |
|
ComponentInstance ci, |
|
CodecCompressParams * params) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecPreDecompress() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecPreDecompress( |
|
ComponentInstance ci, |
|
CodecDecompressParams * params) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecBandDecompress() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecBandDecompress( |
|
ComponentInstance ci, |
|
CodecDecompressParams * params) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecBusy() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecBusy( |
|
ComponentInstance ci, |
|
ImageSequence seq) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetCompressedImageSize() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecGetCompressedImageSize( |
|
ComponentInstance ci, |
|
ImageDescriptionHandle desc, |
|
Ptr data, |
|
long bufferSize, |
|
ICMDataProcRecordPtr dataProc, |
|
long * dataSize) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0008, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetSimilarity() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecGetSimilarity( |
|
ComponentInstance ci, |
|
PixMapHandle src, |
|
const Rect * srcRect, |
|
ImageDescriptionHandle desc, |
|
Ptr data, |
|
Fixed * similarity) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0009, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecTrimImage() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecTrimImage( |
|
ComponentInstance ci, |
|
ImageDescriptionHandle Desc, |
|
Ptr inData, |
|
long inBufferSize, |
|
ICMDataProcRecordPtr dataProc, |
|
Ptr outData, |
|
long outBufferSize, |
|
ICMFlushProcRecordPtr flushProc, |
|
Rect * trimRect, |
|
ICMProgressProcRecordPtr progressProc) FIVEWORDINLINE(0x2F3C, 0x0024, 0x000A, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecRequestSettings() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecRequestSettings( |
|
ComponentInstance ci, |
|
Handle settings, |
|
Rect * rp, |
|
ModalFilterUPP filterProc) FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetSettings() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecGetSettings( |
|
ComponentInstance ci, |
|
Handle settings) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecSetSettings() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecSetSettings( |
|
ComponentInstance ci, |
|
Handle settings) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecFlush() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecFlush(ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000E, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecSetTimeCode() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecSetTimeCode( |
|
ComponentInstance ci, |
|
void * timeCodeFormat, |
|
void * timeCodeTime) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000F, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecIsImageDescriptionEquivalent() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecIsImageDescriptionEquivalent( |
|
ComponentInstance ci, |
|
ImageDescriptionHandle newDesc, |
|
Boolean * equivalent) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0010, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecNewMemory() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecNewMemory( |
|
ComponentInstance ci, |
|
Ptr * data, |
|
Size dataSize, |
|
long dataUse, |
|
ICMMemoryDisposedUPP memoryGoneProc, |
|
void * refCon) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0011, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDisposeMemory() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecDisposeMemory( |
|
ComponentInstance ci, |
|
Ptr data) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecHitTestData() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecHitTestData( |
|
ComponentInstance ci, |
|
ImageDescriptionHandle desc, |
|
void * data, |
|
Size dataSize, |
|
Point where, |
|
Boolean * hit) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0013, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecNewImageBufferMemory() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecNewImageBufferMemory( |
|
ComponentInstance ci, |
|
CodecDecompressParams * params, |
|
long flags, |
|
ICMMemoryDisposedUPP memoryGoneProc, |
|
void * refCon) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0014, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecExtractAndCombineFields() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecExtractAndCombineFields( |
|
ComponentInstance ci, |
|
long fieldFlags, |
|
void * data1, |
|
long dataSize1, |
|
ImageDescriptionHandle desc1, |
|
void * data2, |
|
long dataSize2, |
|
ImageDescriptionHandle desc2, |
|
void * outputData, |
|
long * outDataSize, |
|
ImageDescriptionHandle descOut) FIVEWORDINLINE(0x2F3C, 0x0028, 0x0015, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetMaxCompressionSizeWithSources() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
ImageCodecGetMaxCompressionSizeWithSources( |
|
ComponentInstance ci, |
|
PixMapHandle src, |
|
const Rect * srcRect, |
|
short depth, |
|
CodecQ quality, |
|
CDSequenceDataSourcePtr sourceData, |
|
long * size) FIVEWORDINLINE(0x2F3C, 0x0016, 0x0016, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecSetTimeBase() |
|
* |
|
* 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 ) |
|
ImageCodecSetTimeBase( |
|
ComponentInstance ci, |
|
void * base) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecSourceChanged() |
|
* |
|
* 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 ) |
|
ImageCodecSourceChanged( |
|
ComponentInstance ci, |
|
UInt32 majorSourceChangeSeed, |
|
UInt32 minorSourceChangeSeed, |
|
CDSequenceDataSourcePtr sourceData, |
|
long * flagsOut) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0018, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecFlushFrame() |
|
* |
|
* 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 ) |
|
ImageCodecFlushFrame( |
|
ComponentInstance ci, |
|
UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetSettingsAsText() |
|
* |
|
* 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( ComponentResult ) |
|
ImageCodecGetSettingsAsText( |
|
ComponentInstance ci, |
|
Handle * text) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetParameterListHandle() |
|
* |
|
* 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 ) |
|
ImageCodecGetParameterListHandle( |
|
ComponentInstance ci, |
|
Handle * parameterDescriptionHandle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetParameterList() |
|
* |
|
* 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 ) |
|
ImageCodecGetParameterList( |
|
ComponentInstance ci, |
|
QTAtomContainer * parameterDescription) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecCreateStandardParameterDialog() |
|
* |
|
* 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 ) |
|
ImageCodecCreateStandardParameterDialog( |
|
ComponentInstance ci, |
|
QTAtomContainer parameterDescription, |
|
QTAtomContainer parameters, |
|
QTParameterDialogOptions dialogOptions, |
|
DialogPtr existingDialog, |
|
short existingUserItem, |
|
QTParameterDialog * createdDialog) FIVEWORDINLINE(0x2F3C, 0x0016, 0x001D, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecIsStandardParameterDialogEvent() |
|
* |
|
* 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 ) |
|
ImageCodecIsStandardParameterDialogEvent( |
|
ComponentInstance ci, |
|
EventRecord * pEvent, |
|
QTParameterDialog createdDialog) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001E, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDismissStandardParameterDialog() |
|
* |
|
* 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 ) |
|
ImageCodecDismissStandardParameterDialog( |
|
ComponentInstance ci, |
|
QTParameterDialog createdDialog) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecStandardParameterDialogDoAction() |
|
* |
|
* 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 ) |
|
ImageCodecStandardParameterDialogDoAction( |
|
ComponentInstance ci, |
|
QTParameterDialog createdDialog, |
|
long action, |
|
void * params) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0020, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecNewImageGWorld() |
|
* |
|
* 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 ) |
|
ImageCodecNewImageGWorld( |
|
ComponentInstance ci, |
|
CodecDecompressParams * params, |
|
GWorldPtr * newGW, |
|
long flags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0021, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDisposeImageGWorld() |
|
* |
|
* 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 ) |
|
ImageCodecDisposeImageGWorld( |
|
ComponentInstance ci, |
|
GWorldPtr theGW) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecHitTestDataWithFlags() |
|
* |
|
* 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( ComponentResult ) |
|
ImageCodecHitTestDataWithFlags( |
|
ComponentInstance ci, |
|
ImageDescriptionHandle desc, |
|
void * data, |
|
Size dataSize, |
|
Point where, |
|
long * hit, |
|
long hitFlags) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0023, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecValidateParameters() |
|
* |
|
* 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 ) |
|
ImageCodecValidateParameters( |
|
ComponentInstance ci, |
|
QTAtomContainer parameters, |
|
QTParameterValidationOptions validationFlags, |
|
StringPtr errorString) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetBaseMPWorkFunction() |
|
* |
|
* 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 ) |
|
ImageCodecGetBaseMPWorkFunction( |
|
ComponentInstance ci, |
|
ComponentMPWorkFunctionUPP * workFunction, |
|
void ** refCon, |
|
ImageCodecMPDrawBandUPP drawProc, |
|
void * drawProcRefCon) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0025, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecLockBits() |
|
* |
|
* 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 ) |
|
ImageCodecLockBits( |
|
ComponentInstance ci, |
|
CGrafPtr port) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecUnlockBits() |
|
* |
|
* 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 ) |
|
ImageCodecUnlockBits( |
|
ComponentInstance ci, |
|
CGrafPtr port) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecRequestGammaLevel() |
|
* |
|
* 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( ComponentResult ) |
|
ImageCodecRequestGammaLevel( |
|
ComponentInstance ci, |
|
Fixed srcGammaLevel, |
|
Fixed dstGammaLevel, |
|
long * codecCanMatch) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0028, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetSourceDataGammaLevel() |
|
* |
|
* 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( ComponentResult ) |
|
ImageCodecGetSourceDataGammaLevel( |
|
ComponentInstance ci, |
|
Fixed * sourceDataGammaLevel) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0029, 0x7000, 0xA82A); |
|
|
|
|
|
/* (Selector 42 skipped) */ |
|
/* |
|
* ImageCodecGetDecompressLatency() |
|
* |
|
* 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( ComponentResult ) |
|
ImageCodecGetDecompressLatency( |
|
ComponentInstance ci, |
|
TimeRecord * latency) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecMergeFloatingImageOntoWindow() |
|
* |
|
* 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 ) |
|
ImageCodecMergeFloatingImageOntoWindow( |
|
ComponentInstance ci, |
|
UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecRemoveFloatingImage() |
|
* |
|
* 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 ) |
|
ImageCodecRemoveFloatingImage( |
|
ComponentInstance ci, |
|
UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecGetDITLForSize() |
|
* |
|
* 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 ) |
|
ImageCodecGetDITLForSize( |
|
ComponentInstance ci, |
|
Handle * ditl, |
|
Point * requestedSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDITLInstall() |
|
* |
|
* 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 ) |
|
ImageCodecDITLInstall( |
|
ComponentInstance ci, |
|
DialogRef d, |
|
short itemOffset) FIVEWORDINLINE(0x2F3C, 0x0006, 0x002F, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDITLEvent() |
|
* |
|
* 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 ) |
|
ImageCodecDITLEvent( |
|
ComponentInstance ci, |
|
DialogRef d, |
|
short itemOffset, |
|
const EventRecord * theEvent, |
|
short * itemHit, |
|
Boolean * handled) FIVEWORDINLINE(0x2F3C, 0x0012, 0x0030, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDITLItem() |
|
* |
|
* 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 ) |
|
ImageCodecDITLItem( |
|
ComponentInstance ci, |
|
DialogRef d, |
|
short itemOffset, |
|
short itemNum) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDITLRemove() |
|
* |
|
* 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 ) |
|
ImageCodecDITLRemove( |
|
ComponentInstance ci, |
|
DialogRef d, |
|
short itemOffset) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0032, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDITLValidateInput() |
|
* |
|
* 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 ) |
|
ImageCodecDITLValidateInput( |
|
ComponentInstance ci, |
|
Boolean * ok) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0033, 0x7000, 0xA82A); |
|
|
|
|
|
/* (Selector 52 skipped) */ |
|
/* (Selector 53 skipped) */ |
|
/* |
|
* ImageCodecGetPreferredChunkSizeAndAlignment() |
|
* |
|
* Summary: |
|
* Returns the preferences of an image decompressor for the chunking |
|
* of image data within a container, e.g. a movie file. |
|
* |
|
* Discussion: |
|
* If you are writing image data to a container, you can optimize |
|
* the subsequent loading of the image data for playback and other |
|
* operations by chunking multiple samples of image data together. |
|
* This function can be called to determine whether an image |
|
* decompressor has special chunking preferences. |
|
* |
|
* Parameters: |
|
* |
|
* ci: |
|
* Component instance / instance globals. |
|
* |
|
* desc: |
|
* The image description for the image data to be chunked. |
|
* |
|
* frameRate: |
|
* Mean frame rate in frames per second as in SCTemporalSettings; |
|
* 0 if not known or not applicable. |
|
* |
|
* dataRate: |
|
* Mean data rate in bytes per second as in SCDataRateSettings; 0 |
|
* if not known. |
|
* |
|
* bytesPerChunk: |
|
* Points to a variable to receive the preferred maximum size in |
|
* bytes of each chunk of image data. It is not safe to pass NULL |
|
* for this parameter. The codec may indicate that it has no |
|
* preference regarding chunk sizing by setting the variable to 0. |
|
* |
|
* alignment: |
|
* Points to a variable to receive the preferred boundary for |
|
* chunk alignment in bytes, e.g. 512. It is not safe to pass NULL |
|
* for this parameter. The codec may indicate that it has no |
|
* preference regarding chunk alignment by setting the variable to |
|
* 0. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.4 (or QuickTime 7.0) and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecGetPreferredChunkSizeAndAlignment( |
|
ComponentInstance ci, |
|
ImageDescriptionHandle desc, |
|
Fixed frameRate, |
|
UInt32 dataRate, |
|
long * bytesPerChunk, |
|
long * alignment) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0036, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* B-Frame Capable Image Compressor Component API */ |
|
/* |
|
* ImageCodecPrepareToCompressFrames() |
|
* |
|
* Summary: |
|
* Prepares the compressor to receive frames. |
|
* |
|
* Discussion: |
|
* The compressor should record session and retain |
|
* compressionSessionOptions for use in later calls. |
|
* The compressor may modify imageDescription at this point. |
|
* The compressor should create and return pixel buffer attributes, |
|
* which the ICM will release. |
|
* (Note: this replaces ImageCodecPreCompress.) |
|
* |
|
* Parameters: |
|
* |
|
* ci: |
|
* Component instance / instance globals. |
|
* |
|
* session: |
|
* The compressor session reference. The compressor should store |
|
* this in its globals; it will need it when calling the ICM back |
|
* (eg, to call ICMEncodedFrameCreateMutable and |
|
* ICMCompressorSessionEmitEncodedFrame). |
|
* This is not a CF type. Do not call CFRetain or CFRelease on it. |
|
* |
|
* compressionSessionOptions: |
|
* The session options from the client. The compressor should |
|
* retain this and use the settings to guide compression. |
|
* |
|
* imageDescription: |
|
* The image description. The compressor may add image description |
|
* extensions. |
|
* |
|
* reserved: |
|
* Reserved for future use. Ignore this parameter. |
|
* |
|
* compressorPixelBufferAttributesOut: |
|
* The compressor should create a pixel buffer attributes |
|
* dictionary and set compressorPixelBufferAttributesOut to it. |
|
* The ICM will release it. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.4 (or QuickTime 7.0) and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecPrepareToCompressFrames( |
|
ComponentInstance ci, |
|
ICMCompressorSessionRef session, |
|
ICMCompressionSessionOptionsRef compressionSessionOptions, |
|
ImageDescriptionHandle imageDescription, |
|
void * reserved, |
|
CFDictionaryRef * compressorPixelBufferAttributesOut) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0037, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEncodeFrame() |
|
* |
|
* Summary: |
|
* Presents the compressor with a frame to encode. |
|
* |
|
* Discussion: |
|
* The compressor may encode the frame immediately or queue it for |
|
* later encoding. If the compressor queues the frame for later |
|
* decode, it must retain it (by calling |
|
* ICMCompressorSourceFrameRetain) and release it when it is done |
|
* with it (by calling ICMCompressorSourceFrameRelease). |
|
* Pixel buffers are guaranteed to conform to the pixel buffer |
|
* attributes returned by ImageCodecPrepareToCompressFrames. |
|
* During multipass encoding, if the compressor requested the |
|
* kICMCompressionPassMode_NoSourceFrames flag, the source frame |
|
* pixel buffers may be NULL. |
|
* (Note: this replaces ImageCodecBandCompress.) |
|
* |
|
* Parameters: |
|
* |
|
* ci: |
|
* Component instance / instance globals. |
|
* |
|
* sourceFrame: |
|
* The source frame to encode. |
|
* |
|
* flags: |
|
* Reserved; ignore. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.4 (or QuickTime 7.0) and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecEncodeFrame( |
|
ComponentInstance ci, |
|
ICMCompressorSourceFrameRef sourceFrame, |
|
UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0038, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecCompleteFrame() |
|
* |
|
* Summary: |
|
* Directs the compressor to finish with a queued source frame, |
|
* either emitting or dropping it. |
|
* |
|
* Discussion: |
|
* This frame does not necessarily need to be the first or only |
|
* source frame emitted or dropped during this call, but the |
|
* compressor must call either ICMCompressorSessionDropFrame or |
|
* ICMCompressorSessionEmitEncodedFrame with this frame before |
|
* returning. |
|
* The ICM will call this function to force frames to be encoded for |
|
* the following reasons: (a) the maximum frame delay count or |
|
* maximum frame delay time in the compressionSessionOptions does |
|
* not permit frames to be queued; (b) the client has called |
|
* ICMCompressionSessionCompleteFrames. |
|
* |
|
* Parameters: |
|
* |
|
* ci: |
|
* Component instance / instance globals. |
|
* |
|
* sourceFrame: |
|
* The source frame that must be completed. |
|
* |
|
* flags: |
|
* Reserved; ignore. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.4 (or QuickTime 7.0) and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecCompleteFrame( |
|
ComponentInstance ci, |
|
ICMCompressorSourceFrameRef sourceFrame, |
|
UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0039, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecBeginPass() |
|
* |
|
* Summary: |
|
* Notifies the compressor that it should operate in multipass mode |
|
* and use the given multipass storage. |
|
* |
|
* Parameters: |
|
* |
|
* ci: |
|
* Component instance / instance globals. |
|
* |
|
* passModeFlags: |
|
* Indicates how the compressor should operate in this pass. |
|
* If the kICMCompressionPassMode_WriteToMultiPassStorage flag is |
|
* set, the compressor may gather information of interest and |
|
* store it in multiPassStorage. |
|
* If the kICMCompressionPassMode_ReadFromMultiPassStorage flag is |
|
* set, the compressor may retrieve information from |
|
* multiPassStorage. |
|
* If the kICMCompressionPassMode_OutputEncodedFrames flag is set, |
|
* the compressor must encode or drop every frame by calling |
|
* ICMCompressorSessionDropFrame or |
|
* ICMCompressorSessionEmitEncodedFrame. If that flag is not set, |
|
* the compressor should not call these routines. |
|
* |
|
* flags: |
|
* Reserved. Ignore this parameter. |
|
* |
|
* multiPassStorage: |
|
* The multipass storage object that the compressor should use to |
|
* store and retrieve information between passes. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.4 (or QuickTime 7.0) and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecBeginPass( |
|
ComponentInstance ci, |
|
ICMCompressionPassModeFlags passModeFlags, |
|
UInt32 flags, |
|
ICMMultiPassStorageRef multiPassStorage) FIVEWORDINLINE(0x2F3C, 0x000C, 0x003A, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEndPass() |
|
* |
|
* Summary: |
|
* Notifies the compressor that a pass is over. |
|
* |
|
* Parameters: |
|
* |
|
* ci: |
|
* Component instance / instance globals. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.4 (or QuickTime 7.0) and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecEndPass(ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x003B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecProcessBetweenPasses() |
|
* |
|
* Summary: |
|
* Gives the compressor an opportunity to perform processing between |
|
* passes. |
|
* |
|
* Discussion: |
|
* This function will be called repeatedly until it returns true in |
|
* *interpassProcessingDoneOut. |
|
* The compressor may read and write to multiPassStorage. |
|
* The compressor should indicate which type of pass it would prefer |
|
* to perform next by setting *requestedNextPassTypeOut. |
|
* |
|
* Parameters: |
|
* |
|
* ci: |
|
* Component instance / instance globals. |
|
* |
|
* multiPassStorage: |
|
* The multipass storage object that the compressor should use to |
|
* store and retrieve information between passes. |
|
* |
|
* interpassProcessingDoneOut: |
|
* Points to a Boolean. Set this to false if you want your |
|
* ImageCodecProcessBetweenPasses function to be called again to |
|
* perform more processing, true if not. |
|
* |
|
* requestedNextPassModeFlagsOut: |
|
* Set *requestedNextPassModeFlagsOut to indicate the type of pass |
|
* that should be performed next: |
|
* To recommend a repeated analysis pass, set it to |
|
* kICMCompressionPassMode_ReadFromMultiPassStorage | |
|
* kICMCompressionPassMode_WriteToMultiPassStorage. |
|
* To recommend a final encoding pass, set it to |
|
* kICMCompressionPassMode_ReadFromMultiPassStorage | |
|
* kICMCompressionPassMode_OutputEncodedFrames. |
|
* If source frame buffers are not necessary for the recommended |
|
* pass (eg, because all the required data has been copied into |
|
* multipass storage), set kICMCompressionPassMode_NoSourceFrames. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.4 (or QuickTime 7.0) and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecProcessBetweenPasses( |
|
ComponentInstance ci, |
|
ICMMultiPassStorageRef multiPassStorage, |
|
Boolean * interpassProcessingDoneOut, |
|
ICMCompressionPassModeFlags * requestedNextPassModeFlagsOut) FIVEWORDINLINE(0x2F3C, 0x000C, 0x003C, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* (Selector 61 skipped) */ |
|
/* (Selector 62 skipped) */ |
|
/* (Selector 63 skipped) */ |
|
/* (Selector 64 skipped) */ |
|
/* (Selector 65 skipped) */ |
|
/* (Selector 66 skipped) */ |
|
/* |
|
* ImageCodecPreflight() |
|
* |
|
* 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 ) |
|
ImageCodecPreflight( |
|
ComponentInstance ci, |
|
CodecDecompressParams * params) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0200, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecInitialize() |
|
* |
|
* 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 ) |
|
ImageCodecInitialize( |
|
ComponentInstance ci, |
|
ImageSubCodecDecompressCapabilities * cap) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0201, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecBeginBand() |
|
* |
|
* 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 ) |
|
ImageCodecBeginBand( |
|
ComponentInstance ci, |
|
CodecDecompressParams * params, |
|
ImageSubCodecDecompressRecord * drp, |
|
long flags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0202, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDrawBand() |
|
* |
|
* 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 ) |
|
ImageCodecDrawBand( |
|
ComponentInstance ci, |
|
ImageSubCodecDecompressRecord * drp) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0203, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEndBand() |
|
* |
|
* 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 ) |
|
ImageCodecEndBand( |
|
ComponentInstance ci, |
|
ImageSubCodecDecompressRecord * drp, |
|
OSErr result, |
|
long flags) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0204, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecQueueStarting() |
|
* |
|
* 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 ) |
|
ImageCodecQueueStarting(ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0205, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecQueueStopping() |
|
* |
|
* 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 ) |
|
ImageCodecQueueStopping(ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0206, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDroppingFrame() |
|
* |
|
* 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 ) |
|
ImageCodecDroppingFrame( |
|
ComponentInstance ci, |
|
const ImageSubCodecDecompressRecord * drp) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0207, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecScheduleFrame() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 4.0 and later |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in qtmlClient.lib 4.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecScheduleFrame( |
|
ComponentInstance ci, |
|
const ImageSubCodecDecompressRecord * drp, |
|
ImageCodecTimeTriggerUPP triggerProc, |
|
void * triggerProcRefCon) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0208, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecCancelTrigger() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 4.0 and later |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in qtmlClient.lib 4.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecCancelTrigger(ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0209, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecDecodeBand() |
|
* |
|
* 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( ComponentResult ) |
|
ImageCodecDecodeBand( |
|
ComponentInstance ci, |
|
ImageSubCodecDecompressRecord * drp, |
|
unsigned long flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x020F, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
|
|
|
|
/* selectors for component calls */ |
|
enum { |
|
kImageCodecGetCodecInfoSelect = 0x0000, |
|
kImageCodecGetCompressionTimeSelect = 0x0001, |
|
kImageCodecGetMaxCompressionSizeSelect = 0x0002, |
|
kImageCodecPreCompressSelect = 0x0003, |
|
kImageCodecBandCompressSelect = 0x0004, |
|
kImageCodecPreDecompressSelect = 0x0005, |
|
kImageCodecBandDecompressSelect = 0x0006, |
|
kImageCodecBusySelect = 0x0007, |
|
kImageCodecGetCompressedImageSizeSelect = 0x0008, |
|
kImageCodecGetSimilaritySelect = 0x0009, |
|
kImageCodecTrimImageSelect = 0x000A, |
|
kImageCodecRequestSettingsSelect = 0x000B, |
|
kImageCodecGetSettingsSelect = 0x000C, |
|
kImageCodecSetSettingsSelect = 0x000D, |
|
kImageCodecFlushSelect = 0x000E, |
|
kImageCodecSetTimeCodeSelect = 0x000F, |
|
kImageCodecIsImageDescriptionEquivalentSelect = 0x0010, |
|
kImageCodecNewMemorySelect = 0x0011, |
|
kImageCodecDisposeMemorySelect = 0x0012, |
|
kImageCodecHitTestDataSelect = 0x0013, |
|
kImageCodecNewImageBufferMemorySelect = 0x0014, |
|
kImageCodecExtractAndCombineFieldsSelect = 0x0015, |
|
kImageCodecGetMaxCompressionSizeWithSourcesSelect = 0x0016, |
|
kImageCodecSetTimeBaseSelect = 0x0017, |
|
kImageCodecSourceChangedSelect = 0x0018, |
|
kImageCodecFlushFrameSelect = 0x0019, |
|
kImageCodecGetSettingsAsTextSelect = 0x001A, |
|
kImageCodecGetParameterListHandleSelect = 0x001B, |
|
kImageCodecGetParameterListSelect = 0x001C, |
|
kImageCodecCreateStandardParameterDialogSelect = 0x001D, |
|
kImageCodecIsStandardParameterDialogEventSelect = 0x001E, |
|
kImageCodecDismissStandardParameterDialogSelect = 0x001F, |
|
kImageCodecStandardParameterDialogDoActionSelect = 0x0020, |
|
kImageCodecNewImageGWorldSelect = 0x0021, |
|
kImageCodecDisposeImageGWorldSelect = 0x0022, |
|
kImageCodecHitTestDataWithFlagsSelect = 0x0023, |
|
kImageCodecValidateParametersSelect = 0x0024, |
|
kImageCodecGetBaseMPWorkFunctionSelect = 0x0025, |
|
kImageCodecLockBitsSelect = 0x0026, |
|
kImageCodecUnlockBitsSelect = 0x0027, |
|
kImageCodecRequestGammaLevelSelect = 0x0028, |
|
kImageCodecGetSourceDataGammaLevelSelect = 0x0029, |
|
kImageCodecGetDecompressLatencySelect = 0x002B, |
|
kImageCodecMergeFloatingImageOntoWindowSelect = 0x002C, |
|
kImageCodecRemoveFloatingImageSelect = 0x002D, |
|
kImageCodecGetDITLForSizeSelect = 0x002E, |
|
kImageCodecDITLInstallSelect = 0x002F, |
|
kImageCodecDITLEventSelect = 0x0030, |
|
kImageCodecDITLItemSelect = 0x0031, |
|
kImageCodecDITLRemoveSelect = 0x0032, |
|
kImageCodecDITLValidateInputSelect = 0x0033, |
|
kImageCodecGetPreferredChunkSizeAndAlignmentSelect = 0x0036, |
|
kImageCodecPrepareToCompressFramesSelect = 0x0037, |
|
kImageCodecEncodeFrameSelect = 0x0038, |
|
kImageCodecCompleteFrameSelect = 0x0039, |
|
kImageCodecBeginPassSelect = 0x003A, |
|
kImageCodecEndPassSelect = 0x003B, |
|
kImageCodecProcessBetweenPassesSelect = 0x003C, |
|
kImageCodecPreflightSelect = 0x0200, |
|
kImageCodecInitializeSelect = 0x0201, |
|
kImageCodecBeginBandSelect = 0x0202, |
|
kImageCodecDrawBandSelect = 0x0203, |
|
kImageCodecEndBandSelect = 0x0204, |
|
kImageCodecQueueStartingSelect = 0x0205, |
|
kImageCodecQueueStoppingSelect = 0x0206, |
|
kImageCodecDroppingFrameSelect = 0x0207, |
|
kImageCodecScheduleFrameSelect = 0x0208, |
|
kImageCodecCancelTriggerSelect = 0x0209, |
|
kImageCodecDecodeBandSelect = 0x020F |
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum { |
|
kMotionJPEGTag = FOUR_CHAR_CODE('mjpg'), |
|
kJPEGQuantizationTablesImageDescriptionExtension = FOUR_CHAR_CODE('mjqt'), |
|
kJPEGHuffmanTablesImageDescriptionExtension = FOUR_CHAR_CODE('mjht'), |
|
kFieldInfoImageDescriptionExtension = FOUR_CHAR_CODE('fiel') /* image description extension describing the field count and field orderings*/ |
|
}; |
|
|
|
enum { |
|
kFieldOrderUnknown = 0, |
|
kFieldsStoredF1F2DisplayedF1F2 = 1, |
|
kFieldsStoredF1F2DisplayedF2F1 = 2, |
|
kFieldsStoredF2F1DisplayedF1F2 = 5, |
|
kFieldsStoredF2F1DisplayedF2F1 = 6 |
|
}; |
|
|
|
struct MotionJPEGApp1Marker { |
|
long unused; |
|
long tag; |
|
long fieldSize; |
|
long paddedFieldSize; |
|
long offsetToNextField; |
|
long qTableOffset; |
|
long huffmanTableOffset; |
|
long sofOffset; |
|
long sosOffset; |
|
long soiOffset; |
|
}; |
|
typedef struct MotionJPEGApp1Marker MotionJPEGApp1Marker; |
|
struct FieldInfoImageDescriptionExtension { |
|
UInt8 fieldCount; |
|
UInt8 fieldOrderings; |
|
}; |
|
typedef struct FieldInfoImageDescriptionExtension FieldInfoImageDescriptionExtension; |
|
|
|
/* |
|
* QTPhotoSetSampling() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
QTPhotoSetSampling( |
|
ComponentInstance codec, |
|
short yH, |
|
short yV, |
|
short cbH, |
|
short cbV, |
|
short crH, |
|
short crV) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0100, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTPhotoSetRestartInterval() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
QTPhotoSetRestartInterval( |
|
ComponentInstance codec, |
|
unsigned short restartInterval) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0101, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTPhotoDefineHuffmanTable() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
QTPhotoDefineHuffmanTable( |
|
ComponentInstance codec, |
|
short componentNumber, |
|
Boolean isDC, |
|
unsigned char * lengthCounts, |
|
unsigned char * values) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTPhotoDefineQuantizationTable() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 2.5 and later |
|
* CarbonLib: in 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 ) |
|
QTPhotoDefineQuantizationTable( |
|
ComponentInstance codec, |
|
short componentNumber, |
|
unsigned char * table) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0103, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* selectors for component calls */ |
|
enum { |
|
kQTPhotoSetSamplingSelect = 0x0100, |
|
kQTPhotoSetRestartIntervalSelect = 0x0101, |
|
kQTPhotoDefineHuffmanTableSelect = 0x0102, |
|
kQTPhotoDefineQuantizationTableSelect = 0x0103 |
|
}; |
|
|
|
/* |
|
* Summary: |
|
* Properties for image compressor components |
|
*/ |
|
enum { |
|
|
|
/* |
|
* Property class for image compressor components. |
|
*/ |
|
kQTPropertyClass_ImageCompressor = FOUR_CHAR_CODE('imco') |
|
}; |
|
|
|
|
|
/* |
|
* Summary: |
|
* Enforced properties for image compressor components |
|
* |
|
* Discussion: |
|
* Image compressors that sometimes or always restrict image |
|
* dimensions, clean aperture and/or pixel aspect ratio should |
|
* support these properties. |
|
* If these properties can change dynamically for a compressor (eg, |
|
* in response to user interaction) then the properties should be |
|
* listenable, and the compressor should call the listeners whenever |
|
* the properties change. (In this case, the component's |
|
* GetComponentPropertyInfo function should set the |
|
* kComponentPropertyFlagWillNotifyListeners flag.) |
|
* If a compressor has a mode in which these properties are |
|
* flexible, then when the component is in that mode, (a) the |
|
* component's GetComponentProperty function should return |
|
* kQTPropertyAskLaterErr for these properties, and (b) the |
|
* component's GetComponentPropertyInfo function should set the |
|
* kComponentPropertyFlagCanGetLater flag for these properties. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* The encoded width enforced for compressed frames. |
|
*/ |
|
kICMImageCompressorPropertyID_EnforcedEncodedWidth = FOUR_CHAR_CODE('enwi'), /* SInt32, Read/Sometimes Listen */ |
|
|
|
/* |
|
* The encoded height enforced for compressed frames. |
|
*/ |
|
kICMImageCompressorPropertyID_EnforcedEncodedHeight = FOUR_CHAR_CODE('enhe'), /* SInt32, Read/Sometimes Listen */ |
|
|
|
/* |
|
* The clean aperture enforced for compressed frames. |
|
*/ |
|
kICMImageCompressorPropertyID_EnforcedCleanAperture = FOUR_CHAR_CODE('encl'), /* CleanApertureImageDescriptionExtension, Read/Sometimes Listen */ |
|
|
|
/* |
|
* The pixel aspect ratio enforced for compressed frames. |
|
*/ |
|
kICMImageCompressorPropertyID_EnforcedPixelAspectRatio = FOUR_CHAR_CODE('enpa'), /* PixelAspectRatioImageDescriptionExtension, Read/Sometimes Listen */ |
|
|
|
/* |
|
* The number and order of fields enforced for compressed frames. |
|
*/ |
|
kICMImageCompressorPropertyID_EnforcedFieldInfo = FOUR_CHAR_CODE('enfi') /* FieldInfoImageDescriptionExtension2, Read/Sometimes Listen */ |
|
}; |
|
|
|
|
|
|
|
/* |
|
* Summary: |
|
* DV Compressor Component Properties. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* Property class for DV compressors. (Applicable to DV25, DV50, |
|
* NTSC, PAL, PROPAL.) |
|
*/ |
|
kQTPropertyClass_DVCompressor = FOUR_CHAR_CODE('dvco'), |
|
|
|
/* |
|
* If set, indicates that the compressed frames should be marked as |
|
* progressive-scan. By default, this flag is clear, meaning that |
|
* frames should be marked as interlaced. |
|
*/ |
|
kDVCompressorPropertyID_ProgressiveScan = FOUR_CHAR_CODE('prog'), /* Boolean, Read/Write */ |
|
|
|
/* |
|
* If set, indicates that the compressor should use a 16:9 picture |
|
* aspect ratio. If clear, the compressor will use the default 4:3 |
|
* picture aspect ratio. |
|
*/ |
|
kDVCompressorPropertyID_AspectRatio16x9 = FOUR_CHAR_CODE('16x9') /* Boolean, Read/Write */ |
|
}; |
|
|
|
|
|
|
|
/* source identifier -- placed in root container of description, one or more required */ |
|
enum { |
|
kEffectSourceName = FOUR_CHAR_CODE('src ') |
|
}; |
|
|
|
|
|
/* source type -- placed in the input map to identify the source kind */ |
|
enum { |
|
kEffectDataSourceType = FOUR_CHAR_CODE('dtst') |
|
}; |
|
|
|
/* default effect types */ |
|
enum { |
|
kEffectRawSource = 0, /* the source is raw image data*/ |
|
kEffectGenericType = FOUR_CHAR_CODE('geff') /* generic effect for combining others*/ |
|
}; |
|
|
|
typedef struct EffectSource EffectSource; |
|
|
|
typedef EffectSource * EffectSourcePtr; |
|
union SourceData { |
|
CDSequenceDataSourcePtr image; |
|
EffectSourcePtr effect; |
|
}; |
|
typedef union SourceData SourceData; |
|
struct EffectSource { |
|
long effectType; /* type of effect or kEffectRawSource if raw ICM data*/ |
|
Ptr data; /* track data for this effect*/ |
|
SourceData source; /* source/effect pointers*/ |
|
EffectSourcePtr next; /* the next source for the parent effect*/ |
|
|
|
/* fields added for QuickTime 4.0*/ |
|
TimeValue lastTranslatedFrameTime; /* start frame time of last converted frame, may be -1*/ |
|
TimeValue lastFrameDuration; /* duration of the last converted frame, may be zero*/ |
|
TimeValue lastFrameTimeScale; /* time scale of this source frame, only has meaning if above fields are valid*/ |
|
}; |
|
|
|
struct ICMFrameTimeRecord_QT3 { |
|
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*/ |
|
}; |
|
typedef struct ICMFrameTimeRecord_QT3 ICMFrameTimeRecord_QT3; |
|
struct EffectsFrameParams { |
|
ICMFrameTimeRecord_QT3 frameTime; /* timing data (uses non-extended ICMFrameTimeRecord)*/ |
|
long effectDuration; /* the duration of a single effect frame*/ |
|
Boolean doAsync; /* set to true if the effect can go async*/ |
|
unsigned char pad[3]; |
|
EffectSourcePtr source; /* ptr to the source input tree*/ |
|
void * refCon; /* storage for the effect*/ |
|
}; |
|
typedef struct EffectsFrameParams EffectsFrameParams; |
|
typedef EffectsFrameParams * EffectsFrameParamsPtr; |
|
|
|
/* |
|
* ImageCodecEffectSetup() |
|
* |
|
* 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 ) |
|
ImageCodecEffectSetup( |
|
ComponentInstance effect, |
|
CodecDecompressParams * p) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0300, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEffectBegin() |
|
* |
|
* 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 ) |
|
ImageCodecEffectBegin( |
|
ComponentInstance effect, |
|
CodecDecompressParams * p, |
|
EffectsFrameParamsPtr ePtr) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0301, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEffectRenderFrame() |
|
* |
|
* 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 ) |
|
ImageCodecEffectRenderFrame( |
|
ComponentInstance effect, |
|
EffectsFrameParamsPtr p) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0302, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEffectConvertEffectSourceToFormat() |
|
* |
|
* 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 ) |
|
ImageCodecEffectConvertEffectSourceToFormat( |
|
ComponentInstance effect, |
|
EffectSourcePtr sourceToConvert, |
|
ImageDescriptionHandle requestedDesc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0303, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEffectCancel() |
|
* |
|
* 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 ) |
|
ImageCodecEffectCancel( |
|
ComponentInstance effect, |
|
EffectsFrameParamsPtr p) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0304, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEffectGetSpeed() |
|
* |
|
* 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 ) |
|
ImageCodecEffectGetSpeed( |
|
ComponentInstance effect, |
|
QTAtomContainer parameters, |
|
Fixed * pFPS) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0305, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
enum { |
|
kSMPTENoFlag = 0, |
|
kSMPTESmoothEdgeFlag = 0x01, /* smooth edges of the stroke*/ |
|
kSMPTEStrokeEdgeFlag = 0x02 /* stroke edge with color*/ |
|
}; |
|
|
|
typedef long SMPTEFlags; |
|
typedef long SMPTEFrameReference; |
|
enum { |
|
kSlideHorizontalWipe = 1, |
|
kSlideVerticalWipe = 2, |
|
kTopLeftWipe = 3, |
|
kTopRightWipe = 4, |
|
kBottomRightWipe = 5, |
|
kBottomLeftWipe = 6, |
|
kFourCornerWipe = 7, |
|
kFourBoxWipe = 8, |
|
kBarnVerticalWipe = 21, |
|
kBarnHorizontalWipe = 22, |
|
kTopCenterWipe = 23, |
|
kRightCenterWipe = 24, |
|
kBottomCenterWipe = 25, |
|
kLeftCenterWipe = 26, |
|
kDiagonalLeftDownWipe = 41, |
|
kDiagonalRightDownWipe = 42, |
|
kTopBottomBowTieWipe = 43, |
|
kLeftRightBowTieWipe = 44, |
|
kDiagonalLeftOutWipe = 45, |
|
kDiagonalRightOutWipe = 46, |
|
kDiagonalCrossWipe = 47, |
|
kDiagonalBoxWipe = 48, |
|
kFilledVWipe = 61, |
|
kFilledVRightWipe = 62, |
|
kFilledVBottomWipe = 63, |
|
kFilledVLeftWipe = 64, |
|
kHollowVWipe = 65, |
|
kHollowVRightWipe = 66, |
|
kHollowVBottomWipe = 67, |
|
kHollowVLeftWipe = 68, |
|
kVerticalZigZagWipe = 71, |
|
kHorizontalZigZagWipe = 72, |
|
kVerticalBarnZigZagWipe = 73, |
|
kHorizontalBarnZigZagWipe = 74 |
|
}; |
|
|
|
enum { |
|
kRectangleWipe = 101, |
|
kDiamondWipe = 102, |
|
kTriangleWipe = 103, |
|
kTriangleRightWipe = 104, |
|
kTriangleUpsideDownWipe = 105, |
|
kTriangleLeftWipe = 106, |
|
kSpaceShipWipe = 107, |
|
kSpaceShipRightWipe = 108, |
|
kSpaceShipUpsideDownWipe = 109, |
|
kSpaceShipLeftWipe = 110, |
|
kPentagonWipe = 111, |
|
kPentagonUpsideDownWipe = 112, |
|
kHexagonWipe = 113, |
|
kHexagonSideWipe = 114, |
|
kCircleWipe = 119, |
|
kOvalWipe = 120, |
|
kOvalSideWipe = 121, |
|
kCatEyeWipe = 122, |
|
kCatEyeSideWipe = 123, |
|
kRoundRectWipe = 124, |
|
kRoundRectSideWipe = 125, |
|
kFourPointStarWipe = 127, |
|
kFivePointStarWipe = 128, |
|
kStarOfDavidWipe = 129, |
|
kHeartWipe = 130, |
|
kKeyholeWipe = 131 |
|
}; |
|
|
|
enum { |
|
kRotatingTopWipe = 201, |
|
kRotatingRightWipe = 202, |
|
kRotatingBottomWipe = 203, |
|
kRotatingLeftWipe = 204, |
|
kRotatingTopBottomWipe = 205, |
|
kRotatingLeftRightWipe = 206, |
|
kRotatingQuadrantWipe = 207, |
|
kTopToBottom180Wipe = 211, |
|
kRightToLeft180Wipe = 212, |
|
kTopToBottom90Wipe = 213, |
|
kRightToLeft90Wipe = 214, |
|
kTop180Wipe = 221, |
|
kRight180Wipe = 222, |
|
kBottom180Wipe = 223, |
|
kLeft180Wipe = 224, |
|
kCounterRotatingTopBottomWipe = 225, |
|
kCounterRotatingLeftRightWipe = 226, |
|
kDoubleRotatingTopBottomWipe = 227, |
|
kDoubleRotatingLeftRightWipe = 228, |
|
kVOpenTopWipe = 231, |
|
kVOpenRightWipe = 232, |
|
kVOpenBottomWipe = 233, |
|
kVOpenLeftWipe = 234, |
|
kVOpenTopBottomWipe = 235, |
|
kVOpenLeftRightWipe = 236, |
|
kRotatingTopLeftWipe = 241, |
|
kRotatingBottomLeftWipe = 242, |
|
kRotatingBottomRightWipe = 243, |
|
kRotatingTopRightWipe = 244, |
|
kRotatingTopLeftBottomRightWipe = 245, |
|
kRotatingBottomLeftTopRightWipe = 246, |
|
kRotatingTopLeftRightWipe = 251, |
|
kRotatingLeftTopBottomWipe = 252, |
|
kRotatingBottomLeftRightWipe = 253, |
|
kRotatingRightTopBottomWipe = 254, |
|
kRotatingDoubleCenterRightWipe = 261, |
|
kRotatingDoubleCenterTopWipe = 262, |
|
kRotatingDoubleCenterTopBottomWipe = 263, |
|
kRotatingDoubleCenterLeftRightWipe = 264 |
|
}; |
|
|
|
enum { |
|
kHorizontalMatrixWipe = 301, |
|
kVerticalMatrixWipe = 302, |
|
kTopLeftDiagonalMatrixWipe = 303, |
|
kTopRightDiagonalMatrixWipe = 304, |
|
kBottomRightDiagonalMatrixWipe = 305, |
|
kBottomLeftDiagonalMatrixWipe = 306, |
|
kClockwiseTopLeftMatrixWipe = 310, |
|
kClockwiseTopRightMatrixWipe = 311, |
|
kClockwiseBottomRightMatrixWipe = 312, |
|
kClockwiseBottomLeftMatrixWipe = 313, |
|
kCounterClockwiseTopLeftMatrixWipe = 314, |
|
kCounterClockwiseTopRightMatrixWipe = 315, |
|
kCounterClockwiseBottomRightMatrixWipe = 316, |
|
kCounterClockwiseBottomLeftMatrixWipe = 317, |
|
kVerticalStartTopMatrixWipe = 320, |
|
kVerticalStartBottomMatrixWipe = 321, |
|
kVerticalStartTopOppositeMatrixWipe = 322, |
|
kVerticalStartBottomOppositeMatrixWipe = 323, |
|
kHorizontalStartLeftMatrixWipe = 324, |
|
kHorizontalStartRightMatrixWipe = 325, |
|
kHorizontalStartLeftOppositeMatrixWipe = 326, |
|
kHorizontalStartRightOppositeMatrixWipe = 327, |
|
kDoubleDiagonalTopRightMatrixWipe = 328, |
|
kDoubleDiagonalBottomRightMatrixWipe = 329, |
|
kDoubleSpiralTopMatixWipe = 340, |
|
kDoubleSpiralBottomMatixWipe = 341, |
|
kDoubleSpiralLeftMatixWipe = 342, |
|
kDoubleSpiralRightMatixWipe = 343, |
|
kQuadSpiralVerticalMatixWipe = 344, |
|
kQuadSpiralHorizontalMatixWipe = 345, |
|
kVerticalWaterfallLeftMatrixWipe = 350, |
|
kVerticalWaterfallRightMatrixWipe = 351, |
|
kHorizontalWaterfallLeftMatrixWipe = 352, |
|
kHorizontalWaterfallRightMatrixWipe = 353, |
|
kRandomWipe = 409, /* non-SMPTE standard numbers*/ |
|
kRandomWipeGroupWipe = 501, |
|
kRandomIrisGroupWipe = 502, |
|
kRandomRadialGroupWipe = 503, |
|
kRandomMatrixGroupWipe = 504 |
|
}; |
|
|
|
typedef unsigned long SMPTEWipeType; |
|
/* |
|
* ImageCodecEffectPrepareSMPTEFrame() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 4.0 and later |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in qtmlClient.lib 4.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecEffectPrepareSMPTEFrame( |
|
ComponentInstance effect, |
|
PixMapPtr destPixMap, |
|
SMPTEFrameReference * returnValue) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0100, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEffectDisposeSMPTEFrame() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 4.0 and later |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in qtmlClient.lib 4.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecEffectDisposeSMPTEFrame( |
|
ComponentInstance effect, |
|
SMPTEFrameReference frameRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* ImageCodecEffectRenderSMPTEFrame() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QuickTimeLib 4.0 and later |
|
* CarbonLib: in CarbonLib 1.0.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in qtmlClient.lib 4.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
ImageCodecEffectRenderSMPTEFrame( |
|
ComponentInstance effect, |
|
PixMapPtr destPixMap, |
|
SMPTEFrameReference frameRef, |
|
Fixed effectPercentageEven, |
|
Fixed effectPercentageOdd, |
|
Rect * pSourceRect, |
|
MatrixRecord * matrixP, |
|
SMPTEWipeType effectNumber, |
|
long xRepeat, |
|
long yRepeat, |
|
SMPTEFlags flags, |
|
Fixed penWidth, |
|
long strokeValue) FIVEWORDINLINE(0x2F3C, 0x0030, 0x0102, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* selectors for component calls */ |
|
enum { |
|
kImageCodecEffectSetupSelect = 0x0300, |
|
kImageCodecEffectBeginSelect = 0x0301, |
|
kImageCodecEffectRenderFrameSelect = 0x0302, |
|
kImageCodecEffectConvertEffectSourceToFormatSelect = 0x0303, |
|
kImageCodecEffectCancelSelect = 0x0304, |
|
kImageCodecEffectGetSpeedSelect = 0x0305, |
|
kImageCodecEffectPrepareSMPTEFrameSelect = 0x0100, |
|
kImageCodecEffectDisposeSMPTEFrameSelect = 0x0101, |
|
kImageCodecEffectRenderSMPTEFrameSelect = 0x0102 |
|
}; |
|
|
|
|
|
/* curve atom types and data structures */ |
|
enum { |
|
kCurvePathAtom = FOUR_CHAR_CODE('path'), |
|
kCurveEndAtom = FOUR_CHAR_CODE('zero'), |
|
kCurveAntialiasControlAtom = FOUR_CHAR_CODE('anti'), |
|
kCurveAntialiasOff = 0, |
|
kCurveAntialiasOn = (long)0xFFFFFFFF, |
|
kCurveFillTypeAtom = FOUR_CHAR_CODE('fill'), |
|
kCurvePenThicknessAtom = FOUR_CHAR_CODE('pent'), |
|
kCurveMiterLimitAtom = FOUR_CHAR_CODE('mitr'), |
|
kCurveJoinAttributesAtom = FOUR_CHAR_CODE('join'), |
|
kCurveMinimumDepthAtom = FOUR_CHAR_CODE('mind'), |
|
kCurveDepthAlwaysOffscreenMask = (long)0x80000000, |
|
kCurveTransferModeAtom = FOUR_CHAR_CODE('xfer'), |
|
kCurveGradientAngleAtom = FOUR_CHAR_CODE('angl'), |
|
kCurveGradientRadiusAtom = FOUR_CHAR_CODE('radi'), |
|
kCurveGradientOffsetAtom = FOUR_CHAR_CODE('cent') |
|
}; |
|
|
|
enum { |
|
kCurveARGBColorAtom = FOUR_CHAR_CODE('argb') |
|
}; |
|
|
|
struct ARGBColor { |
|
unsigned short alpha; |
|
unsigned short red; |
|
unsigned short green; |
|
unsigned short blue; |
|
}; |
|
typedef struct ARGBColor ARGBColor; |
|
enum { |
|
kCurveGradientRecordAtom = FOUR_CHAR_CODE('grad') |
|
}; |
|
|
|
struct GradientColorRecord { |
|
ARGBColor thisColor; |
|
Fixed endingPercentage; |
|
}; |
|
typedef struct GradientColorRecord GradientColorRecord; |
|
typedef GradientColorRecord * GradientColorPtr; |
|
enum { |
|
kCurveGradientTypeAtom = FOUR_CHAR_CODE('grdt') |
|
}; |
|
|
|
/* currently supported gradient types */ |
|
enum { |
|
kLinearGradient = 0, |
|
kCircularGradient = 1 |
|
}; |
|
|
|
typedef long GradientType; |
|
/* |
|
* CurveGetLength() |
|
* |
|
* 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 ) |
|
CurveGetLength( |
|
ComponentInstance effect, |
|
gxPaths * target, |
|
long index, |
|
wide * wideLength) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0100, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveLengthToPoint() |
|
* |
|
* 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 ) |
|
CurveLengthToPoint( |
|
ComponentInstance effect, |
|
gxPaths * target, |
|
long index, |
|
Fixed length, |
|
FixedPoint * location, |
|
FixedPoint * tangent) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0101, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveNewPath() |
|
* |
|
* 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 ) |
|
CurveNewPath( |
|
ComponentInstance effect, |
|
Handle * pPath) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveCountPointsInPath() |
|
* |
|
* 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 ) |
|
CurveCountPointsInPath( |
|
ComponentInstance effect, |
|
gxPaths * aPath, |
|
unsigned long contourIndex, |
|
unsigned long * pCount) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveGetPathPoint() |
|
* |
|
* 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 ) |
|
CurveGetPathPoint( |
|
ComponentInstance effect, |
|
gxPaths * aPath, |
|
unsigned long contourIndex, |
|
unsigned long pointIndex, |
|
gxPoint * thePoint, |
|
Boolean * ptIsOnPath) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0104, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveInsertPointIntoPath() |
|
* |
|
* 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 ) |
|
CurveInsertPointIntoPath( |
|
ComponentInstance effect, |
|
gxPoint * aPoint, |
|
Handle thePath, |
|
unsigned long contourIndex, |
|
unsigned long pointIndex, |
|
Boolean ptIsOnPath) FIVEWORDINLINE(0x2F3C, 0x0012, 0x0105, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveSetPathPoint() |
|
* |
|
* 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 ) |
|
CurveSetPathPoint( |
|
ComponentInstance effect, |
|
gxPaths * aPath, |
|
unsigned long contourIndex, |
|
unsigned long pointIndex, |
|
gxPoint * thePoint, |
|
Boolean ptIsOnPath) FIVEWORDINLINE(0x2F3C, 0x0012, 0x0106, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveGetNearestPathPoint() |
|
* |
|
* 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 ) |
|
CurveGetNearestPathPoint( |
|
ComponentInstance effect, |
|
gxPaths * aPath, |
|
FixedPoint * thePoint, |
|
unsigned long * contourIndex, |
|
unsigned long * pointIndex, |
|
Fixed * theDelta) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0107, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurvePathPointToLength() |
|
* |
|
* 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 ) |
|
CurvePathPointToLength( |
|
ComponentInstance ci, |
|
gxPaths * aPath, |
|
Fixed startDist, |
|
Fixed endDist, |
|
FixedPoint * thePoint, |
|
Fixed * pLength) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0108, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveCreateVectorStream() |
|
* |
|
* 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 ) |
|
CurveCreateVectorStream( |
|
ComponentInstance effect, |
|
Handle * pStream) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveAddAtomToVectorStream() |
|
* |
|
* 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 ) |
|
CurveAddAtomToVectorStream( |
|
ComponentInstance effect, |
|
OSType atomType, |
|
Size atomSize, |
|
void * pAtomData, |
|
Handle vectorStream) FIVEWORDINLINE(0x2F3C, 0x0010, 0x010A, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveAddPathAtomToVectorStream() |
|
* |
|
* 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 ) |
|
CurveAddPathAtomToVectorStream( |
|
ComponentInstance effect, |
|
Handle pathData, |
|
Handle vectorStream) FIVEWORDINLINE(0x2F3C, 0x0008, 0x010B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveAddZeroAtomToVectorStream() |
|
* |
|
* 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 ) |
|
CurveAddZeroAtomToVectorStream( |
|
ComponentInstance effect, |
|
Handle vectorStream) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010C, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* CurveGetAtomDataFromVectorStream() |
|
* |
|
* 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 ) |
|
CurveGetAtomDataFromVectorStream( |
|
ComponentInstance effect, |
|
Handle vectorStream, |
|
long atomType, |
|
long * dataSize, |
|
Ptr * dataPtr) FIVEWORDINLINE(0x2F3C, 0x0010, 0x010D, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
|
|
/* selectors for component calls */ |
|
enum { |
|
kCurveGetLengthSelect = 0x0100, |
|
kCurveLengthToPointSelect = 0x0101, |
|
kCurveNewPathSelect = 0x0102, |
|
kCurveCountPointsInPathSelect = 0x0103, |
|
kCurveGetPathPointSelect = 0x0104, |
|
kCurveInsertPointIntoPathSelect = 0x0105, |
|
kCurveSetPathPointSelect = 0x0106, |
|
kCurveGetNearestPathPointSelect = 0x0107, |
|
kCurvePathPointToLengthSelect = 0x0108, |
|
kCurveCreateVectorStreamSelect = 0x0109, |
|
kCurveAddAtomToVectorStreamSelect = 0x010A, |
|
kCurveAddPathAtomToVectorStreamSelect = 0x010B, |
|
kCurveAddZeroAtomToVectorStreamSelect = 0x010C, |
|
kCurveGetAtomDataFromVectorStreamSelect = 0x010D |
|
}; |
|
/* UPP call backs */ |
|
|
|
#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 /* __IMAGECODEC__ */ |
|
|
|
|