| Framework | Frameworks/QuickTime.framework |
| Declared in | ImageCompression.h |
Applications can use the QuickTime image compression APIs to compress and decompress sounds, images, and image sequences, as well as to transcode sounds and images between compression formats.
ImageTranscoderBeginSequence
ImageTranscoderConvert
ImageTranscoderDisposeData
ImageTranscoderEndSequence
ICMCompressionSessionCompleteFrames
ICMCompressionSessionCreate
ICMCompressionSessionEncodeFrame
ICMCompressionSessionGetImageDescription
ICMCompressionSessionGetPixelBufferPool
ICMCompressionSessionGetProperty
QTOpenGLTextureContextCreate
QTVisualContextCopyImageForTime
QTVisualContextGetAttribute
QTVisualContextGetTypeID
QTVisualContextIsNewImageAvailable
QTVisualContextRelease
QTVisualContextRetain
QTVisualContextSetAttribute
QTVisualContextSetImageAvailableCallback
QTVisualContextTask
DisposeICMAlignmentUPP
DisposeICMCompletionUPP
DisposeICMConvertDataFormatUPP
DisposeICMCursorShieldedUPP
DisposeICMDataUPP
DisposeICMFlushUPP
DisposeICMMemoryDisposedUPP
DisposeICMProgressUPP
DisposeQDPixUPP
DisposeStdPixUPP
ICMCompressionFrameOptionsCreate
ICMCompressionFrameOptionsCreateCopy
ICMCompressionFrameOptionsGetForceKeyFrame
ICMCompressionFrameOptionsGetFrameType
ICMCompressionFrameOptionsGetProperty
ICMCompressionFrameOptionsGetPropertyInfo
ICMCompressionFrameOptionsGetTypeID
ICMCompressionFrameOptionsRelease
ICMCompressionFrameOptionsRetain
ICMCompressionFrameOptionsSetForceKeyFrame
ICMCompressionFrameOptionsSetFrameType
ICMCompressionFrameOptionsSetProperty
ICMCompressionSessionBeginPass
ICMCompressionSessionEndPass
ICMCompressionSessionGetPropertyInfo
ICMCompressionSessionGetTimeScale
ICMCompressionSessionGetTypeID
ICMCompressionSessionOptionsCreate
ICMCompressionSessionOptionsCreateCopy
ICMCompressionSessionOptionsGetAllowFrameReordering
ICMCompressionSessionOptionsGetAllowFrameTimeChanges
ICMCompressionSessionOptionsGetAllowTemporalCompression
ICMCompressionSessionOptionsGetDurationsNeeded
ICMCompressionSessionOptionsGetMaxKeyFrameInterval
ICMCompressionSessionOptionsGetProperty
ICMCompressionSessionOptionsGetPropertyInfo
ICMCompressionSessionOptionsGetTypeID
ICMCompressionSessionOptionsRelease
ICMCompressionSessionOptionsRetain
ICMCompressionSessionOptionsSetAllowFrameReordering
ICMCompressionSessionOptionsSetAllowFrameTimeChanges
ICMCompressionSessionOptionsSetAllowTemporalCompression
ICMCompressionSessionOptionsSetDurationsNeeded
ICMCompressionSessionOptionsSetMaxKeyFrameInterval
ICMCompressionSessionOptionsSetProperty
ICMCompressionSessionProcessBetweenPasses
ICMCompressionSessionRelease
ICMCompressionSessionRetain
ICMCompressionSessionSetProperty
ICMCompressionSessionSupportsMultiPassEncoding
ICMCompressorSessionDropFrame
ICMCompressorSessionEmitEncodedFrame
ICMCompressorSourceFrameGetDisplayNumber
ICMCompressorSourceFrameGetDisplayTimeStampAndDuration
ICMCompressorSourceFrameGetFrameOptions
ICMCompressorSourceFrameGetPixelBuffer
ICMCompressorSourceFrameGetTypeID
ICMCompressorSourceFrameRelease
ICMCompressorSourceFrameRetain
ICMDecompressionFrameOptionsCreate
ICMDecompressionFrameOptionsCreateCopy
ICMDecompressionFrameOptionsGetProperty
ICMDecompressionFrameOptionsGetPropertyInfo
ICMDecompressionFrameOptionsGetTypeID
ICMDecompressionFrameOptionsRelease
ICMDecompressionFrameOptionsRetain
ICMDecompressionFrameOptionsSetProperty
ICMDecompressionSessionCreate
ICMDecompressionSessionCreateForVisualContext
ICMDecompressionSessionDecodeFrame
ICMDecompressionSessionFlush
ICMDecompressionSessionGetProperty
ICMDecompressionSessionGetPropertyInfo
ICMDecompressionSessionGetTypeID
ICMDecompressionSessionOptionsCreate
ICMDecompressionSessionOptionsCreateCopy
ICMDecompressionSessionOptionsGetProperty
ICMDecompressionSessionOptionsGetPropertyInfo
ICMDecompressionSessionOptionsGetTypeID
ICMDecompressionSessionOptionsRelease
ICMDecompressionSessionOptionsRetain
ICMDecompressionSessionOptionsSetProperty
ICMDecompressionSessionRelease
ICMDecompressionSessionRetain
ICMDecompressionSessionSetNonScheduledDisplayDirection
ICMDecompressionSessionSetNonScheduledDisplayTime
ICMDecompressionSessionSetProperty
ICMEncodedFrameCreateMutable
ICMEncodedFrameGetBufferSize
ICMEncodedFrameGetDataPtr
ICMEncodedFrameGetDataSize
ICMEncodedFrameGetDecodeDuration
ICMEncodedFrameGetDecodeNumber
ICMEncodedFrameGetDecodeTimeStamp
ICMEncodedFrameGetDisplayDuration
ICMEncodedFrameGetDisplayOffset
ICMEncodedFrameGetDisplayTimeStamp
ICMEncodedFrameGetFrameType
ICMEncodedFrameGetImageDescription
ICMEncodedFrameGetMediaSampleFlags
ICMEncodedFrameGetSimilarity
ICMEncodedFrameGetSourceFrameRefCon
ICMEncodedFrameGetTimeScale
ICMEncodedFrameGetTypeID
ICMEncodedFrameGetValidTimeFlags
ICMEncodedFrameRelease
ICMEncodedFrameRetain
ICMEncodedFrameSetDataSize
ICMEncodedFrameSetDecodeDuration
ICMEncodedFrameSetDecodeTimeStamp
ICMEncodedFrameSetDisplayDuration
ICMEncodedFrameSetDisplayTimeStamp
ICMEncodedFrameSetFrameType
ICMEncodedFrameSetMediaSampleFlags
ICMEncodedFrameSetSimilarity
ICMEncodedFrameSetValidTimeFlags
ICMImageDescriptionGetProperty
ICMImageDescriptionGetPropertyInfo
ICMImageDescriptionSetProperty
ICMMultiPassStorageCopyDataAtTimeStamp
ICMMultiPassStorageCreateWithCallbacks
ICMMultiPassStorageCreateWithTemporaryFile
ICMMultiPassStorageGetTimeStamp
ICMMultiPassStorageGetTypeID
ICMMultiPassStorageRelease
ICMMultiPassStorageRetain
ICMMultiPassStorageSetDataAtTimeStamp
NewICMAlignmentUPP
NewICMCompletionUPP
NewICMConvertDataFormatUPP
NewICMCursorShieldedUPP
NewICMDataUPP
NewICMFlushUPP
NewICMMemoryDisposedUPP
NewICMProgressUPP
NewQDPixUPP
NewStdPixUPP
QTAddComponentPropertyListener
QTComponentPropertyListenerCollectionAddListener
QTComponentPropertyListenerCollectionCreate
QTComponentPropertyListenerCollectionHasListenersForProperty
QTComponentPropertyListenerCollectionIsEmpty
QTComponentPropertyListenerCollectionNotifyListeners
QTComponentPropertyListenerCollectionRemoveListener
QTGetComponentProperty
QTGetComponentPropertyInfo
QTPixelBufferContextCreate
QTRemoveComponentPropertyListener
QTSetComponentProperty
Disposes of an ICMAlignmentUPP pointer.
void DisposeICMAlignmentUPP ( ICMAlignmentUPP userUPP );
An ICMAlignmentUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of an ICMCompletionUPP pointer.
void DisposeICMCompletionUPP ( ICMCompletionUPP userUPP );
An ICMCompletionUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of an ICMConvertDataFormatUPP pointer.
void DisposeICMConvertDataFormatUPP ( ICMConvertDataFormatUPP userUPP );
An ICMConvertDataFormatUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of an ICMCursorShieldedUPP pointer.
void DisposeICMCursorShieldedUPP ( ICMCursorShieldedUPP userUPP );
An ICMCursorShieldedUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of an ICMDataUPP pointer.
void DisposeICMDataUPP ( ICMDataUPP userUPP );
An ICMDataUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of an ICMFlushUPP pointer.
void DisposeICMFlushUPP ( ICMFlushUPP userUPP );
An ICMFlushUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of an ICMMemoryDisposedUPP pointer.
void DisposeICMMemoryDisposedUPP ( ICMMemoryDisposedUPP userUPP );
An ICMMemoryDisposedUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of an ICMProgressUPP pointer.
void DisposeICMProgressUPP ( ICMProgressUPP userUPP );
An ICMProgressUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of a QDPixUPP pointer.
void DisposeQDPixUPP ( QDPixUPP userUPP );
A QDPixUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hDisposes of a StdPixUPP pointer.
void DisposeStdPixUPP ( StdPixUPP userUPP );
A StdPixUPP pointer. See Universal Procedure Pointers.
You can access this function's error returns through GetMoviesError and GetMoviesStickyError.
Introduced in QuickTime 4.1.
ImageCompression.hCreates a frame compression options object.
OSStatus ICMCompressionFrameOptionsCreate ( CFAllocatorRef allocator, ICMCompressionSessionRef session, ICMCompressionFrameOptionsRef *options );
An allocator. Pass NULL to use the default allocator.
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
On return, a reference to a new frame compression options object.
An error code. Returns noErr if there is no error.
ImageCompression.hCopies a frame compression options object.
OSStatus ICMCompressionFrameOptionsCreateCopy ( CFAllocatorRef allocator, ICMCompressionFrameOptionsRef originalOptions, ICMCompressionFrameOptionsRef *copiedOptions );
An allocator. Pass NULL to use the default allocator.
A frame compression options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
On return, a reference to a copy of the frame compression options object passed in originalOptions.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves the force key frame flag.
Boolean ICMCompressionFrameOptionsGetForceKeyFrame ( ICMCompressionFrameOptionsRef options );
A compression frame options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
Returns TRUE if frames are forced to be compressed as key frames, FALSE otherwise.
ImageCompression.hRetrieves the frame type setting.
ICMFrameType ICMCompressionFrameOptionsGetFrameType ( ICMCompressionFrameOptionsRef options );
A compression frame options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
On return, one of the frame types listed below.
This function can return one of these constants:
ImageCompression.hRetrieves the value of a specific property of a compression frame options object.
OSStatus ICMCompressionFrameOptionsGetProperty ( ICMCompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
A compression frame options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to a variable to receive the returned property's value.
On return, a pointer to the number of bytes actually used to store the property.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves information about properties of a compression frame options object.
OSStatus ICMCompressionFrameOptionsGetPropertyInfo ( ICMCompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
A compression frame options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to the size of the returned property's value.
On return, a pointer to flags representing the requested information about the property.
An error code. Returns noErr if there is no error.
ImageCompression.hReturns the type ID for the current frame compression options object.
CFTypeID ICMCompressionFrameOptionsGetTypeID ( void );
A CFTypeID value.
ImageCompression.hDecrements the retain count of a frame compression options object.
void ICMCompressionFrameOptionsRelease ( ICMCompressionFrameOptionsRef options );
A reference to a frame compression options object. This reference is returned by ICMCompressionFrameOptionsCreate. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of a frame compression options object.
ICMCompressionFrameOptionsRef ICMCompressionFrameOptionsRetain ( ICMCompressionFrameOptionsRef options );
A reference to a frame compression options object. This reference is returned by ICMCompressionFrameOptionsCreate. If you pass NULL, nothing happens.
A copy of the object reference passed in options, for convenience.
ImageCompression.hForces frames to be compressed as key frames.
OSStatus ICMCompressionFrameOptionsSetForceKeyFrame ( ICMCompressionFrameOptionsRef options, Boolean forceKeyFrame );
A compression frame options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
Pass TRUE to force frames to be compressed as key frames, FALSE otherwise.
An error code. Returns noErr if there is no error.
The compressor must obey this flag if set. By default it is set FALSE.
ImageCompression.hRequests a frame be compressed as a particular frame type.
OSStatus ICMCompressionFrameOptionsSetFrameType ( ICMCompressionFrameOptionsRef options, ICMFrameType frameType );
A compression frame options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
A constant that identifies a frame type. Pass one of the following but do not assume that there are no other frame types: kICMFrameType_I = 'I' An I frame. kICMFrameType_P = 'P' A P frame. kICMFrameType_B = 'B' A B frame. kICMFrameType_Unknown = 0 A frame of unknown type. See these constants:
kICMFrameType_I
kICMFrameType_P
kICMFrameType_B
kICMFrameType_Unknown
An error code. Returns noErr if there is no error.
The frame type setting may be ignored by the compressor if it is not appropriate. By default it is set to kICMFrameType_Unknown.
ImageCompression.hSets the value of a specific property of a compression frame options object.
OSStatus ICMCompressionFrameOptionsSetProperty ( ICMCompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
A compression frame options reference. This reference is returned by ICMCompressionFrameOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
The size of the property value to be set.
A pointer to the value of the property to be set.
An error code. Returns noErr if there is no error.
ImageCompression.hAnnounces the start of a specific compression pass.
OSStatus ICMCompressionSessionBeginPass ( ICMCompressionSessionRef session, ICMCompressionPassModeFlags passModeFlags, UInt32 flags );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
Flags that describe how the compressor should behave in this pass of multipass encoding: kICMCompressionPassMode_OutputEncodedFrames = 1L<<0 Output encoded frames. kICMCompressionPassMode_NoSourceFrames = 1L<<1 The client need not provide source frame buffers. kICMCompressionPassMode_WriteToMultiPassStorage = 1L<<2 The compressor may write private data to multipass storage. kICMCompressionPassMode_ReadFromMultiPassStorage = 1L<<3 The compressor may read private data from multipass storage. See these constants:
kICMCompressionPassMode_OutputEncodedFrames
kICMCompressionPassMode_NoSourceFrames
kICMCompressionPassMode_WriteToMultiPassStorage
kICMCompressionPassMode_ReadFromMultiPassStorage
Reserved. Set to 0.
An error code. Returns noErr if there is no error.
The source frames and frame options for each display time should be the same across passes. During multipass compression, valid displayTimeStamp values must be passed to ICMCompressionSessionEncodeFrame, because they are used to index the compressor's stored state.
ImageCompression.hForces a compression session to complete encoding frames.
OSStatus ICMCompressionSessionCompleteFrames ( ICMCompressionSessionRef session, Boolean completeAllFrames, TimeValue64 completeUntilDisplayTimeStamp, TimeValue64 nextDisplayTimeStamp );
A reference to a video compression session, returned by a previous call to ICMCompressionSessionCreate.
Pass TRUE to direct the session to complete all pending frames.
A 64-bit time value that represents the display time up to which to complete frames. This value is ignored if completeAllFrames is TRUE.
A 64-bit time value that represents the display time of the next frame that should be passed to EncodeFrame. This value is ignored unless ICMCompressionSessionOptionsSetDurationsNeeded set TRUE and kICMValidTime_DisplayDurationIsValid was 0 in validTimeFlags in the last call to ICMCompressionSessionEncodeFrame.
Returns an error code, or 0 if there is no error. The function may return before frames are completed if the encoded frame callback routine returns an error.
Call this function to force a compression session to complete encoding frames. Set completeAllFrames to direct the session to complete all pending frames. If completeAllFrames is false, only frames with display time stamps up to and including the time passed in completeUntilDisplayTimeStamp will be encoded. If ICMCompressionSessionOptionsSetDurationsNeeded set TRUE and you are passing valid display timestamps but not display durations to ICMCompressionSessionEncodeFrame, pass in nextDisplayTimeStamp the display timestamp of the next frame that would be passed to EncodeFrame.
ImageCompression.hCreates a compression session for a specified codec type.
OSStatus ICMCompressionSessionCreate ( CFAllocatorRef allocator, int width, int height, CodecType cType, TimeScale timescale, ICMCompressionSessionOptionsRef compressionOptions, CFDictionaryRef sourcePixelBufferAttributes, ICMEncodedFrameOutputRecord *encodedFrameOutputRecord, ICMCompressionSessionRef *compressionSessionOut );
An allocator for the session. Pass NULL to use the default allocator.
The width of frames. Pass 0 to let the compressor control the width.
The height of frames. Pass 0 to let the compressor control the height.
The codec type.
The timescale to be used for all time stamps and durations used in the session.
A reference to a settings object that configures the session. You create such an object by calling ICMCompressionSessionOptionsCreate. You can then use these constants to set its properties: kICMUnlimitedFrameDelayCount No limit on the number of frames in the compression window. kICMUnlimitedFrameDelayTime No time limit on the frames in the compression window. kICMUnlimitedCPUTimeBudget No CPU time limit on compression.
Required attributes for source pixel buffers, used when creating a pixel buffer pool for source frames. If you do not want the ICM to create one for you, pass NULL. Using pixel buffers not allocated by the ICM may increase the chance that it will be necessary to copy image data.
The callback that will receive encoded frames.
Points to a variable to receive the created session object.
An error code. Returns noErr if there is no error.
Some compressors do not support arbitrary source dimensions, and may override the suggested width and height.
ImageCompression.hPresents video frames to a compression session.
OSStatus ICMCompressionSessionEncodeFrame ( ICMCompressionSessionRef session, CVPixelBufferRef pixelBuffer, TimeValue64 displayTimeStamp, TimeValue64 displayDuration, ICMValidTimeFlags validTimeFlags, ICMCompressionFrameOptionsRef frameOptions, ICMSourceTrackingCallbackRecord *sourceTrackingCallback, void *sourceFrameRefCon );
A reference to a video compression session, returned by a previous call to ICMCompressionSessionCreate.
A reference to a buffer containing a source image to be compressed, which must have a nonzero reference count. The session will retain it as long as necessary. The client should not modify the pixel buffer's pixels until the pixel buffer release callback is called. In a multipass encoding session pass, where the compressor suggested the flag kICMCompressionPassMode_NoSourceFrames, you may pass NULL in this parameter.
A 64-bit time value that represents the display time of the frame, using the time scale passed to ICMCompressionSessionCreate. If you pass a valid value, set the kICMValidTime_DisplayTimeStampIsValid flag in the validTimeFlags parameter (below).
A 64-bit time value that represents the display duration of the frame, using the time scale passed to ICMCompressionSessionCreate. If you pass a valid value, set the kICMValidTime_DisplayDurationIsValid flag in the validTimeFlags parameter (below).
Flags to indicate which of the values passed in displayTimeStamp and displayDuration are valid: kICMValidTime_DisplayTimeStampIsValid The time value passed in displayTimeStamp is valid. kICMValidTime_DisplayDurationIsValid The time value passed in displayDuration is valid. See these constants:
kICMValidTime_DisplayTimeStampIsValid
kICMValidTime_DisplayDurationIsValid
Options for this frame. Currently not used; pass NULL.
A pointer to a callback to be notified about the status of this source frame. Pass NULL if you do not require notification.
A reference constant to be passed to your callback. Use this parameter to point to a data structure containing any information your callback needs.
Returns an error code, or 0 if there is no error. Encoded frames may or may not be output before the function returns.
The session will retain the pixel buffer as long as necessary, and the client should not modify the pixel data until the session releases it. The most practical way to deal with this is by allocating pixel buffers from a pool. The client may fill in both, either, or neither of displayTimeStamp and displayDuration, but should set the appropriate flags to indicate which are valid. If the client needs to track the progress of a source frame, it should provide a source tracking callback. If multipass compression is enabled, calls to this function must be bracketed by calls to ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass.
ImageCompression.hAnnounces the end of a pass.
OSStatus ICMCompressionSessionEndPass ( ICMCompressionSessionRef session );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves the image description for a video compression session.
OSStatus ICMCompressionSessionGetImageDescription ( ICMCompressionSessionRef session, ImageDescriptionHandle *imageDescOut );
A reference to a video compression session, returned by a previous call to ICMCompressionSessionCreate.
A handle to an ImageDescription structure. The caller must not dispose of this handle; the ICM will dispose of it when the compression session is disposed.
Returns an error code, or 0 if there is no error. For some codecs, this function may fail if called before the first frame is compressed.
Multiple calls to this function return the same handle.
ImageCompression.hReturns a pool that can provide ideal source pixel buffers for a compression session.
CVPixelBufferPoolRef ICMCompressionSessionGetPixelBufferPool ( ICMCompressionSessionRef session );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
A reference to a pool of pixel buffers. The compression session creates this pixel buffer pool based on the compressor's pixel buffer attributes and any pixel buffer attributes passed to ICMCompressionSessionCreate.
A new compression session builds this pixel buffer pool based on the compressor's pixel buffer attributes and any pixel buffer attributes passed in to ICMCompressionSessionCreate. If the source pixel buffer attributes and the compressor pixel buffer attributes cannot be reconciled, the pool is based on the source pixel buffer attributes and the ICM converts each pixel buffer internally.
ImageCompression.hRetrieves the value of a specific property of a compression session.
OSStatus ICMCompressionSessionGetProperty ( ICMCompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to a variable to receive the returned property's value.
On return, a pointer to the number of bytes actually used to store the property.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves information about properties of a compression session.
OSStatus ICMCompressionSessionGetPropertyInfo ( ICMCompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to the size of the returned property's value.
On return, a pointer to flags representing the requested information about the property.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves the time scale for a compression session.
TimeScale ICMCompressionSessionGetTimeScale ( ICMCompressionSessionRef session );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
The time scale for the compression session.
ImageCompression.hReturns the type ID for the current compression session.
CFTypeID ICMCompressionSessionGetTypeID ( void );
A CFTypeID value.
ImageCompression.hCreates a compression session options object.
OSStatus ICMCompressionSessionOptionsCreate ( CFAllocatorRef allocator, ICMCompressionSessionOptionsRef *options );
An allocator. Pass NULL to use the default allocator.
On return, a reference to a new compression session options object.
An error code. Returns noErr if there is no error.
ImageCompression.hCopies a compression session options object.
OSStatus ICMCompressionSessionOptionsCreateCopy ( CFAllocatorRef allocator, ICMCompressionSessionOptionsRef originalOptions, ICMCompressionSessionOptionsRef *copiedOptions );
An allocator. Pass NULL to use the default allocator.
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
On return, a reference to a copy of the compression session options object passed in originalOptions.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves the allow frame reordering flag.
Boolean ICMCompressionSessionOptionsGetAllowFrameReordering ( ICMCompressionSessionOptionsRef options );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Returns TRUE if frame reordering is allowed, FALSE otherwise.
ImageCompression.hRetrieves the allow frame time changes flag.
Boolean ICMCompressionSessionOptionsGetAllowFrameTimeChanges ( ICMCompressionSessionOptionsRef options );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Returns TRUE if the compressor is allowed to modify frame times, FALSE otherwise.
ImageCompression.hRetrieves the allow temporal compression flag.
Boolean ICMCompressionSessionOptionsGetAllowTemporalCompression ( ICMCompressionSessionOptionsRef options );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Returns TRUE if temporal compression is allowed, FALSE otherwise.
ImageCompression.hRetrieves the durations needed flag.
Boolean ICMCompressionSessionOptionsGetDurationsNeeded ( ICMCompressionSessionOptionsRef options );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Returns TRUE if the durations of outputted frames must be calculated, FALSE otherwise.
ImageCompression.hRetrieves the maximum key frame interval.
SInt32 ICMCompressionSessionOptionsGetMaxKeyFrameInterval ( ICMCompressionSessionOptionsRef options );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Returns the maximum key frame interval.
ImageCompression.hRetrieves the value of a specific property of a compression session options object.
OSStatus ICMCompressionSessionOptionsGetProperty ( ICMCompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to a variable to receive the returned property's value.
On return, a pointer to the number of bytes actually used to store the property.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves information about properties of a compression session options object.
OSStatus ICMCompressionSessionOptionsGetPropertyInfo ( ICMCompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to the size of the returned property's value.
On return, a pointer to flags representing the requested information about the property.
An error code. Returns noErr if there is no error.
ImageCompression.hReturns the type ID for the current compression session options object.
CFTypeID ICMCompressionSessionOptionsGetTypeID ( void );
A CFTypeID value.
ImageCompression.hDecrements the retain count of a compression session options object.
void ICMCompressionSessionOptionsRelease ( ICMCompressionSessionOptionsRef options );
A reference to a compression session options object. This reference is returned by ICMCompressionSessionOptionsCreate. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of a compression session options object.
ICMCompressionSessionOptionsRef ICMCompressionSessionOptionsRetain ( ICMCompressionSessionOptionsRef options );
A reference to a compression session options object. This reference is returned by ICMCompressionSessionOptionsCreate. If you pass NULL, nothing happens.
A copy of the object reference passed in options, for convenience.
ImageCompression.hEnables frame reordering.
OSStatus ICMCompressionSessionOptionsSetAllowFrameReordering ( ICMCompressionSessionOptionsRef options, Boolean allowFrameReordering );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Pass TRUE to enable frame reordering, FALSE to disable it.
An error code. Returns noErr if there is no error.
To encode B-frames a compressor must reorder frames, which means that the order in which they will be emitted and stored (the decode order) is different from the order in which they were presented to the compressor (the display order). By default, frame reordering is disabled. To encode using B-frames, you must call this function, passing TRUE.
ImageCompression.hAllows the compressor to modify frame times.
OSStatus ICMCompressionSessionOptionsSetAllowFrameTimeChanges ( ICMCompressionSessionOptionsRef options, Boolean allowFrameTimeChanges );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Pass TRUE to let the compressor to modify frame times, FALSE to prohibit it.
An error code. Returns noErr if there is no error.
Some compressors are able to identify and coalesce runs of identical frames and output single frames with longer durations, or output frames at a different frame rate from the original. This feature is controlled by the allow frame time changes flag. By default, this flag is set to false, which forces compressors to emit one encoded frame for every source frame and preserve frame display times.
ImageCompression.hEnables temporal compression.
OSStatus ICMCompressionSessionOptionsSetAllowTemporalCompression ( ICMCompressionSessionOptionsRef options, Boolean allowTemporalCompression );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Pass TRUE to enable temporal compression, FALSE to disable it.
An error code. Returns noErr if there is no error.
By default, temporal compression is disabled. If you want temporal compression for P-frames or B-frames you must call this function and pass TRUE.
ImageCompression.hIndicates that the durations of outputted frames must be calculated.
OSStatus ICMCompressionSessionOptionsSetDurationsNeeded ( ICMCompressionSessionOptionsRef options, Boolean decodeDurationsNeeded );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Pass TRUE to indicate that durations must be calculated, FALSE otherwise.
An error code. Returns noErr if there is no error.
If this flag is set and source frames are provided with times but not durations, then frames will be delayed so that durations can be calculated as the difference between one frame's time stamp and the next frame's time stamp. By default this flag is 0, so frames will not be delayed in order to calculate durations.
ImageCompression.hSets the maximum interval between key frames.
OSStatus ICMCompressionSessionOptionsSetMaxKeyFrameInterval ( ICMCompressionSessionOptionsRef options, SInt32 maxKeyFrameInterval );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
The maximum interval between key frames, also known as the key frame rate.
An error code. Returns noErr if there is no error.
Compressors are allowed to generate key frames more frequently if this would result in more efficient compression. The default key frame interval is 0, which indicates that the compressor should choose where to place all key frames.
ImageCompression.hSets the value of a specific property of a compression session options object.
OSStatus ICMCompressionSessionOptionsSetProperty ( ICMCompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
A compression session options reference. This reference is returned by ICMCompressionSessionOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
The size of the property value to be set.
A pointer to the value of the property to be set.
An error code. Returns noErr if there is no error.
ImageCompression.hLets the compressor perform processing between passes.
OSStatus ICMCompressionSessionProcessBetweenPasses ( ICMCompressionSessionRef session, UInt32 flags, Boolean *interpassProcessingDoneOut, ICMCompressionPassModeFlags *requestedNextPassModeFlagsOut );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
Reserved. Set to 0.
A pointer to a Boolean that will be set to FALSE if this function should be called again, TRUE if not.
A pointer to ICMCompressionPassModeFlags that will be set to the codec's recommended mode flags for the next pass. kICMCompressionPassMode_OutputEncodedFrames will be set only if it recommends that the next pass be the final one: kICMCompressionPassMode_OutputEncodedFrames = 1L<<0 Output encoded frames. kICMCompressionPassMode_NoSourceFrames = 1L<<1 The client need not provide source frame buffers. kICMCompressionPassMode_WriteToMultiPassStorage = 1L<<2 The compressor may write private data to multipass storage. kICMCompressionPassMode_ReadFromMultiPassStorage = 1L<<3 The compressor may read private data from multipass storage. See these constants:
kICMCompressionPassMode_OutputEncodedFrames
kICMCompressionPassMode_NoSourceFrames
kICMCompressionPassMode_WriteToMultiPassStorage
kICMCompressionPassMode_ReadFromMultiPassStorage
An error code. Returns noErr if there is no error.
Call this function repeatedly until the compressor sets interpassProcessingDoneOut to TRUE to indicate that it is done with this round of interpass processing. When done, the compressor will indicate its preferred mode for the next pass. At this point the client may choose to begin an encoding pass, by OR-combining the kICMCompressionPassMode_OutputEncodedFrames flag, regardless of the compressor's request.
ImageCompression.hDecrements the retain count of a compression session.
void ICMCompressionSessionRelease ( ICMCompressionSessionRef session );
A compression session reference. This reference is returned by ICMCompressionSessionCreate. If you pass NULL, nothing happens.
If the retain count drops to 0, the session is disposed.
ImageCompression.hIncrements the retain count of a compression session.
ICMCompressionSessionRef ICMCompressionSessionRetain ( ICMCompressionSessionRef session );
A compression session reference. This reference is returned by ICMCompressionSessionCreate. If you pass NULL, nothing happens.
A reference to the object passed in session, for convenience.
ImageCompression.hSets the value of a specific property of a compression session.
OSStatus ICMCompressionSessionSetProperty ( ICMCompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
The size of the property value to be set.
A pointer to the value of the property to be set.
An error code. Returns noErr if there is no error.
ImageCompression.hQueries whether a compression session supports multipass encoding.
Boolean ICMCompressionSessionSupportsMultiPassEncoding ( ICMCompressionSessionRef session, UInt32 multiPassStyleFlags, ICMCompressionPassModeFlags *firstPassModeFlagsOut );
A compression session reference. This reference is returned by ICMCompressionSessionCreate.
Reserved; set to 0.
A pointer to a variable to receive the session's requested mode flags for the first pass. The client may modify these flags, but should not set kICMCompressionPassMode_NoSourceFrames. Pass NULL if you do not want this information.
Returns TRUE if the compression session supports multipass encoding, FALSE otherwise.
Even if this function returns FALSE, if you passed TRUE to ICMCompressionSessionOptionsSetMultiPass, you must call ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass.
ImageCompression.hCalled by a compressor to notify the ICM that a source frame has been dropped and will not contribute to any encoded frames.
OSStatus ICMCompressorSessionDropFrame ( ICMCompressorSessionRef session, ICMCompressorSourceFrameRef sourceFrame );
A reference to the compression session between the ICM and an image compressor component.
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame. If you pass NULL, nothing happens.
An error code. Returns noErr if there is no error.
Calling this function does not automatically release the source frame; if the compressor called ICMCompressorSourceFrameRetain it should still call ICMCompressorSourceFrameRelease.
ImageCompression.hCalled by a compressor to output an encoded frame corresponding to one or more source frames.
OSStatus ICMCompressorSessionEmitEncodedFrame ( ICMCompressorSessionRef session, ICMMutableEncodedFrameRef encodedFrame, long numberOfSourceFrames, ICMCompressorSourceFrameRef sourceFrames[] );
A reference to the compression session between the ICM and an image compressor component.
A reference to an encoded frame object with write capabilities.
The number of source frames encoded in the encoded frame.
References to frames that have been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame.
An error code. Returns noErr if there is no error.
Encoded frames may correspond to more than one source frame only if allowFrameTimeChanges is set in the compression session's compressionSessionOptions.
ImageCompression.hRetrieves a source frames display number.
long ICMCompressorSourceFrameGetDisplayNumber ( ICMCompressorSourceFrameRef sourceFrame );
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame.
The display number of the source frame.
The ICM tags source frames with display numbers in the order that they are passed to ICMCompressionSessionEncodeFrame. The first display number is 1. Compressors may compare these numbers to work out whether prediction is forward or backward, even when display times are not provided.
ImageCompression.hRetrieves the display time stamp and duration of a source frame.
OSStatus ICMCompressorSourceFrameGetDisplayTimeStampAndDuration ( ICMCompressorSourceFrameRef sourceFrame, TimeValue64 *displayTimeStampOut, TimeValue64 *displayDurationOut, TimeScale *timeScaleOut, ICMValidTimeFlags *validTimeFlagsOut );
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame.
A pointer to the source frame's display time stamp.
A pointer to the source frame's display duration.
A pointer to the source frame's display time scale.
A pointer to one of these display time flags for the source frame: kICMValidTime_DisplayTimeStampIsValid = 1L<<0 The value of displayTimeStamp is valid. kICMValidTime_DisplayDurationIsValid = 1L<<1 The value of displayDuration is valid. See these constants:
kICMValidTime_DisplayTimeStampIsValid
kICMValidTime_DisplayDurationIsValid
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves the frame compression options for a source frame.
ICMCompressionFrameOptionsRef ICMCompressorSourceFrameGetFrameOptions ( ICMCompressorSourceFrameRef sourceFrame );
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame.
A compression session frame options reference representing options for this frame. A frame options object is created by ICMCompressionFrameOptionsCreate.
ImageCompression.hRetrieves a source frames pixel buffer.
CVPixelBufferRef ICMCompressorSourceFrameGetPixelBuffer ( ICMCompressorSourceFrameRef sourceFrame );
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame.
A reference to the pixel buffer containing the source frame's image being compressed.
ImageCompression.hReturns the type ID for the current source frame object.
CFTypeID ICMCompressorSourceFrameGetTypeID ( void );
A CFTypeID value.
ImageCompression.hDecrements the retain count of a source frame object.
void ICMCompressorSourceFrameRelease ( ICMCompressorSourceFrameRef sourceFrame );
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of a source frame object.
ICMCompressorSourceFrameRef ICMCompressorSourceFrameRetain ( ICMCompressorSourceFrameRef sourceFrame );
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame. If you pass NULL, nothing happens.
A reference to the object passed in sourceFrame, for convenience.
ImageCompression.hCreates a frame decompression options object.
OSStatus ICMDecompressionFrameOptionsCreate ( CFAllocatorRef allocator, ICMDecompressionFrameOptionsRef *options );
An allocator. Pass NULL to use the default allocator.
On return, a reference to a frame decompression options object.
An error code. Returns noErr if there is no error.
ImageCompression.hCopies a frame decompression options object.
OSStatus ICMDecompressionFrameOptionsCreateCopy ( CFAllocatorRef allocator, ICMDecompressionFrameOptionsRef originalOptions, ICMDecompressionFrameOptionsRef *copiedOptions );
An allocator. Pass NULL to use the default allocator.
A reference to a frame decompression options object. You can create this object by calling ICMDecompressionFrameOptionsCreate.
On return, a reference to a copy of the frame decompression options object passed in originalOptions.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves the value of a specific property of a decompression frame options object.
OSStatus ICMDecompressionFrameOptionsGetProperty ( ICMDecompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
A decompression frame options reference. This reference is returned by ICMDecompressionFrameOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to a variable to receive the returned property's value.
On return, a pointer to the number of bytes actually used to store the property.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves information about properties of a decompression frame options object.
OSStatus ICMDecompressionFrameOptionsGetPropertyInfo ( ICMDecompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
A decompression frame options reference. This reference is returned by ICMDecompressionFrameOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to the size of the returned property's value.
On return, a pointer to flags representing the requested information about the frame option's property.
An error code. Returns noErr if there is no error.
ImageCompression.hReturns the type ID for the current frame decompression options object.
CFTypeID ICMDecompressionFrameOptionsGetTypeID ( void );
A CFTypeID value.
ImageCompression.hDecrements the retain count of a frame decompression options object.
void ICMDecompressionFrameOptionsRelease ( ICMDecompressionFrameOptionsRef options );
A reference to a frame decompression options object. You can create this object by calling ICMDecompressionFrameOptionsCreate. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of a frame decompression options object.
ICMDecompressionFrameOptionsRef ICMDecompressionFrameOptionsRetain ( ICMDecompressionFrameOptionsRef options );
A reference to a frame decompression options object. You can create this object by calling ICMDecompressionFrameOptionsCreate. If you pass NULL, nothing happens.
A reference to the frame decompression options object passed in options, for convenience.
ImageCompression.hSets the value of a specific property of a decompression frame options object.
OSStatus ICMDecompressionFrameOptionsSetProperty ( ICMDecompressionFrameOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
A decompression frame options reference. This reference is returned by ICMDecompressionFrameOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
The size of the property value to be set.
A pointer to the value of the property to be set.
An error code. Returns noErr if there is no error.
ImageCompression.hCreates a session for decompressing video frames.
OSStatus ICMDecompressionSessionCreate ( CFAllocatorRef allocator, ImageDescriptionHandle desc, ICMDecompressionSessionOptionsRef decompressionOptions, CFDictionaryRef destinationPixelBufferAttributes, ICMDecompressionTrackingCallbackRecord *trackingCallback, ICMDecompressionSessionRef *decompressionSessionOut );
An allocator for the session. Pass NULL to use the default allocator.
An image description for the source frames.
A decompression session options reference. This reference is returned by ICMDecompressionSessionOptionsCreate. The session will retain the object. You may change some options during the session by modifying the object. You may also pass NULL.
Requirements for emitted pixel buffers. You may pass NULL.
A pointer to a structure that designates a callback to be called for information about queued frames and pixel buffers containing decompressed frames. See ICMDecompressionTrackingCallbackRecord and ICMDecompressionTrackingCallbackProc.
A pointer to a variable to receive a reference to the new decompression session.
An error code. Returns noErr if there is no error.
Frames are returned through calls to the callback pointed to by trackingCallback.
ImageCompression.hCreates a session for decompressing video frames.
OSStatus ICMDecompressionSessionCreateForVisualContext ( CFAllocatorRef allocator, ImageDescriptionHandle desc, ICMDecompressionSessionOptionsRef decompressionOptions, QTVisualContextRef visualContext, ICMDecompressionTrackingCallbackRecord *trackingCallback, ICMDecompressionSessionRef *decompressionSessionOut );
An allocator for the session. Pass NULL to use the default allocator.
An image description for the source frames.
Options for the session. The session will retain this options object. You may change some options during the session by modifying the object.
The target visual context.
The callback to be called with information about queued frames, and pixel buffers containing the decompressed frames.
Points to a variable to receive the new decompression session.
An error code. Returns noErr if there is no error.
Frames will be output to a visual context. If desired, the trackingCallback may attach additional data to pixel buffers before they are sent to the visual context.
ImageCompression.hQueues a frame for decompression.
OSStatus ICMDecompressionSessionDecodeFrame ( ICMDecompressionSessionRef session, const UInt8 *data, ByteCount dataSize, ICMDecompressionFrameOptionsRef frameOptions, const ICMFrameTimeRecord *frameTime, void *sourceFrameRefCon );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate.
A pointer to the compressed data for this frame. The data must remain in this location until ICMDecompressionTrackingCallbackProc is called with the kICMDecompressionTracking_ReleaseSourceData flag set in decompressionTrackingFlags.
The number of bytes of compressed data. You may not pass 0 in this parameter.
A reference to a frame decompression options object containing options for this frame. You can create this object by calling ICMDecompressionFrameOptionsCreate.
A pointer to a structure describing the frame's timing information.
Your reference value for the frame.
ImageCompression.hFlushes the frames queued for a decompression session.
OSStatus ICMDecompressionSessionFlush ( ICMDecompressionSessionRef session );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate.
An error code. Returns noErr if there is no error.
The tracking callback will be called for each frame with the result -1.
ImageCompression.hRetrieves the value of a specific property of a decompression session.
OSStatus ICMDecompressionSessionGetProperty ( ICMDecompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to a variable to receive the returned property's value.
On return, a pointer to the number of bytes actually used to store the property.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves information about the properties of a decompression session.
OSStatus ICMDecompressionSessionGetPropertyInfo ( ICMDecompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to the size of the returned property's value.
On return, a pointer to flags representing the requested information about the property.
An error code. Returns noErr if there is no error.
ImageCompression.hReturns the type ID for the current decompression session.
CFTypeID ICMDecompressionSessionGetTypeID ( void );
A CFTypeID value.
ImageCompression.hCreates a decompression session options object.
OSStatus ICMDecompressionSessionOptionsCreate ( CFAllocatorRef allocator, ICMDecompressionSessionOptionsRef *options );
An allocator. Pass NULL to use the default allocator.
On return, a reference to a decompression session options object.
An error code. Returns noErr if there is no error.
ImageCompression.hCopies a decompression session options object.
OSStatus ICMDecompressionSessionOptionsCreateCopy ( CFAllocatorRef allocator, ICMDecompressionSessionOptionsRef originalOptions, ICMDecompressionSessionOptionsRef *copiedOptions );
An allocator. Pass NULL to use the default allocator.
A decompression session options reference. This reference is returned by ICMDecompressionSessionOptionsCreate.
On return, a reference to a copy of the decompression session options object passed in originalOptions.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves the value of a specific property of a decompression session options object.
OSStatus ICMDecompressionSessionOptionsGetProperty ( ICMDecompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
A decompression session options reference. This reference is returned by ICMDecompressionSessionOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
The size of the property value to be retrieved.
A pointer to a variable to hold the value of the property.
On return, a pointer to the number of bytes actually used to store the property value.
An error code. Returns noErr if there is no error.
ImageCompression.hRetrieves information about properties of a decompression session options object.
OSStatus ICMDecompressionSessionOptionsGetPropertyInfo ( ICMDecompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
A decompression session options reference. This reference is returned by ICMDecompressionSessionOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
A pointer to the type of the returned property's value.
A pointer to the size of the returned property's value.
On return, a pointer to flags representing the requested information about the property.
An error code. Returns noErr if there is no error.
ImageCompression.hReturns the type ID for the current decompression session options object.
CFTypeID ICMDecompressionSessionOptionsGetTypeID ( void );
A CFTypeID value.
ImageCompression.hDecrements the retain count of a decompression session options object.
void ICMDecompressionSessionOptionsRelease ( ICMDecompressionSessionOptionsRef options );
A reference to a decompression session options object. This reference is returned by ICMDecompressionSessionOptionsCreate. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of a decompression session options object.
ICMDecompressionSessionOptionsRef ICMDecompressionSessionOptionsRetain ( ICMDecompressionSessionOptionsRef options );
A reference to a decompression session options object. This reference is returned by ICMDecompressionSessionOptionsCreate. If you pass NULL, nothing happens.
A copy of the object reference passed in options, for convenience.
ImageCompression.hSets the value of a specific property of a decompression session options object.
OSStatus ICMDecompressionSessionOptionsSetProperty ( ICMDecompressionSessionOptionsRef options, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
A decompression session options reference. This reference is returned by ICMDecompressionSessionOptionsCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
The size of the property value to be set.
A pointer to the value of the property to be set.
An error code. Returns noErr if there is no error.
ImageCompression.hDecrements the retain count of a decompression session.
void ICMDecompressionSessionRelease ( ICMDecompressionSessionRef session );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of a decompression session.
ICMDecompressionSessionRef ICMDecompressionSessionRetain ( ICMDecompressionSessionRef session );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate. If you pass NULL, nothing happens.
A copy of the reference passed in session, for convenience.
ImageCompression.hSets the direction for non-scheduled display time.
OSStatus ICMDecompressionSessionSetNonScheduledDisplayDirection ( ICMDecompressionSessionRef session, Fixed rate );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate.
The display direction. Negative values represent backward display and positive values represent forward display.
An error code. Returns noErr if there is no error.
ImageCompression.hSets the display time for a decompression session, and requests display of the non-scheduled queued frame at that display time, if there is one.
OSStatus ICMDecompressionSessionSetNonScheduledDisplayTime ( ICMDecompressionSessionRef session, TimeValue64 displayTime, TimeScale displayTimeScale, UInt32 flags );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate.
A display time. Usually this is the display time of a non-scheduled queued frame.
The timescale according to which displayTime should be interpreted.
Reserved; set to 0.
An error code. Returns noErr if there is no error.
ImageCompression.hSets the value of a specific property of a decompression session.
OSStatus ICMDecompressionSessionSetProperty ( ICMDecompressionSessionRef session, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
A decompression session reference. This reference is returned by ICMDecompressionSessionCreate.
Pass the following constant to define the property class: kComponentPropertyClassPropertyInfo = 'pnfo' The property information class. See these constants:
kComponentPropertyClassPropertyInfo
Pass one of these constants to define the property ID: kComponentPropertyInfoList = 'list' An array of CFData values, one for each property. kComponentPropertyCacheSeed = 'seed' A property cache seed value. kComponentPropertyCacheFlags = 'flgs' One of the kComponentPropertyCache flags: kComponentPropertyCacheFlagNotPersistentProperty metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamicProperty metadata should not cached at all. kComponentPropertyExtendedInfo = 'meta' A CFDictionary with extended property information. See these constants:
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyCacheFlags
kComponentPropertyExtendedInfo
The size in bytes of the property's value.
A pointer to the property value to be set.
An error code. Returns noErr if there is no error.
ImageCompression.hCalled by a compressor to create an encoded-frame token corresponding to a given source frame.
OSStatus ICMEncodedFrameCreateMutable ( ICMCompressorSessionRef session, ICMCompressorSourceFrameRef sourceFrame, ByteCount bufferSize, ICMMutableEncodedFrameRef *frameOut );
A reference to the compression session between the ICM and an image compressor component.
A reference to a frame that has been passed in sourceFrameRefCon to ICMCompressionSessionEncodeFrame.
The size of the frame buffer in bytes.
On return, a reference to an encoded frame object with write capabilities.
An error code. Returns noErr if there is no error.
The encoded frame will initially show 0 for mediaSampleFlags; if the frame is not a key frame, the compressor must call ICMEncodedFrameSetMediaSampleFlags to set mediaSampleNotSync. If the frame is droppable, the compressor should set mediaSampleDroppable. If the frame is a partial key frame, the compressor should set mediaSamplePartialSync.
ImageCompression.hGets the size of an encoded frame's data buffer.
ByteCount ICMEncodedFrameGetBufferSize ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The physical size in bytes of the encoded frame's data buffer.
ImageCompression.hGets the data buffer for an encoded frame.
UInt8 * ICMEncodedFrameGetDataPtr ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
A pointer to the object's data buffer.
ImageCompression.hGets the data size of the compressed frame in an encoded frame's buffer.
ByteCount ICMEncodedFrameGetDataSize ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The logical size in bytes of the encoded frame's data buffer, which may be less than the physical size of the buffer.
ImageCompression.hRetrieves an encoded frame's decode duration.
TimeValue64 ICMEncodedFrameGetDecodeDuration ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The encoded frame's decode duration.
ImageCompression.hRetrieves the decode number of an encoded frame.
UInt32 ICMEncodedFrameGetDecodeNumber ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The decode number of the encoded frame.
The ICM automatically stamps ascending decode numbers on frames after the compressor emits them. The first decode number in session is 1. Compressors should not call this function.
ImageCompression.hRetrieves an encoded frame's decode time stamp.
TimeValue64 ICMEncodedFrameGetDecodeTimeStamp ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The encoded frame's decode time stamp.
ImageCompression.hRetrieves an encoded frame's display duration.
TimeValue64 ICMEncodedFrameGetDisplayDuration ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The encoded frame's display duration.
ImageCompression.hRetrieves an encoded frame's display offset.
TimeValue64 ICMEncodedFrameGetDisplayOffset ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The encoded frame's display offset. This is the time offset from decode time stamp to display time stamp.
ImageCompression.hRetrieves an encoded frame's display time stamp.
TimeValue64 ICMEncodedFrameGetDisplayTimeStamp ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The encoded frame's display time stamp.
ImageCompression.hRetrieves the frame type for an encoded frame.
ICMFrameType ICMEncodedFrameGetFrameType ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The encoded frame's frame type (see below).
This function returns one of these values:
ImageCompression.hRetrieves the image description of an encoded frame.
OSStatus ICMEncodedFrameGetImageDescription ( ICMEncodedFrameRef frame, ImageDescriptionHandle *imageDescOut );
A reference to an encoded frame object.
A pointer to a handle containing the encoded frame's image description. The caller should not dispose of this handle.
An error code. Returns noErr if there is no error.
This function returns the same image description handle as ICMCompressionSessionGetImageDescription.
ImageCompression.hRetrieves the media sample flags for an encoded frame.
MediaSampleFlags ICMEncodedFrameGetMediaSampleFlags ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The object's media sample flags. These flags are listed in the header file Movies.h.
ImageCompression.hRetrieves the similarity value for an encoded frame.
Float32 ICMEncodedFrameGetSimilarity ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The encoded frame's similarity value. 1.0 means identical; 0.0 means not at all alike. The default value is -1.0, which means unknown.
ImageCompression.hRetrieves the reference value of an encoded frame's source frame.
void * ICMEncodedFrameGetSourceFrameRefCon ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The source frame's reference value is copied from the session's sourceFrameRefCon parameter that was passed to ICMCompressionSessionEncodeFrame.
ImageCompression.hRetrieves the timescale of an encoded frame.
TimeScale ICMEncodedFrameGetTimeScale ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
The time scale of an encoded frame. This is always the same as the time scale of the compression session.
ImageCompression.hReturns the type ID for the current encoded frame object.
CFTypeID ICMEncodedFrameGetTypeID ( void );
A CFTypeID value.
ImageCompression.hRetrieves an encoded frame's flags indicating which of its time stamps and durations are valid.
ICMValidTimeFlags ICMEncodedFrameGetValidTimeFlags ( ICMEncodedFrameRef frame );
A reference to an encoded frame object.
One of the constants listed below.
This function returns one of these values:
ImageCompression.hDecrements the retain count of an encoded frame object.
void ICMEncodedFrameRelease ( ICMEncodedFrameRef frame );
A reference to an encoded frame object. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of an encoded frame object.
ICMEncodedFrameRef ICMEncodedFrameRetain ( ICMEncodedFrameRef frame );
A reference to an encoded frame object. If you pass NULL, nothing happens.
A reference to the object passed in frame, for convenience.
ImageCompression.hSets the data size of the compressed frame in an encoded frame's buffer.
OSStatus ICMEncodedFrameSetDataSize ( ICMMutableEncodedFrameRef frame, ByteCount dataSize );
A reference to an encoded frame object with write capabilities.
The data size of the compressed frame in the encoded frame object's buffer.
An error code. Returns noErr if there is no error.
ImageCompression.hSets an encoded frame's decode duration.
OSStatus ICMEncodedFrameSetDecodeDuration ( ICMMutableEncodedFrameRef frame, TimeValue64 decodeDuration );
A reference to an encoded frame object with write capabilities.
The encoded frame's decode duration.
An error code. Returns noErr if there is no error.
This function automatically sets the kICMValidTime_DecodeDurationIsValid flag.
ImageCompression.hSets an encoded frame's decode time stamp.
OSStatus ICMEncodedFrameSetDecodeTimeStamp ( ICMMutableEncodedFrameRef frame, TimeValue64 decodeTimeStamp );
A reference to an encoded frame object with write capabilities.
The encoded frame's decode time stamp.
An error code. Returns noErr if there is no error.
This function automatically sets the kICMValidTime_DecodeTimeStampIsValid flag. If the display time stamp is valid, it also sets the kICMValidTime_DisplayOffsetIsValid flag.
ImageCompression.hSets an encoded frame's display duration.
OSStatus ICMEncodedFrameSetDisplayDuration ( ICMMutableEncodedFrameRef frame, TimeValue64 displayDuration );
A reference to an encoded frame object with write capabilities.
The encoded frame's display duration.
An error code. Returns noErr if there is no error.
This function automatically sets the kICMValidTime_DisplayDurationIsValid flag.
ImageCompression.hSets an encoded frame's display time stamp.
OSStatus ICMEncodedFrameSetDisplayTimeStamp ( ICMMutableEncodedFrameRef frame, TimeValue64 displayTimeStamp );
A reference to an encoded frame object with write capabilities.
The encoded frame's display time stamp.
An error code. Returns noErr if there is no error.
This function automatically sets the kICMValidTime_DisplayTimeStampIsValid flag. If the decode time stamp is valid, it also sets the kICMValidTime_DisplayOffsetIsValid flag.
ImageCompression.hSets the frame type for an encoded frame.
OSStatus ICMEncodedFrameSetFrameType ( ICMMutableEncodedFrameRef frame, ICMFrameType frameType );
A reference to an encoded frame object with write capabilities.
The frame type to be set: kICMFrameType_I = 'I' An I frame. kICMFrameType_P = 'P' A P frame. kICMFrameType_B = 'B' A B frame. kICMFrameType_Unknown = 0 A frame of unknown type. See these constants:
kICMFrameType_I
kICMFrameType_P
kICMFrameType_B
kICMFrameType_Unknown
An error code. Returns noErr if there is no error.
ImageCompression.hSets the media sample flags for an encoded frame.
OSStatus ICMEncodedFrameSetMediaSampleFlags ( ICMMutableEncodedFrameRef frame, MediaSampleFlags mediaSampleFlags );
A reference to an encoded frame object with write capabilities.
The object's media sample flags. These flags are listed in the header file Movies.h.
An error code. Returns noErr if there is no error.
ImageCompression.hSets the similarity for an encoded frame.
OSStatus ICMEncodedFrameSetSimilarity ( ICMMutableEncodedFrameRef frame, Float32 similarity );
A reference to an encoded frame object with write capabilities.
The encoded frame's similarity value to be set. 1.0 means identical; 0.0 means not at all alike. The default value is -1.0, which means unknown.
An error code. Returns noErr if there is no error.
ImageCompression.hSets an encoded frame's flags that indicate which of its time stamps and durations are valid.
OSStatus ICMEncodedFrameSetValidTimeFlags ( ICMMutableEncodedFrameRef frame, ICMValidTimeFlags validTimeFlags );
A reference to an encoded frame object with write capabilities.
One of the following constants: kICMValidTime_DisplayTimeStampIsValid = 1L<<0 The value of displayTimeStamp is valid. kICMValidTime_DisplayDurationIsValid = 1L<<1 The value of displayDuration is valid. See these constants:
kICMValidTime_DisplayTimeStampIsValid
kICMValidTime_DisplayDurationIsValid
An error code. Returns noErr if there is no error.
Setting an encoded frame's decode or display time stamp or duration automatically sets the corresponding valid time flags. For example, calling ICMEncodedFrameSetDecodeTimeStamp sets kICMValidTime_DisplayTimeStampIsValid. If both the encoded frame's decode time stamp and display time stamp are valid, kICMValidTime_DisplayOffsetIsValid is automatically set.
ImageCompression.hReturns a particular property of a image description handle.
OSStatus ICMImageDescriptionGetProperty ( ImageDescriptionHandle inDesc, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
The image description handle being interrogated.
The class of property being requested.
The ID of the property being requested.
The size of the property value buffer.
Points to the buffer to receive the property value.
Points to a variable to receive the actual size of returned property value. (This can be NULL).
An error code. Returns noErr if there is no error.
This routine returns a particular property of a image description handle.
ImageCompression.hReturns information about a particular property of a image description.
OSStatus ICMImageDescriptionGetPropertyInfo ( ImageDescriptionHandle inDesc, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
The image description handle being interrogated.
The class of property being requested.
The ID of the property being requested.
The type of property is returned here. (This can be NULL).
The size of property is returned here. (This can be NULL).
The property flags are returned here. (This can be NULL).
An error code. Returns noErr if there is no error.
ImageCompression.hSets a particular property of a image description handle.
OSStatus ICMImageDescriptionSetProperty ( ImageDescriptionHandle inDesc, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
The image description handle being modified.
The class of property being set.
The ID of the property being set.
The size of property value.
Points to the property value buffer.
An error code. Returns noErr if there is no error.
ImageCompression.hCalled by a multipass-capable compressor to retrieve data at a given time stamp.
OSStatus ICMMultiPassStorageCopyDataAtTimeStamp ( ICMMultiPassStorageRef multiPassStorage, TimeValue64 timeStamp, long index, CFMutableDataRef *dataOut );
The multipass storage object.
The time stamp at which the value should be retrieved.
An index by which multiple values may be stored at a time stamp. The meaning of individual indexes is private to the compressor.
A pointer to memory to receive the data at the time stamp.
An error code. Returns noErr if there is no error.
ImageCompression.hAssembles a multipass storage mechanism from callbacks.
OSStatus ICMMultiPassStorageCreateWithCallbacks ( CFAllocatorRef allocator, ICMMultiPassStorageCallbacks *callbacks, ICMMultiPassStorageRef *multiPassStorageOut );
An allocator for this task. Pass NULL to use the default allocator.
A structure containing a collection of callbacks for creating a custom multipass storage object. See ICMMultiPassStorageCallbacks.
A reference to the new multipass storage object.
An error code. Returns noErr if there is no error.
ImageCompression.hCreates multipass storage using a temporary file.
OSStatus ICMMultiPassStorageCreateWithTemporaryFile ( CFAllocatorRef allocator, FSRef *directoryRef, CFStringRef fileName, ICMMultiPassStorageCreationFlags flags, ICMMultiPassStorageRef *multiPassStorageOut );
An allocator for this task. Pass NULL to use the default allocator.
A reference to a file directory. If you pass NULL, the ICM will use the user's Temporary Items folder.
A file name to use for the storage. If you pass NULL, the ICM will pick a unique name. If you pass the name of a file that already exists, the ICM will assume you are continuing a previous multipass session where you left off. This file will be deleted when the multipass storage is released, unless you set the kICMMultiPassStorage_DoNotDeleteWhenDone flag.
Flag controlling this process: kICMMultiPassStorage_DoNotDeleteWhenDone = 1L<<0 The temporary file should not be deleted when the multipass storage is released. See these constants:
kICMMultiPassStorage_DoNotDeleteWhenDone
A reference to the new multipass storage.
An error code. Returns noErr if there is no error.
ImageCompression.hCalled by a multipass-capable compressor to retrieve a time stamp for which a value is stored.
OSStatus ICMMultiPassStorageGetTimeStamp ( ICMMultiPassStorageRef multiPassStorage, TimeValue64 fromTimeStamp, ICMMultiPassStorageStep step, TimeValue64 *timeStampOut );
The multipass storage object.
The initial time stamp. This value is ignored for some values of step.
Indicates the kind of time stamp search to perform: kICMMultiPassStorage_GetFirstTimeStamp = 1 Requests the first time stamp at which a value is stored. kICMMultiPassStorage_GetPreviousTimeStamp = 2 Requests the previous time stamp before the time stamp specified in fromTimeStamp at which a value is stored. kICMMultiPassStorage_GetNextTimeStamp = 3 Requests the next time stamp after the time stamp specified in fromTimeStamp at which a value is stored. kICMMultiPassStorage_GetLastTimeStamp = 4 Requests the last time stamp at which a value is stored. See these constants:
kICMMultiPassStorage_GetFirstTimeStamp
kICMMultiPassStorage_GetPreviousTimeStamp
kICMMultiPassStorage_GetNextTimeStamp
kICMMultiPassStorage_GetLastTimeStamp
A pointer to a TimeValue64 value to receive the found time stamp. It will be set to -1 if no time stamp is found.
An error code. Returns noErr if there is no error.
ImageCompression.hReturns the type ID for the current multipass storage object.
CFTypeID ICMMultiPassStorageGetTypeID ( void );
A CFTypeID value.
ImageCompression.hDecrements the retain count of a multipass storage object.
void ICMMultiPassStorageRelease ( ICMMultiPassStorageRef multiPassStorage );
A reference to a multipass storage object. You can create this object using ICMMultiPassStorageCreateWithTemporaryFile or ICMMultiPassStorageCreateWithCallbacks. If you pass NULL, nothing happens.
If the retain count drops to 0, the object is disposed.
ImageCompression.hIncrements the retain count of a multipass storage object.
ICMMultiPassStorageRef ICMMultiPassStorageRetain ( ICMMultiPassStorageRef multiPassStorage );
A reference to a multipass storage object. You can create this object using ICMMultiPassStorageCreateWithTemporaryFile or ICMMultiPassStorageCreateWithCallbacks. If you pass NULL, nothing happens.
A reference to the object passed in multiPassStorage, for convenience.
ImageCompression.hCalled by a multipass-capable compressor to store data at a given time stamp.
OSStatus ICMMultiPassStorageSetDataAtTimeStamp ( ICMMultiPassStorageRef multiPassStorage, TimeValue64 timeStamp, long index, CFDataRef data );
The multipass storage object.
The time stamp at which the value should be stored.
An index by which multiple values may be stored at a time stamp. The meaning of individual indexes is private to the compressor.
The data to be stored, or NULL to delete the value.
An error code. Returns noErr if there is no error.
The new data replaces any previous data held at that time stamp. If the value of data is NULL, the data for that time stamp is deleted. The format of the data is private to the compressor.
ImageCompression.hInitiates an image transcoding sequence and specifies the input data format.
ComponentResult ImageTranscoderBeginSequence ( ImageTranscoderComponent itc, ImageDescriptionHandle srcDesc, ImageDescriptionHandle *dstDesc, void *data, long dataSize );
The image transcoder component.
The ImageDescription structure for the source compressed image data.
On return, a new ImageDescription structure.
First frame of data to be transcoded (may be NIL).
Size of compressed image data pointed to by the data.
See Error Codes. Returns noErr if there is no error.
This function specifies the format of source compressed image data in the srcDesc parameter. The image transcoder should allocate a new ImageDescription structure and return it in the dstDesc parameter. The new ImageDescription structure should be a completely filled out image description which is sufficient for correctly decompressing the data generated by subsequent calls to ImageTranscoderConvert.
Introduced in QuickTime 3 or earlier.
ImageCompression.hPerforms image transcoding operations.
ComponentResult ImageTranscoderConvert ( ImageTranscoderComponent itc, void *srcData, long srcDataSize, void **dstData, long *dstDataSize );
The image transcoder component.
A pointer to the source compressed image data to transcode.
The size of the source image data, in bytes.
On return, a pointer to the transcoded data.
On return, the size of the transcoded data in bytes.
See Error Codes. Returns noErr if there is no error.
The image transcoder component is responsible for allocating storage for the transcoded data, transcoding the data, and returning a pointer to the transcoded data in the dstData parameter. The size of the transcoded data in bytes should be returned in the dstDataSize parameter. The caller is responsible for disposing of the transcoded data using ImageTranscoderDisposeData.
The memory allocated to store the transcoded image data must not be in an unlocked handle. Even if the image transcoding operation can be performed in place, the transcoded data must be placed in a separate block of memory from the source data. The image transcoder component must not write back into the source image data.
The responsibility for allocating the buffer for the transcoded data has been placed in the transcoder with the intent that some hardware manufacturers may find it useful to place the transcoded data directly into on-board memory on their video board. If the transcoding operation is being performed on a QuickTime movie, the transcoded data pointer will be almost immediately passed on to a decompressor. If the decompressor is implemented in hardware, performance may be increased because the transcoded data is already loaded onto the decompression hardware.
Introduced in QuickTime 3 or earlier.
ImageCompression.hDisposes of transcoded data.
ComponentResult ImageTranscoderDisposeData ( ImageTranscoderComponent itc, void *dstData );
The image transcoder component.
A pointer to the transcoded data.
See Error Codes. Returns noErr if there is no error.
When the client of the image transcoder component is done with a piece of transcoded data, this function must be called with a pointer to the transcoded data. The image transcoder component should not make any assumptions about the maximum number of outstanding pieces of transcoded data or the order in which the transcoding data will be disposed.
Introduced in QuickTime 3 or earlier.
ImageCompression.hEnds an image transcoding sequence.
ComponentResult ImageTranscoderEndSequence ( ImageTranscoderComponent itc );
The image transcoder component whose transcoder sequence is ending.
See Error Codes. Returns noErr if there is no error.
ImageTranscoderEndSequence is called when there are no more frames of data to be transcoded using the parameters specified in the previous call to ImageTranscoderBeginSequence. After calling this function, the component will either be closed or receive another call to ImageTranscoderBeginSequence with a different ImageDescription structure. For example, the dimensions of the source image may be different.
Introduced in QuickTime 3 or earlier.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMAlignmentProc callback.
ICMAlignmentUPP NewICMAlignmentUPP ( ICMAlignmentProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMAlignmentProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMCompletionProc callback.
ICMCompletionUPP NewICMCompletionUPP ( ICMCompletionProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMCompletionProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMConvertDataFormatProc callback.
ICMConvertDataFormatUPP NewICMConvertDataFormatUPP ( ICMConvertDataFormatProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMConvertDataFormatProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMCursorShieldedProc callback.
ICMCursorShieldedUPP NewICMCursorShieldedUPP ( ICMCursorShieldedProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMCursorShieldedProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMDataProc callback.
ICMDataUPP NewICMDataUPP ( ICMDataProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMDataProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMFlushProc callback.
ICMFlushUPP NewICMFlushUPP ( ICMFlushProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMFlushProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMMemoryDisposedProc callback.
ICMMemoryDisposedUPP NewICMMemoryDisposedUPP ( ICMMemoryDisposedProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMMemoryDisposedProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the ICMProgressProc callback.
ICMProgressUPP NewICMProgressUPP ( ICMProgressProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewICMProgressProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the QDPixProc callback.
QDPixUPP NewQDPixUPP ( QDPixProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewQDPixProc.
ImageCompression.hAllocates a Universal Procedure Pointer for the StdPixProc callback.
StdPixUPP NewStdPixUPP ( StdPixProcPtr userRoutine );
A pointer to your application-defined function.
A new UPP; see Universal Procedure Pointers.
This function is used with Macintosh PowerPC systems. See Inside Macintosh: PowerPC System Software.
Introduced in QuickTime 4.1. Replaces NewStdPixProc.
ImageCompression.hInstalls a callback to monitor a component property.
ComponentResult QTAddComponentPropertyListener ( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inDispatchProc, void *inUserData );
A component instance, which you can get by calling OpenComponent or OpenDefaultComponent.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
A Universal Procedure Pointer to a QTComponentPropertyListenerProc callback.
A pointer to user data that will be passed to the callback. You may pass NULL in this parameter.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hAdds a listener callback for a specified property class and ID to a property listener collection.
OSStatus QTComponentPropertyListenerCollectionAddListener ( QTComponentPropertyListenersRef inCollection, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inListenerProc, const void *inListenerProcRefCon );
A property listener collection created by a previous call to QTComponentPropertyListenerCollectionCreate.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
A QTComponentPropertyListenerProc callback.
A reference constant to be passed to your callback. Use this parameter to point to a data structure containing any information your function needs.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hCreates a collection of component property monitors.
OSStatus QTComponentPropertyListenerCollectionCreate ( CFAllocatorRef inAllocator, const QTComponentPropertyListenerCollectionContext *inContext, QTComponentPropertyListenersRef *outCollection );
A pointer to the allocator used to create the collection and its contents. You can pass NIL.
A pointer to a QTComponentPropertyInfo data structure. You can pass NIL if no structure exists. A copy of the contents of the structure is made; therefore you can pass a pointer to a structure on the stack.
On return, a pointer to the new empty listener collection.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hDetermines if there are any listeners in a component property listener collection registered for a specified property class and ID.
Boolean QTComponentPropertyListenerCollectionHasListenersForProperty ( QTComponentPropertyListenersRef inCollection, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID );
A property listener collection created by a previous call to QTComponentPropertyListenerCollectionCreate.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
Returns TRUE if there are any listeners in the listener collection registered for the specified property class and ID, FALSE otherwise.
Introduced in QuickTime 6.4.
ImageCompression.hDetermines if a listener collection is empty.
Boolean QTComponentPropertyListenerCollectionIsEmpty ( QTComponentPropertyListenersRef inCollection );
A property listener collection created by a previous call to QTComponentPropertyListenerCollectionCreate.
Returns TRUE if the collection is empty, FALSE otherwise.
Introduced in QuickTime 6.4.
ImageCompression.hCalls all listener callbacks in a component property listener collection registered for a specified property class and ID.
OSStatus QTComponentPropertyListenerCollectionNotifyListeners ( QTComponentPropertyListenersRef inCollection, ComponentInstance inNotifier, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, const void *inFilterProcRefCon, UInt32 inFlags );
A property listener collection created by a previous call to QTComponentPropertyListenerCollectionCreate.
The caller's component instance.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
A reference constant to be passed to your callback. Use this parameter to point to a data structure containing any information your function needs. You may pass NIL.
Currently not used.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
If the filterProcUPP field in the QTComponentPropertyListenerCollectionContext data structure that was passed to QTComponentPropertyListenerCollectionCreate is not NIL, the QTComponentPropertyListenerFilterProc callback it points to will be called before each call to a registered listener that matches the specified property class and ID passed to this function. If the filter function return FALSE, that listener callback will not be called. This lets a component change the calling semantics (for example, to call another thread) or use a different listener callback signature.
Introduced in QuickTime 6.4.
ImageCompression.hRemoves a listener callback with a specified property class and ID from a property listener collection.
OSStatus QTComponentPropertyListenerCollectionRemoveListener ( QTComponentPropertyListenersRef inCollection, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inListenerProc, const void *inListenerProcRefCon );
A property listener collection created by a previous call to QTComponentPropertyListenerCollectionCreate.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
The QTComponentPropertyListenerProc callback to be removed.
A reference constant to be passed to your callback. Use this parameter to point to a data structure containing any information your function needs.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hReturns the value of a specific component property.
ComponentResult QTGetComponentProperty ( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ComponentValuePtr outPropValueAddress, ByteCount *outPropValueSizeUsed );
A component instance, which you can get by calling OpenComponent or OpenDefaultComponent.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
The size of the buffer allocated to hold the property value.
A pointer to the buffer allocated to hold the property value.
On return, the actual size of the value written to the buffer.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hReturns information about the properties of a component.
ComponentResult QTGetComponentPropertyInfo ( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ComponentValueType *outPropType, ByteCount *outPropValueSize, UInt32 *outPropertyFlags );
A component instance, which you can get by calling OpenComponent or OpenDefaultComponent.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
A pointer to memory allocated to hold the property type on return. This pointer may be NULL.
A pointer to memory allocated to hold the size of the property value on return. This pointer may be NULL.
A pointer to memory allocated to hold property flags on return.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hCreates a new OpenGL texture context for a specified OpenGL context and pixel format.
OSStatus QTOpenGLTextureContextCreate ( CFAllocatorRef allocator, CGLContextObj cglContext, CGLPixelFormatObj cglPixelFormat, CFDictionaryRef attributes, QTVisualContextRef *newTextureContext );
The allocator used to create the texture context.
A pointer to an opaque CGLPContextObj structure representing the OpenGL context used to create textures. You can create this structure using CGLCreateContext.
The pixel format object that specifies buffer types and other attributes of the new context.
A dictionary of attributes.
A pointer to a variable to receive the new OpenGL texture context.
An error code. Returns noErr if there is no error.
ImageCompression.hCreates a new pixel buffer context with the given attributes.
OSStatus QTPixelBufferContextCreate ( CFAllocatorRef allocator, CFDictionaryRef attributes, QTVisualContextRef *newPixelBufferContext );
Allocator used to create the pixel buffer context.
Dictionary of attributes.
Points to a variable to receive the new pixel buffer context.
An error code. Returns noErr if there is no error.
This routine creates a new pixel buffer context with the given attributes.
ImageCompression.hRemoves a component property monitoring callback.
ComponentResult QTRemoveComponentPropertyListener ( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, QTComponentPropertyListenerUPP inDispatchProc, void *inUserData );
A component instance, which you can get by calling OpenComponent or OpenDefaultComponent.
A value (see below) of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
A Universal Procedure Pointer to a QTComponentPropertyListenerProc callback.
User data to be passed to the callback.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hSets the value of a specific component property.
ComponentResult QTSetComponentProperty ( ComponentInstance inComponent, ComponentPropertyClass inPropClass, ComponentPropertyID inPropID, ByteCount inPropValueSize, ConstComponentValuePtr inPropValueAddress );
A component instance, which you can get by calling OpenComponent or OpenDefaultComponent.
A value of type OSType that specifies a property class: kComponentPropertyClassPropertyInfo ('pnfo') A QTComponentPropertyInfo structure that defines a property information class. kComponentPropertyInfoList ('list') An array of QTComponentPropertyInfo structures, one for each property. kComponentPropertyCacheSeed ('seed') A component property cache seed value. kComponentPropertyExtendedInfo ('meta') A CFDictionary with extended property information. kComponentPropertyCacheFlags ('flgs') One of the following two flags: kComponentPropertyCacheFlagNotPersistent Property metadata should not be saved in persistent cache. kComponentPropertyCacheFlagIsDynamic Property metadata should not be cached at all. See these constants:
kComponentPropertyClassPropertyInfo
kComponentPropertyInfoList
kComponentPropertyCacheSeed
kComponentPropertyExtendedInfo
kComponentPropertyCacheFlags
kComponentPropertyCacheFlagNotPersistent
kComponentPropertyCacheFlagIsDynamic
A value of type OSType that specifies a property ID.
The size of the buffer allocated to hold the property value.
A pointer to the buffer allocated to hold the property value.
See Error Codes in the QuickTime API Reference. Returns noErr if there is no error.
Introduced in QuickTime 6.4.
ImageCompression.hRetrieves an image buffer from the visual context, indexed by the provided time.
OSStatus QTVisualContextCopyImageForTime ( QTVisualContextRef visualContext, CFAllocatorRef allocator, const CVTimeStamp *timeStamp, CVImageBufferRef *newImage );
The visual context.
Allocator used to create new CVImageBufferRef.
Time in question. Pass NULL to request the image at the current time.
Points to variable to receive the new image.
An error code. Returns noErr if there is no error.
You should not request image buffers further ahead of the current time than the read-ahead time specified with the kQTVisualContextExpectedReadAheadKey attribute. You may skip images by passing later times, but you may not pass an earlier time than passed to a previous call to this function.
ImageCompression.hReturns a visual context attribute.
OSStatus QTVisualContextGetAttribute ( QTVisualContextRef visualContext, CFStringRef attributeKey, CFTypeRef *attributeValueOut );
The visual context.
Identifier of attribute to get.
A pointer to a variable that will receive the attribute value or NULL if the attribute is not set.
An error code. Returns noErr if there is no error.
This routine returns a visual context attribute.
ImageCompression.hReturns the CFTypeID for QTVisualContextRef.
CFTypeID QTVisualContextGetTypeID ( void );
Undocumented.
Use this function to test whether a CFTypeRef that extracted from a CF container such as a CFArray was a QTVisualContextRef.
ImageCompression.hQueries whether a new image is available for a given time.
Boolean QTVisualContextIsNewImageAvailable ( QTVisualContextRef visualContext, const CVTimeStamp *timeStamp );
The visual context.
Time in question.
A Boolean.
This function returns TRUE if there is a image available for the specified time that is different from the last image retrieved from QTVisualContextCopyImageForTime.
ImageCompression.hReleases a visual context object.
void QTVisualContextRelease ( QTVisualContextRef visualContext );
A reference to a visual context object. If you pass NULL, nothing happens.
When the retain count decreases to zero the visual context is disposed.
ImageCompression.hRetains a visual context object.
QTVisualContextRef QTVisualContextRetain ( QTVisualContextRef visualContext );
A reference to a visual context object. If you pass NULL, nothing happens.
On return, a reference to the same visual context object, for convenience.
ImageCompression.hSets a visual context attribute.
OSStatus QTVisualContextSetAttribute ( QTVisualContextRef visualContext, CFStringRef attributeKey, CFTypeRef attributeValue );
The visual context.
Identifier of attribute to set
The value of the attribute to set, or NULL to remove a value.
An error code. Returns noErr if there is no error.
ImageCompression.hInstalls a user-defined callback to receive notifications when a new image becomes available.
OSStatus QTVisualContextSetImageAvailableCallback ( QTVisualContextRef visualContext, QTVisualContextImageAvailableCallback imageAvailableCallback, void *refCon );
The visual context invoking the callback.
Time for which a new image has become available. May be NULL.
A user-defined value passed to QTImageAvailableCallback.
An error code. Returns noErr if there is no error.
Due to unpredictible activity, such as user seeks or the arrival of streaming video packets from a network, new images may become available for times supposedly occupied by previous images. Applications using the CoreVideo display link to drive rendering probably do not need to install a callback of this type, since they will already be checking for new images at a sufficient rate.
ImageCompression.hCauses visual context to release internally held resources for later re-use.
void QTVisualContextTask ( QTVisualContextRef visualContext );
The visual context.
For optimal resource management, this function should be called in every rendering pass, after old images have been released, new images have been used and all rendering has been flushed to the screen. This call is not mandatory.
ImageCompression.h
Provides an alignment behavior for windows based on the screen's bit depth.
typedef void (*ICMAlignmentProcPtr) (Rect *rp, long refcon);
If you name your function MyICMAlignmentProc, you would declare it this way:
void MyICMAlignmentProc ( Rect *rp, long refcon );
Contains a pointer to a rectangle that has already been aligned with a default alignment function.
Contains a reference constant value for use by your alignment function. Your application specifies the value of this reference constant in the alignment function structure you pass to the Image Compression Manager.
ImageCompression.hCalled by a compressor component upon completion of an asynchronous operation.
typedef void (*ICMCompletionProcPtr) (OSErr result, short flags, long refcon);
If you name your function MyICMCompletionProc, you would declare it this way:
void MyICMCompletionProc ( OSErr result, short flags, long refcon );
Indicator of success of current operation.
Contains flags (see below) that indicate which part of the operation is complete. Note that more than one of the flags may be set to 1. See these constants:
codecCompletionSource
codecCompletionDest
Contains a reference constant value for use by your completion function. Your application specifies the value of this reference constant in the callback function structure you pass to the Image Compression Manager.
ImageCompression.hUndocumented
typedef void (*ICMCursorShieldedProcPtr) (const Rect *r, void *refcon, long flags);
If you name your function MyICMCursorShieldedProc, you would declare it this way:
void MyICMCursorShieldedProc ( const Rect *r, void *refcon, long flags );
Undocumented
Pointer to a reference constant that the client code supplies to your callback. You can use this reference to point to a data structure containing any information your callback needs.
Undocumented
ImageCompression.hSupplies compressed data during a decompression operation.
typedef OSErr (*ICMDataProcPtr) (Ptr *dataP, long bytesNeeded, long refcon);
If you name your function MyICMDataProc, you would declare it this way:
OSErr MyICMDataProc ( Ptr *dataP, long bytesNeeded, long refcon );
Contains a pointer to the address of the data buffer. The decompressor uses this parameter to indicate where your data-loading function should return the compressed data. You establish this data buffer when you start the decompression operation. For example, the data parameter to FDecompressImage defines the location of the data buffer for that operation. Upon return from your data-loading function, this pointer should refer to the beginning of the compressed data that you loaded. The decompressor may also use this parameter to indicate that it wants to reset the mark within the compressed data stream. If the dataP parameter is set to NIL, the bytesNeeded parameter contains the new mark position, relative to the current position of the data stream. If your data-loading function does not support this operation, return a nonzero result code.
Specifies the number of bytes requested or the new mark offset. If the decompressor has requested additional compressed data (that is, the value of the dataP parameter is not NIL), then this parameter specifies how many bytes to return. This value never exceeds the size of the original data buffer. Your data-loading function should read the data from the current mark in the input data stream. If the decompressor has requested to set a new mark position in the data stream (that is, the value of the dataP parameter is NIL), then this parameter specifies the new mark position relative to the current position of the data stream.
Contains a reference constant value for use by your data-loading function. Your application specifies the value of this reference constant in the data-loading function structure you pass to the Image Compression Manager.
See Error Codes. Your callback should return noErr if there is no error.
ImageCompression.hWrites compressed data to a storage device during a compression operation.
typedef OSErr (*ICMFlushProcPtr) (Ptr data, long bytesAdded, long refcon);
If you name your function MyICMFlushProc, you would declare it this way:
OSErr MyICMFlushProc ( Ptr data, long bytesAdded, long refcon );
Points to the data buffer. The compressor uses this parameter to indicate where your data-unloading function can find the compressed data. You establish this data buffer when you start the compression operation. For example, the data parameter to FCompressImage defines the location of the data buffer for that operation. This pointer contains a 32-bit clean address. Your ICMFlushProc function should make no other assumptions about the value of this address. The compressor may also use this parameter to indicate that it wants to reset the mark within the compressed data stream. If the data parameter is set to NIL, the bytesNeeded parameter contains the new mark position, relative to the current position of the output data stream. If your ICMFlushProc function does not support this operation, return a nonzero result code.
Specifies the number of bytes to write or the new mark offset. If the compressor wants to write out some compressed data (that is, the value of data is not NIL), then this parameter specifies how many bytes to write. This value never exceeds the size of the original data buffer. Your ICMFlushProc function should write that data at the current mark in the output data stream. If the compressor has requested to set a new mark position in the output data stream (that is, the value of data is NIL), then this parameter specifies the new mark position relative to the current position of the data stream.
Contains a reference constant value for use by your ICMFlushProc function. Your application specifies the value of this reference constant in the data-unloading function structure you pass to the Image Compression Manager.
See Error Codes. Your callback should return noErr if there is no error.
You assign an ICMFlushProc function to an image or a sequence by passing a pointer to a structure that identifies the function to the appropriate compression function.
ImageCompression.hReports on the progress of a compressor or decompressor.
typedef OSErr (*ICMProgressProcPtr) (short message, Fixed completeness, long refcon);
If you name your function MyICMProgressProc, you would declare it this way:
OSErr MyICMProgressProc ( short message, Fixed completeness, long refcon );
Indicates why the Image Compression Manager called your function. There are three valid messages, listed below. See these constants:
codecProgressOpen
codecProgressUpdatePercent
codecProgressClose
Contains a fixed-point value indicating how far the operation has progressed. Its value is always between 0.0 and 1.0. This parameter is valid only when the message field is set to codecProgressUpdatePercent.
Contains a reference constant value for use by your progress function. Your application specifies the value of this reference constant in the progress function structure you pass to the Image Compression Manager.
See Error Codes. Your callback should return noErr if there is no error. When a component calls your progress function, it supplies you with a number that indicates the completion percentage. Your program can cause the component to terminate the current operation by returning a result code of codecAbortErr.
The Image Compression Manager calls your progress function only during long operations, and it does not call your function more than 30 times per second.
ImageCompression.hUndocumented
typedef void (*QDPixProcPtr) (PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode, RgnHandle mask, PixMap *matte, Rect *matteRect, short flags);
If you name your function MyQDPixProc, you would declare it this way:
void MyQDPixProc ( PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode, RgnHandle mask, PixMap *matte, Rect *matteRect, short flags );
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
ImageCompression.hUndocumented
typedef void (*StdPixProcPtr) (PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode, RgnHandle mask, PixMap *matte, Rect *matteRect, short flags);
If you name your function MyStdPixProc, you would declare it this way:
void MyStdPixProc ( PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode, RgnHandle mask, PixMap *matte, Rect *matteRect, short flags );
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
Undocumented
ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(ICMAlignmentProcPtr) ICMAlignmentUPP;
ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(ICMCompletionProcPtr) ICMCompletionUPP;
ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(ICMCursorShieldedProcPtr) ICMCursorShieldedUPP;
ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(ICMDataProcPtr) ICMDataUPP;
ImageCompression.h
Designates a tracking callback for an ICM decompression session.
struct ICMDecompressionTrackingCallbackRecord {
ICMDecompressionTrackingCallback decompressionTrackingCallback;
void *decompressionTrackingRefCon;
};
decompressionTrackingCallbackThe callback function pointer. See ICMDecompressionTrackingCallbackProc.
decompressionTrackingRefConThe callback's reference value.
ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(ICMFlushProcPtr) ICMFlushUPP;
ImageCompression.h
Designates a collection of callbacks for creating a custom multipass storage object.
struct ICMMultiPassStorageCallbacks {
UInt32 version;
void *storageRefCon;
ICMMultiPassSetDataAtTimeStampCallback setDataAtTimeStampCallback;
ICMMultiPassGetTimeStampCallback getTimeStampCallback;
ICMMultiPassCopyDataAtTimeStampCallback copyDataAtTimeStampCallback;
ICMMultiPassReleaseCallback releaseCallback;
};
versionThe version of this structure. Set to kICMMultiPassStorageCallbacksVersionOne.
storageRefConA pointer to a reference constant. Use this parameter to point to a data structure containing any information your callback needs.
setDataAtTimeStampCallbackA callback for storing values.
getTimeStampCallbackA callback for finding time stamps.
copyDataAtTimeStampCallbackA callback for retrieving values.
releaseCallbackA callback for disposing the callback's state when done.
This structure is used by ICMMultiPassStorageCreateWithCallbacks.
ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(ICMProgressProcPtr) ICMProgressUPP;
ImageCompression.h
Represents a type used by the Image Compression API.
typedef ComponentInstance ImageTranscoderComponent;
ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(QDPixProcPtr) QDPixUPP;
ImageCompression.h
Provides context information for a QTComponentPropertyListenerFilterProc callback.
struct QTComponentPropertyListenerCollectionContext
{
UInt32 version;
QTComponentPropertyListenerFilterUPP filterProcUPP;
void *filterProcData;
};
versionThe version of this callback.
filterProcUPPA Universal Procedure Pointer to a QTComponentPropertyListenerFilterProc callback.
filterProcDataA pointer to data for the callback.
Introduced in QuickTime 6.4.
QTComponentPropertyListenerCollectionNotifyListeners ImageCompression.h
Represents a type used by the Image Compression API.
typedef STACK_UPP_TYPE(StdPixProcPtr) StdPixUPP;
ImageCompression.h
Constants passed to ICMProgressProc.
enum {
codecProgressOpen = 0,
codecProgressUpdatePercent = 1,
codecProgressClose = 2
};
codecProgressOpenIndicates the start of a long operation. This is always the first message sent to your function. Your function can use this message to trigger the display of your progress window.
Available in Mac OS X v10.0 and later.
Declared in ImageCompression.h.
codecProgressUpdatePercentPasses completion information to your function. The Image Compression Manager repeatedly sends this message to your function. The completeness parameter indicates the relative completion of the operation. You can use this value to update your progress window.
Available in Mac OS X v10.0 and later.
Declared in ImageCompression.h.
ImageCompression.h
Constants that contain the IDs of ICM properties.
enum {
/*
* Both fields should be decompressed.
*/
kICMFieldMode_BothFields = 0,
/*
* Only the top field should be decompressed,
producing a half-height
* image.
*/
kICMFieldMode_TopFieldOnly = 1,
/*
* Only the bottom field should be decompressed,
producing a
* half-height image.
*/
kICMFieldMode_BottomFieldOnly = 2,
/*
* Both fields should be decompressed,
and then filtered to reduce
* interlacing artifacts.
*/
kICMFieldMode_DeinterlaceFields = 3
};
enum {
/*
* Class identifier for compression frame options object properties.
*/
kQTPropertyClass_ICMCompressionFrameOptions = 'icfo',
/*
* Forces frames to be compressed as key frames.
* The compressor must obey the "force key frame" flag if set. By
* default this property is false.
*/
kICMCompressionFrameOptionsPropertyID_ForceKeyFrame = 'keyf', /* Boolean,
Read/Write */
/*
* Requests a frame be compressed as a particular frame type.
* The frame type setting may be ignored by the compressor if not
* appropriate.
* By default this is set to kICMFrameType_Unknown.
* Do not assume that kICMFrameType_I means a key frame; if you need
* a key frame,
set the "force key frame" property.
*/
kICMCompressionFrameOptionsPropertyID_FrameType = 'frty' /* ICMFrameType,
Read/Write */
};
enum {
/*
* Class identifier for compression session options object properties.
*/
kQTPropertyClass_ICMCompressionSessionOptions = 'icso',
/*
* Enables temporal compression. By default,
temporal compression is
* disabled.
* IMPORTANT: If you want temporal compression (P frames and/or B
* frames) you must set this to true.
*/
kICMCompressionSessionOptionsPropertyID_AllowTemporalCompression = 'p ok', /* Boolean,
Read/Write */
/*
* Enables frame reordering.
* In order to encode B frames,
a compressor must reorder frames,
* which means that the order in which they will be emitted and
* stored (the decode order) is different from the order in which
* they were presented to the compressor (the display order).
* By default,
frame reordering is disabled.
* IMPORTANT: In order to encode using B frames,
you must enable
* frame reordering.
*/
kICMCompressionSessionOptionsPropertyID_AllowFrameReordering = 'b ok', /* Boolean,
Read/Write */
/*
* Indicates that durations of emitted frames are needed.
* If this flag is set and source frames are provided with times but
* not durations,
then frames will be delayed so that durations can
* be calculated as the difference between one frame's time stamp and
* the next frame's time stamp.
* By default,
this flag is clear,
so frames will not be delayed in
* order to calculate durations.
* IMPORTANT: If you will be passing encoded frames to
* AddMediaSampleFromEncodedFrame,
you must set this flag to true.
*/
kICMCompressionSessionOptionsPropertyID_DurationsNeeded = 'need', /* Boolean,
Read/Write */
/*
* The maximum interval between key frames,
also known as the key
* frame rate.
* Key frames,
also known as sync frames,
reset inter-frame
* dependencies; decoding a key frame is sufficient to prepare a
* decompressor for correctly decoding the difference frames that
* follow.
* Compressors are allowed to generate key frames more frequently if
* this would result in more efficient compression.
* The default key frame interval is 0,
which indicates that the
* compressor should choose where to place all key frames. A key
* frame interval of 1 indicates that every frame must be a key
* frame,
2 indicates that at least every other frame must be a key
* frame,
etc.
*/
kICMCompressionSessionOptionsPropertyID_MaxKeyFrameInterval = 'kyfr', /* SInt32,
Read/Write */
/*
* The requested maximum interval between partial sync frames. If the
* interval is n,
any sequence of n successive frames must include at
* least one key or partial sync frame.
* Where supported,
partial sync frames perform a partial reset of
* inter-frame dependencies; decoding two partial sync frames and the
* non-droppable difference frames between them is sufficient to
* prepare a decompressor for correctly decoding the difference
* frames that follow.
* Compressors are allowed to generate partial sync frames more
* frequently if this would result in more efficient compression.
*
* The default partial sync frame interval is 0,
which indicates that
* the compressor should choose where to place partial sync frames. A
* partial sync frame interval of 1 means there can be no difference
* frames,
so it is equivalent to a key frame interval of 1. A
* partial sync frame interval of 2 means that every other frame must
* be a key frame or a partial sync frame.
* Compressors that do not support partial sync frames will ignore
* this setting.
*/
kICMCompressionSessionOptionsPropertyID_MaxPartialSyncFrameInterval = 'psfr', /* SInt32,
Read/Write */
/*
* Enables the compressor to modify frame times.
* Some compressors are able to identify and coalesce runs of
* identical frames and output single frames with longer duration,
or
* output frames at a different frame rate from the original. This
* feature is controlled by the "allow frame time changes" flag. By
* default,
this flag is set to false,
which forces compressors to
* emit one encoded frame for every source frame,
and to preserve
* frame display times.
* (Note: this feature replaces the practice of having compressors
* return special high similarity values to indicate that frames
* could be dropped.)
* If you want to allow the compressor to modify frame times in order
* to improve compression performance,
enable frame time changes.
*/
kICMCompressionSessionOptionsPropertyID_AllowFrameTimeChanges = '+ ok', /* Boolean,
Read/Write */
/*
* Enables the compressor to call the encoded-frame callback from a
* different thread.
* By default,
the flag is false,
which means that the compressor
* must call the encoded-frame callback from the same thread that
* ICMCompressionSessionEncodeFrame and
* ICMCompressionSessionCompleteFrames were called on.
*/
kICMCompressionSessionOptionsPropertyID_AllowAsyncCompletion = 'asok', /* Boolean,
Read/Write */
/*
* The maximum frame delay count is the maximum number of frames that
* a compressor is allowed to hold before it must output a compressed
* frame. It limits the number of frames that may be held in the
* "compression window". If the maximum frame delay count is M,
then
* before the call to encode frame N returns,
frame N-M must have
* been emitted.
* The default is kICMUnlimitedFrameDelayCount,
which sets no limit
* on the compression window.
*/
kICMCompressionSessionOptionsPropertyID_MaxFrameDelayCount = 'cwin', /* SInt32,
Read/Write */
/*
* The maximum frame delay time is the maximum difference between a
* source frame's display time and the corresponding encoded frame's
* decode time. It limits the span of display time that may be held
* in the "compression window". If the maximum frame delay time is
* TM,
then before the call to encode a frame with display time TN
* returns,
all frames with display times up to and including TN-TM
* must have been emitted.
* The default is kICMUnlimitedFrameDelayTime,
which sets no time
* limit on the compression window.
*/
kICMCompressionSessionOptionsPropertyID_MaxFrameDelayTime = 'cwit', /* TimeValue64,
Read/Write */
/*
* Sets a specific compressor component or component instance to be
* used,
or one of the wildcards anyCodec,
bestSpeedCodec,
* bestFidelityCodec,
or bestCompressionCodec.
* Use this API to force the Image Compression Manager to use a
* specific compressor component or compressor component instance.
* (If you pass in a component instance that you opened,
the ICM will
* not close that instance; you must do so after the compression
* session is released.) To allow the Image Compression Manager to
* choose the compressor component,
set the compressorComponent to
* anyCodec (the default),
bestSpeedCodec,
bestFidelityCodec or
* bestCompressionCodec.
*/
kICMCompressionSessionOptionsPropertyID_CompressorComponent = 'imco', /* CompressorComponent,
Read/Write */
/*
* A handle containing compressor settings. The compressor will be
* configured with these settings (by a call to
* ImageCodecSetSettings) during ICMCompressionSessionCreate.
*/
kICMCompressionSessionOptionsPropertyID_CompressorSettings = 'cost', /* Handle,
Read/Write */
/*
* The depth for compression.
* If a compressor does not support a specific depth,
the closest
* supported depth will be used (preferring deeper depths to
* shallower depths). The default depth is k24RGBPixelFormat.
*/
kICMCompressionSessionOptionsPropertyID_Depth = 'deep', /* UInt32,
Read/Write */
/*
* The color table for compression. Used with indexed-color depths.
*
* Clients who get this property are responsible for disposing the
* returned CTabHandle.
*/
kICMCompressionSessionOptionsPropertyID_ColorTable = 'clut', /* CTabHandle,
Read/Write*/
/*
* The compression quality.
* This value is always used to set the spatialQuality; if temporal
* compression is enabled,
it is also used to set temporalQuality.
* <BR> The default quality is codecNormalQuality.
*/
kICMCompressionSessionOptionsPropertyID_Quality = 'qual', /* CodecQ,
Read/Write */
/*
* The long-term desired average data rate in bytes per second.
* This is not a hard limit.
* The default data rate is zero,
which indicates that the quality
* setting should determine the size of compressed data.
* Note that data rate settings only have an effect when timing
* information is provided for source frames,
and that some codecs do
* not support limiting to specified data rates.
*/
kICMCompressionSessionOptionsPropertyID_AverageDataRate = 'aver', /* SInt32,
Read/Write */
/*
* Zero,
one or two hard limits on data rate.
* Each hard limit is described by a data size in bytes and a
* duration in seconds,
and requires that the total size of
* compressed data for any contiguous segment of that duration (in
* decode time) must not exceed the data size.
* By default,
no data rate limits are set.
* When setting this property,
the inPropValueSize parameter should
* be the number of data rate limits multiplied by
* sizeof(ICMDataRateLimit).
* Note that data rate settings only have an effect when timing
* information is provided for source frames,
and that some codecs do
* not support limiting to specified data rates.
*/
kICMCompressionSessionOptionsPropertyID_DataRateLimits = 'hard', /* C array of ICMDataRateLimit struct,
Read/Write */
/*
* The current number of data rate limits.
*/
kICMCompressionSessionOptionsPropertyID_DataRateLimitCount = 'har#', /* UInt32,
Read */
/*
* The maximum allowed number of data rate limits. (Currently 2.)
*/
kICMCompressionSessionOptionsPropertyID_MaxDataRateLimits = 'mhar', /* UInt32,
Read */
/*
* Indicates that the source was previously compressed.
* This property is purely an optional,
informational hint to the
* compressor; by default it is false.
*/
kICMCompressionSessionOptionsPropertyID_WasCompressed = 'wasc', /* Boolean,
Read/Write */
/*
* Recommends a CPU time budget for the compressor in microseconds
* per frame.
* Zero means to go as fast as possible.
* By default,
this is set to kICMUnlimitedCPUTimeBudget,
which sets
* no limit.
* This is an advisory hint to the compressor,
and some compressors
* may ignore it. Multithreaded compressors may use this amount of
* CPU time on each processor.
* Compressors should not feel compelled to use the full time budget
* if they complete ahead of time!
*/
kICMCompressionSessionOptionsPropertyID_CPUTimeBudget = 'cput', /* UInt32,
Read/Write */
/*
* Storage for multi-pass compression.
* To enable multipass compression,
the client must provide a storage
* location for multipass data. Use
* ICMMultiPassStorageCreateWithTemporaryFile to have the ICM store
* it in a temporary file. Use
* ICMMultiPassStorageCreateWithCallbacks to manage the storage
* yourself.
* Note that the amount of multipass data to be stored can be
* substantial; it could be greater than the size of the output movie
* file.
* If this property is not NULL,
the client must call
* ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass
* around groups of calls to ICMCompressionSessionEncodeFrame.
* By default,
this property is NULL and multipass compression is
* not enabled. The compression session options object retains the
* multipass storage object,
when one is set.
*/
kICMCompressionSessionOptionsPropertyID_MultiPassStorage = 'imps', /* ICMMultiPassStorageRef,
Read/Write */
/*
* Indicates the number of source frames,
if known. If nonzero,
this
* should be the exact number of times that the client calls
* ICMCompressionSessionEncodeFrame in each pass.
* The default is 0,
which indicates that the number of source frames
* is not known.
*/
kICMCompressionSessionOptionsPropertyID_SourceFrameCount = 'frco', /* UInt64,
Read/Write */
/*
* Indicates the expected frame rate,
if known. The frame rate is
* measured in frames per second. This is not used to control the
* frame rate; it is provided as a hint to the compressor so that it
* can set up internal configuration before compression begins. The
* actual frame rate will depend on frame durations and may vary. By
* default,
this is zero,
indicating "unknown".
*/
kICMCompressionSessionOptionsPropertyID_ExpectedFrameRate = 'fran', /* Fixed,
Read/Write */
/*
* Indicates how source frames to a compression session should be
* scaled if the dimensions and/or display aspect ratio do not match.
*/
kICMCompressionSessionOptionsPropertyID_ScalingMode = 'scam', /* OSType,
Read/Write */
/*
* Describes the clean aperture for compressed frames. Note that if
* the compressor enforces a clean aperture,
it will override this
* setting. The clean aperture will be set on the output image
* description and may affect scaling in some scaling modes. By
* default,
this is all zeros,
meaning unset.
*/
kICMCompressionSessionOptionsPropertyID_CleanAperture = 'clap', /* Native-endian CleanApertureImageDescriptionExtension,
Read/Write */
/*
* Describes the pixel aspect ratio for compressed frames. Note that
* if the compressor enforces a pixel aspect ratio,
it will override
* this setting. The pixel aspect ratio will be set on the output
* image description and may affect scaling in some scaling modes. By
* default,
this is all zeros,
meaning unset.
*/
kICMCompressionSessionOptionsPropertyID_PixelAspectRatio = 'pasp', /* Native-endian PixelAspectRatioImageDescriptionExtension,
Read/Write */
/*
* Describes the number and order of fields for compressed frames.
* Note that if the compressor enforces field info,
it will override
* this setting. The field info will be set on the output image
* description and may affect scaling in some scaling modes. By
* default,
this is all zeros,
meaning unset.
*/
kICMCompressionSessionOptionsPropertyID_FieldInfo = 'fiel' /* FieldInfoImageDescriptionExtension2,
Read/Write */
};
enum {
/*
* Class identifier for compression session properties.
*/
kQTPropertyClass_ICMCompressionSession = 'icse',
/*
* The time scale for the compression session.
*/
kICMCompressionSessionPropertyID_TimeScale = 'tscl', /* TimeScale,
Read */
/*
* The compressor's pixel buffer attributes for the compression
* session. You can use these to create a pixel buffer pool for
* source pixel buffers. Note that this is not the same as the
* sourcePixelBufferAttributes passed in to
* ICMCompressionSessionCreate. Getting this property does not change
* its retain count.
*/
kICMCompressionSessionPropertyID_CompressorPixelBufferAttributes = 'batt', /* CFDictionaryRef,
Read */
/*
* A pool that can provide ideal source pixel buffers for a
* compression session. The compression session creates this pixel
* buffer pool based on the compressor's pixel buffer attributes and
* any pixel buffer attributes passed in to
* ICMCompressionSessionCreate. If the source pixel buffer attributes
* and the compressor pixel buffer attributes can not be reconciled,
* the pool is based on the source pixel buffer attributes and the
* ICM converts each CVPixelBuffer internally.
*/
kICMCompressionSessionPropertyID_PixelBufferPool = 'pool', /* CVPixelBufferPoolRef,
Read */
/*
* The image description for the compression session. For some
* codecs,
the image description may not be available before the
* first frame is compressed. Multiple calls to retrieve this
* property will return the same handle. The ICM will dispose this
* handle when the compression session is disposed.
* IMPORTANT: The caller must NOT dispose this handle.
*/
kICMCompressionSessionPropertyID_ImageDescription = 'idsc' /* ImageDescriptionHandle,
Read */
};
enum {
/*
* Class identifier for decompression frame options object properties.
*/
kQTPropertyClass_ICMDecompressionFrameOptions = 'idfo',
/*
* A specific pixel buffer that the frame should be decompressed
* into. Setting this circumvents the pixel buffer pool mechanism. If
* this buffer is not compatible with the codec's pixel buffer
* requirements,
decompression will fail.
*/
kICMDecompressionFrameOptionsPropertyID_DestinationPixelBuffer = 'cvpb' /* CVPixelBufferRef,
Read/Write */
};
enum {
/*
* Class identifier for decompression session options object
* properties.
*/
kQTPropertyClass_ICMDecompressionSessionOptions = 'idso',
/*
* By default,
this is true,
meaning that frames must be output in
* display order. Set this to false to allow frames to be output in
* decode order rather than in display order.
*/
kICMDecompressionSessionOptionsPropertyID_DisplayOrderRequired = 'dorq', /* Boolean,
Read/Write */
/*
* A specific decompressor component or component instance to be
* used,
or one of the wildcards anyCodec,
bestSpeedCodec,
* bestFidelityCodec,
or bestCompressionCodec.
* By default,
this is anyCodec.
*/
kICMDecompressionSessionOptionsPropertyID_DecompressorComponent = 'imdc', /* DecompressorComponent,
Read/Write */
/*
* The decompression accuracy.
* The default accuracy is codecNormalQuality.
*/
kICMDecompressionSessionOptionsPropertyID_Accuracy = 'acur', /* CodecQ,
Read/Write */
/*
* Requests special handling of fields. Not all codecs will obey this
* request; some codecs will only handle it at certain accuracy
* levels. Ignored for non-interlaced content.
*/
kICMDecompressionSessionOptionsPropertyID_FieldMode = 'fiel', /* ICMFieldMode,
Read/Write */
/*
* The maximum number of buffers ahead of the current time that
* should be decompressed. Used in sessions that target visual
* contexts. By default,
the number of buffers will be determined
* from the visual context.
*/
kICMDecompressionSessionOptionsPropertyID_MaxBufferCount = 'm#bf', /* UInt32,
Read/Write */
/*
* The minimum time ahead of the current time that frames should be
* decompressed. Used in sessions that target visual contexts. By
* default,
the output-ahead time will be determined from the visual
* context.
*/
kICMDecompressionSessionOptionsPropertyID_OutputAheadTime = 'futu' /* TimeRecord,
Read/Write */
};
enum {
/*
* Class identifier for decompression session properties.
*/
kQTPropertyClass_ICMDecompressionSession = 'icds',
/*
* The non-scheduled display time for a decompression session.
* Setting this requests display of the non-scheduled queued frame at
* that display time,
if there is one.
* See ICMDecompressionSessionSetNonScheduledDisplayTime.
*/
kICMDecompressionSessionPropertyID_NonScheduledDisplayTime = 'nsti', /* ICMNonScheduledDisplayTime,
Read/Write */
/*
* The direction for non-scheduled display time.
* See ICMDecompressionSessionSetNonScheduledDisplayDirection.
*/
kICMDecompressionSessionPropertyID_NonScheduledDisplayDirection = 'nsdu', /* Fixed,
Read/Write */
/*
* The pixel buffer pool from which emitted pixel buffers are
* allocated. Getting this does not change the retain count of the
* pool.
*/
kICMDecompressionSessionPropertyID_PixelBufferPool = 'pool', /* CVPixelBufferPoolRef,
Read */
/*
* Indicates whether the a common pixel buffer pool is shared between
* the decompressor and the session client. This is false if separate
* pools are used because the decompressor's and the client's pixel
* buffer attributes were incompatible.
*/
kICMDecompressionSessionPropertyID_PixelBufferPoolIsShared = 'plsh' /* Boolean,
Read */
};
enum {
/*
* Class identifier for image description properties.
*/
kQTPropertyClass_ImageDescription = 'idsc',
/*
* The width of the encoded image. Usually,
but not always,
this is
* the ImageDescription's width field.
*/
kICMImageDescriptionPropertyID_EncodedWidth = 'encw', /* SInt32,
Read/Write */
/*
* The height of the encoded image. Usually,
but not always,
this is
* the ImageDescription's height field.
*/
kICMImageDescriptionPropertyID_EncodedHeight = 'ench', /* SInt32,
Read/Write */
/*
* Describes the clean aperture of the buffer. If not specified
* explicitly in the image description,
the default clean aperture
* (full encoded width and height) will be returned.
*/
kICMImageDescriptionPropertyID_CleanAperture = 'clap', /* Native-endian CleanApertureImageDescriptionExtension,
Read/Write */
/*
* Describes the pixel aspect ratio. If not specified explicitly in
* the image description,
a square (1:1) pixel aspect ratio will be
* returned.
*/
kICMImageDescriptionPropertyID_PixelAspectRatio = 'pasp', /* Native-endian PixelAspectRatioImageDescriptionExtension,
Read/Write */
/*
* A width at which the buffer's image could be displayed on a
* square-pixel display,
possibly calculated using the clean aperture
* and pixel aspect ratio.
*/
kICMImageDescriptionPropertyID_DisplayWidth = 'disw', /* SInt32,
Read */
/*
* A height at which the buffer's image could be displayed on a
* square-pixel display,
possibly calculated using the clean aperture
* and pixel aspect ratio.
*/
kICMImageDescriptionPropertyID_DisplayHeight = 'dish', /* SInt32,
Read */
/*
* A width at which the image could be displayed on a square-pixel
* display,
disregarding any clean aperture but honoring the pixel
* aspect ratio. This may be useful for authoring applications that
* want to expose the edge processing region. For general viewing,
* use kICMImageDescriptionPropertyID_DisplayWidth instead.
*/
kICMImageDescriptionPropertyID_ProductionDisplayWidth = 'pdsw', /* SInt32,
Read */
/*
* A height at which the image could be displayed on a square-pixel
* display,
disregarding any clean aperture but honoring the pixel
* aspect ratio. This may be useful for authoring applications that
* want to expose the edge processing region. For general viewing,
* use kICMImageDescriptionPropertyID_DisplayHeight instead.
*/
kICMImageDescriptionPropertyID_ProductionDisplayHeight = 'pdsh', /* SInt32,
Read */
/*
* Color information,
if available in the
* NCLCColorInfoImageDescriptionExtension format.
*/
kICMImageDescriptionPropertyID_NCLCColorInfo = 'nclc', /* Native-endian NCLCColorInfoImageDescriptionExtension,
Read/Write */
/*
* The gamma level described by the image description.
*/
kICMImageDescriptionPropertyID_GammaLevel = 'gama', /* Fixed,
Read/Write */
/*
* Information about the number and order of fields,
if available.
*/
kICMImageDescriptionPropertyID_FieldInfo = 'fiel', /* FieldInfoImageDescriptionExtension2,
Read/Write */
/*
* The offset in bytes from the start of one row to the next. Only
* valid if the codec type is a chunky pixel format.
*/
kICMImageDescriptionPropertyID_RowBytes = 'rowb', /* SInt32,
Read/Write */
/*
* A track width suitable for passing to NewMovieTrack when creating
* a new track to hold this image data.
*/
kICMImageDescriptionPropertyID_ClassicTrackWidth = 'claw', /* Fixed,
Read */
/*
* A track height suitable for passing to NewMovieTrack when creating
* a new track to hold this image data.
*/
kICMImageDescriptionPropertyID_ClassicTrackHeight = 'clah' /* Fixed,
Read */
};
enum {
/*
* In this pass the compressor shall output encoded frames.
*/
kICMCompressionPassMode_OutputEncodedFrames = 1L << 0,
/*
* In this pass the client need not provide source frame buffers.
*/
kICMCompressionPassMode_NoSourceFrames = 1L << 1,
/*
* In this pass the compressor may write private data to multipass
* storage.
*/
kICMCompressionPassMode_WriteToMultiPassStorage = 1L << 2,
/*
* In this pass the compressor may read private data from multipass
* storage.
*/
kICMCompressionPassMode_ReadFromMultiPassStorage = 1L << 3,
/*
* The compressor will set this flag to indicate that it will not be
* able to output encoded frames in the coming pass. If this flag is
* not set,
then the client is allowed to set the
* kICMCompressionPassMode_OutputEncodedFrames flag before calling
* ICMCompressionSessionBeginPass.
*/
kICMCompressionPassMode_NotReadyToOutputEncodedFrames = 1L << 4
};
enum {
/*
* Indicates that this is the last call for this sourceFrameRefCon.
*/
kICMSourceTracking_LastCall = 1L << 0,
/*
* Indicates that the session is done with the source pixel buffer
* and has released any reference to it that it had.
*/
kICMSourceTracking_ReleasedPixelBuffer = 1L << 1,
/*
* Indicates that this frame was encoded.
*/
kICMSourceTracking_FrameWasEncoded = 1L << 2,
/*
* Indicates that this frame was dropped.
*/
kICMSourceTracking_FrameWasDropped = 1L << 3,
/*
* Indicates that this frame was merged into other frames.
*/
kICMSourceTracking_FrameWasMerged = 1L << 4,
/*
* Indicates that the time stamp of this frame was modified.
*/
kICMSourceTracking_FrameTimeWasChanged = 1L << 5,
/*
* Indicates that the ICM has copied the image from the source pixel
* buffer into another pixel buffer because the source pixel buffer
* was not compatible with the compressor's required pixel buffer
* attributes.
*/
kICMSourceTracking_CopiedPixelBuffer = 1L << 6
};
enum {
/*
* The full width and height of source frames shall be scaled to the
* full width and height of the destination. This is the default if
* no other scaling mode is specified.
*/
kICMScalingMode_StretchProductionAperture = 'sp2p',
/*
* The clean aperture of the source frames shall be scaled to the
* clean aperture of the destination.
*/
kICMScalingMode_StretchCleanAperture = 'sc2c',
/*
* The clean aperture of the source frames shall be scaled to fit
* inside the clean aperture of the destination,
preserving the
* original display aspect ratio. If the display aspect ratios are
* different,
the source frames will be centered with black bars
* above and below,
or to the left and right.
*/
kICMScalingMode_Letterbox = 'lett',
/*
* The clean aperture of the source frames shall be scaled to cover
* the clean aperture of the destination,
preserving the original
* display aspect ratio. If the display aspect ratios are different,
* the source frames will be centered and cropped.
*/
kICMScalingMode_Trim = 'trim'
};
kICMCompressionFrameOptionsPropertyID_ForceKeyFrameBoolean, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionFrameOptionsPropertyID_FrameTypeICMFrameType, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kQTPropertyClass_ICMCompressionSessionOptionsClass identifier for compression session option object properties. Also 'icso'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_AllowTemporalCompressionEnables temporal compression of P-frames and B-frames. By default, temporal compression is disabled. Also 'p ok'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_AllowFrameReorderingEnables frame reordering. To encode B-frames a compressor must reorder frames, which may mean that the order in which they are emitted and stored (the decode order) may be different from the order in which they are presented to the compressor (the display order). By default, frame reordering is disabled. To encode using B-frames, you must enable frame reordering by passing TRUE in this property. Also 'b ok'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_DurationsNeededIndicates that durations of emitted frames are needed. If this option is set and source frames are provided with times but not durations, then frames will be delayed so that durations can be calculated as the difference between one frame's time stamp and the next frame's time stamp. By default, this flag is FALSE, so frames will not be delayed in order to calculate durations. If you pass encoded frames to AddMediaSampleFromEncodedFrame, you must set this flag to TRUE. Also 'need'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_MaxKeyFrameIntervalThe maximum interval between key frames, also known as the key frame rate. Compressors are allowed to generate key frames more frequently if this would result in more efficient compression. The default key frame interval is 0, which indicates that the compressor should choose where to place all key frames. This differs from previous practice, in which a key frame rate of zero disabled temporal compression. Also 'kyfr'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_MaxPartialSyncFrameIntervalSInt32, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_AllowFrameTimeChangesEnables the compressor to modify frame times, improving its performance. Some compressors are able to identify and coalesce runs of identical frames and emit single frames with longer duration, or emit frames at a different frame rate from the original. By default, this flag is set to FALSE, which forces the compressor to emit one encoded frame for every source frame and to preserve frame display times. This option replaces the practice of having compressors return special high similarity values to indicate that frames can be dropped. Also '+ ok'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_AllowAsyncCompletionEnables the compressor to call the encoded-frame callback from a different thread. By default this option is FALSE, which means that the compressor must call the encoded-frame callback from the same thread as ICMCompressionSessionEncodeFrame and ICMCompressionSessionCompleteFrames. Also 'asok'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_MaxFrameDelayCountThe maximum frame delay count is the maximum number of frames that a compressor is allowed to hold before it must output a compressed frame. This value limits the number of frames that may be held in the compression window. If the maximum frame delay count is M, then before the call to encode frame N returns, frame N-M must have been emitted. The default value is kICMUnlimitedFrameDelayCount, which sets no limit on the compression window. Also 'cwin'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_MaxFrameDelayTimeTimeValue64, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_CompressorComponentSets a specific compressor component or component instance to be used, or passes one of the wildcards anyCodec, bestSpeedCodec, bestFidelityCodec, or bestCompressionCodec. Pass this option to force the Image Compression Manager to use a specific compressor component or compressor component instance. To allow the Image Compression Manager to choose the compressor component, set the compressorComponent to anyCodec (the default), bestSpeedCodec, bestFidelityCodec, or bestCompressionCodec. If you pass in a component instance that you opened, the ICM will not close that instance; you must do so after the compression session is released. Also 'imco'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_CompressorSettingsA handle containing compressor settings. The compressor will be configured with these settings (by a call to ImageCodecSetSettings) during the ICMCompressionSessionCreate process. Also 'cost'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_DepthUInt32, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_ColorTableThe color table for compression, used with indexed-color depths. Clients who are passed this property are responsible for disposing the returned CTabHandle. Also 'clut'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_QualityThe compression quality. This value is always used to set the spatial quality; if temporal compression is enabled, it is also used to set temporal quality. The default quality is codecNormalQuality. Also 'qual'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_AverageDataRateThe long-term desired average data rate in bytes per second. This is not an absolute limit. The default data rate is zero, indicating that the setting of kICMCompressionSessionOptionsPropertyID_Quality should determine the size of compressed data. Data rate settings have effect only when timing information is provided for source frames. Some codecs do not accept limiting to specified data rates. Also 'aver'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_DataRateLimitsZero, one, or two hard limits on data rate. Each hard limit is described by a data size in bytes and a duration in seconds. It requires that the total size of compressed data for any contiguous segment of that duration (in decode time) must not exceed the data size. By default, no data rate limits are set. When setting this property, the inPropValueSize parameter should be the number of data rate limits multiplied by sizeof(ICMDataRateLimit). Data rate settings have an effect only when timing information is provided for source frames. Some codecs do not accept limiting to specified data rates. Also 'hard'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_DataRateLimitCountUInt32, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_MaxDataRateLimitsUInt32, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_WasCompressedIndicates that the source was previously compressed. This property is an optional information hint to the compressor; by default it is FALSE. Also 'wasc'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_CPUTimeBudgetUInt32, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_MultiPassStorageA multipass compression client must provide a storage location for multipass data. Pass ICMMultiPassStorageCreateWithTemporaryFile to make the ICM store multipass data in a temporary file. Pass ICMMultiPassStorageCreateWithCallbacks to manage the storage yourself. Note that the amount of multipass data to be stored can be substantial; it could be greater than the size of the output movie file. If this property is not NULL, the client must call ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass around groups of calls to ICMCompressionSessionEncodeFrame. By default, this property is NULL and multipass compression is not enabled. The compression session options object retains the multipass storage object when one is set. Also 'imps'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_SourceFrameCountUInt64, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_ExpectedFrameRateFixed, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_ScalingModeOSType, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_CleanApertureNative-endian CleanApertureImageDescriptionExtension, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_PixelAspectRatioNative-endian PixelAspectRatioImageDescriptionExtension, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionOptionsPropertyID_FieldInfoFieldInfoImageDescriptionExtension2, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kQTPropertyClass_ICMCompressionSessionClass identifier for compression session properties. Also 'icse'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionPropertyID_TimeScaleThe time scale for the compression session. Also 'tscl'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionPropertyID_CompressorPixelBufferAttributesThe compressor's pixel buffer attributes for the compression session. You can use these to create a pixel buffer pool for source pixel buffers. This is not the same as the sourcePixelBufferAttributes property passed to ICMCompressionSessionCreate. Getting this property does not change its retain count. Also 'batt'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionPropertyID_PixelBufferPoolA pool that can provide ideal source pixel buffers for a compression session. The compression session creates this pixel buffer pool based on the compressor's pixel buffer attributes and any pixel buffer attributes passed in to ICMCompressionSessionCreate. If the source pixel buffer attributes and the compressor pixel buffer attributes can not be reconciled, the pool is based on the source pixel buffer attributes and the ICM converts each CVPixelBuffer internally. Also 'pool'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMCompressionSessionPropertyID_ImageDescriptionThe image description for a compression session. For some codecs, the image description may not be available before the first frame is compressed. Multiple calls to retrieve this property will return the same handle. The ICM will dispose of this handle when the compression session is disposed; the caller must not dispose of it. Also 'idsc'.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionFrameOptionsPropertyID_DestinationPixelBufferCVPixelBufferRef, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionOptionsPropertyID_DisplayOrderRequiredBoolean, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionOptionsPropertyID_DecompressorComponentDecompressorComponent, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionOptionsPropertyID_AccuracyCodecQ, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionOptionsPropertyID_FieldModeICMFieldMode, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionOptionsPropertyID_MaxBufferCountUInt32, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionOptionsPropertyID_OutputAheadTimeTimeRecord, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionPropertyID_NonScheduledDisplayTimeICMNonScheduledDisplayTime, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionPropertyID_NonScheduledDisplayDirectionFixed, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionPropertyID_PixelBufferPoolCVPixelBufferPoolRef, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMDecompressionSessionPropertyID_PixelBufferPoolIsSharedBoolean, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_EncodedWidthSInt32, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_EncodedHeightSInt32, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_CleanApertureNative-endian CleanApertureImageDescriptionExtension, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_PixelAspectRatioNative-endian PixelAspectRatioImageDescriptionExtension, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_DisplayWidthSInt32, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_DisplayHeightSInt32, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_ProductionDisplayWidthSInt32, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_ProductionDisplayHeightSInt32, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_NCLCColorInfoNative-endian NCLCColorInfoImageDescriptionExtension, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_GammaLevelFixed, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_FieldInfoFieldInfoImageDescriptionExtension2, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_RowBytesSInt32, ReadWrite.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_ClassicTrackWidthFixed, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMImageDescriptionPropertyID_ClassicTrackHeightFixed, Read.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
ImageCompression.h
Constants passed to ICMEncodedFrameSetFrameType.
enum {
kICMFrameType_I = 'I',
kICMFrameType_P = 'P',
kICMFrameType_B = 'B',
kICMFrameType_Unknown = 0
};
ImageCompression.h
Constants passed to ICMMultiPassStorageCreateWithTemporaryFile.
enum {
/*
* Indicates that the temporary file should not be deleted when the
* multipass storage is released.
*/
kICMMultiPassStorage_DoNotDeleteWhenDone = 1L << 0
};
ImageCompression.h
Constants passed to ICMMultiPassStorageGetTimeStamp.
enum {
/*
* Requests the first time stamp at which a value is stored.
*/
kICMMultiPassStorage_GetFirstTimeStamp = 1,
/*
* Requests the previous time stamp before the given time stamp at
* which a value is stored.
*/
kICMMultiPassStorage_GetPreviousTimeStamp = 2,
/*
* Requests the next time stamp after the given time stamp at which a
* value is stored.
*/
kICMMultiPassStorage_GetNextTimeStamp = 3,
/*
* Requests the last time stamp at which a value is stored.
*/
kICMMultiPassStorage_GetLastTimeStamp = 4
};
ImageCompression.h
Constants grouped with kICMValidTime_DecodeDurationIsValid.
enum {
/*
* Indicates that a display time stamp is valid.
*/
kICMValidTime_DisplayTimeStampIsValid = 1L << 0,
/*
* Indicates that a display duration is valid.
*/
kICMValidTime_DisplayDurationIsValid = 1L << 1,
/*
* Indicates that a decode time stamp is valid.
*/
kICMValidTime_DecodeTimeStampIsValid = 1L << 2,
/*
* Indicates that a decode duration is valid.
*/
kICMValidTime_DecodeDurationIsValid = 1L << 3,
/*
* Indicates that a display offset (the offset from a decode time
* stamp to a display time stamp) is valid.
*/
kICMValidTime_DisplayOffsetIsValid = 1L << 4
};
kICMValidTime_DisplayTimeStampIsValidThe time value passed in displayTimeStamp is valid.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
kICMValidTime_DisplayDurationIsValidThe time value passed in displayDuration is valid.
Available in Mac OS X v10.3 and later.
Declared in ImageCompression.h.
ImageCompression.h
© 2006 Apple Computer, Inc. All Rights Reserved. (Last updated: 2006-05-23)