Skip to content

Structure Descriptions

Structure Descriptions

imAcceleratorRec

Selector: imRetargetAccelerator

Describes the path to the new media and new accelerator created when the Project Manager copies media and its accelerator.

typedef struct {
const prUTF16Char *inOriginalPath;
const prUTF16Char *inAcceleratorPath;
} imAcceleratorRec;
MemberDescription
inOriginalPathThe unicode path and name of the copied media.
inAcceleratorPathThe unicode path and name of the copied accelerator.

imAnalysisRec

Selector: imAnalysis

Sending back analysis data is a two step process. First, set buffersize to the size of your character buffer and return imNoErr.

Premiere will immediately send imAnalysis again; populate the buffer with text. Previously-stored preferences and privateData are returned in this structure.

typedef struct {
void *privatedata;
void *prefs;
csSDK_int32 buffersize;
char *buffer;
csSDK_int32 *timecodeFormat;
} imAnalysisRec;
MemberDescription
privatedataInstance data from imGetInfo8 or imGetPrefs8.
prefsClip Source Settings data from imGetPrefs8 (setup dialog info).
buffersizeSet to the desired size and return imNoErr to Premiere, which will re-size and call the plugin again with the imGetPrefs8 selector.
bufferText buffer. Terminate lines with line endings (CR and LF).
timecodeFormatPreferred timecode format, sent by the host.

imAsyncImporterCreationRec

Selector: imCreateAsyncImporter

Create an asynchronous importer object using the data provided, and store it here.

typedef struct {
void *inPrivateData;
void *inPrefs;
AsyncImporterEntry outAsyncEntry;
void *outAsyncPrivateData;
}
MemberDescription
inPrivateDataInstance data from imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings from imGetPrefs8 (setup dialog info).
outAsyncEntryProvide the entry point for async selectors sent to the asynchronous importer object.
outAsyncPrivateDataPrivateData for the asynchronous importer object.

imAudioInfoRec7

Selector: imGetInfo8 (member of imFileInfoRec8)

Audio data properties of the file (or of the data you will generate, if synthetic).

typedef struct {
csSDK_int32 numChannels;
float sampleRate;
PrAudioSampleType sampleType;
}
MemberDescription
numChannelsNumber of audio channels in the audio stream.
Either 1, 2, or 6.
sampleRateIn hertz.
sampleTypeThis is for informational use only, to disclose the format of the audio on disk, before it is converted to 32-bit float, uninterleaved, by the importer.
The audio sample types are listed in Universals.

imCalcSizeRec

Selector: imCalcSize8

Asks the importer for an estimate of disk space used by the clip, given the provided trim boundaries.

typedef struct {
void *privatedata;
void *prefs;
csSDK_int32 trimIn;
csSDK_int32 duration;
prInt64 sizeInBytes;
csSDK_int32 scale;
csSDK_int32 sampleSize;
} imCalcSizeRec;
MemberDescription
privatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
prefsClip Source Settings gathered from imGetPrefs8 (setup dialog info).
trimInIn point of the trimmed clip the importer should calculate the size for, in the timebase specified by scale over sampleSize.
durationDuration of the trimmed clip the importer should calculate the size for.
If 0, then the importer should calculate the size of the untrimmed clip.
sizeInBytesReturn the calculated size in bytes.
scaleThe frame rate of the video clip, represented as scale over sampleSize.
sampleSize

imCheckTrimRec

Selector: imCheckTrim8

Provides the requested trim boundaries to the importer, and allows adjusted trim boundaries to be passed back to Premiere.

typedef struct {
void *privatedata;
void *prefs;
csSDK_int32 trimIn;
csSDK_int32 duration;
csSDK_int32 keepAudio;
csSDK_int32 keepVideo;
csSDK_int32 newTrimIn;
csSDK_int32 newDuration;
csSDK_int32 scale;
csSDK_int32 sampleSize;
} imCheckTrimRec;
MemberDescription
privatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
prefsClip Source Settings gathered from imGetPrefs8 (setup dialog info).
trimInRequested in point of the trimmed clip, in the timebase specified by scale over sampleSize.
durationRequested duration. If 0, then the request is to leave the clip untrimmed, and at the current duration
keepAudioIf non-zero, the request is to keep the audio in the trimmed result.
keepVideoIf non-zero, the request is to keep the video in the trimmed result.
newTrimInReturn the acceptable in point of the trimmed clip. It must be at or before the requested in point.
newDurationReturn the acceptable duration. newTrimIn + newDuration must be at or after the trimIn + duration.
scaleThe frame rate of the video clip, represented as scale over sampleSize.
sampleSize

imClipFrameDescriptorRec

Selector: imSelectClipFrameDescriptor

Based on the request in inDesiredClipFrameDescriptor and the importer’s Source Settings, modify outBestFrameDescriptor as needed to describe what format the importer will provide.

typedef struct {
void* inPrivateData;
void* inPrefs;
ClipFrameDescriptor inDesiredClipFrameDescriptor;
ClipFrameDescriptor outBestFrameDescriptor;
} imClipFrameDescriptorRec;
MemberDescription
inPrivatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings gathered from imGetPrefs8 (setup dialog info).
inDesiredClipFrameDescriptorRequested frame properties, as described by the host.
The ClipFrameDescriptor struct is defined in PrSDKImporterShared.h.
outBestFrameDescriptorFrame properties to be produced, filled in with initial guesses

imCompleteAsyncClosedCaptionScanRec

Selector: imCompleteAsyncClosedCaptionScan

This structure is passed to provide one last chance to cleanup and dispose of inAsyncCaptionScanPrivateData, and to mark whether the closed caption scan completed without error.

typedef struct {
void* inPrivateData;
const void* inPrefs;
void* inAsyncCaptionScanPrivateData;
prBool inScanCompletedWithoutError;
} imCompleteAsyncClosedCaptionScanRec;
MemberDescription
inPrivatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings gathered from imGetPrefs8 (setup dialog info).
inAsyncCaptionScanPrivateDataCleanup and dispose of any data here that was allocated in imInitiateAsyncClosedCaptionScan or imGetNextClosedCaption.
This data should not be accessed after returning from this call.
inScanCompletedWithoutErrorSet to true if no error.

imIndColorProfileRec

Selector: imGetIndColorProfile

Deprecated as of 13.0. Describes a color profile supported by a clip.

The first time imGetIndColorProfile is sent, inDestinationBuffer will be NULL, and ioBufferSize will be 0.

Set ioBufferSize to the required size for the buffer, and the host will allocate the memory and call the importer again, with a valid inDestinationBuffer, and ioBufferSize set to the value just provided by the importer.

typedef struct {
void *inPrivateData;
csSDK_int32 ioBufferSize;
void *inDestinationBuffer;
PrSDKString outName;
} imIndColorProfileRec;

imCopyFileRec

Selector: imCopyFile

Describes how to copy a clip. Also provides a callback to update the progress bar and check if the user has cancelled.

typedef struct {
void *inPrivateData;
csSDK_int32 *inPrefs;
const prUTF16Char *inSourcePath;
const prUTF16Char *inDestPath;
importProgressFunc inProgressCallback;
void *inProgressCallbackID;
} imTrimFileRec;
MemberDescription
inPrivateDataInstance data gathered during imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings gathered during imGetPrefs8 (setup dialog).
inSourcePathFull unicode path of the source file.
inDestPathFull unicode path of the destination file.
inProgressCallbackimportProgressFunc callback to call repeatedly to provide progress and to check for cancel by user.
May be a NULL pointer, so make sure the function pointer is valid before calling.
inProgressCallbackIDPass to progressCallback.

imDataRateAnalysisRec

Selector: imDataRateAnalysis

Specify the desired buffersize, return to Premiere with imNoErr; upon the next call fill buffer with imDataSamples, and specify a base data rate for audio (if any).

This structure is used like imAnalysisRec.

typedef struct {
void *privatedata;
void *prefs;
csSDK_int32 buffersize;
char *buffer;
csSDK_int32 baserate;
} imDataRateAnalysisRec;
MemberDescription
privatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
prefsClip Source Settings gathered from imGetPrefs8 (setup dialog info).
buffersizeThe size of the buffer you request from Premiere prior to passing data back data in buffer.
bufferPointer to the analysis buffer to be filled with imDataSamples (see structure below).
baserateAudio data rate (bytes per second) of the file.
typedef struct {
csSDK_uint32 sampledur;
csSDK_uint32 samplesize;
} imDataSample;
MemberDescription
sampledurDuration of one sample in video timebase, in samplesize increments; set the high bit if this is a keyframe.
samplesizeSize of this sample in bytes.

imDeferredProcessingRec

Selector: imDeferredProcessing

Describes the current progress of the deferred processing on the clip referred to by inPrivateData.

typedef struct {
void *inPrivateData;
float outProgress;
char outInvalidateFile;
char outCallAgain;
} imDeferredProcessingRec;
MemberDescription
inPrivateDataInstance data gathered from imGetInfo8 or imGetPrefs8.
outProgressSet this to the current progress, from 0.0 to 1.0.
outInvalidateFileThe importer has updated information about the file.
outCallAgainSet this to true to request that the importer be called again immediately.

imDeleteFileRec

Selector: imDeleteFile

Describes the file to be deleted.

typedef struct {
csSDK_int32 filetype;
const prUTF16Char deleteFile;
} imDeleteFileRec;
MemberDescription
filetypeThe file’s unique four character code, defined in the IMPT resource
deleteFileSpecifies the name (and path) of the file to be deleted.

imFileAccessRec8

Selectors: imGetInfo8 and imGetPrefs8

Describes the file being imported.

typedef struct {
void *importID;
csSDK_int32 filetype;
const prUTF16Char *filepath;
imFileRef fileref;
PrMemoryPtr newfilename;
} imFileAccessRec;
MemberDescription
importIDUnique ID provided by Premiere. Do not modify!
filetypeThe file’s unique four character code, defined in the IMPT resource.
filepathThe unicode file path and name.
filerefA Windows HANDLE. Premiere does not overload this value by using it internally, although setting it to the constant kBadFileRef may cause Premiere to think the file is closed.
This value is always valid.
newfilenameIf the file is synthetic, the importer can specify the displayable name here as a prUTF16Char string during imGetPrefs8.

imFileAttributesRec

Selector: imGetFileAttributes

New in Premiere Pro 3.1. Provide the clip creation date.

typedef struct {
prDateStamp creationDateStamp;
csSDK_int32 reserved[40];
} imFileAttributesRec;
MemberDescription
creationDateStampStructure to store when the clip was created

imFileInfoRec8

Selector: imGetInfo8

Describes the clip, or the stream with the ID streamIdx. Set the clip or stream attributes from the file header or data source. Create and store any privateData.

When a synthetic clip is created, and the user provides the desired resolution, frame rate, pixel aspect ratio, and audio sample rate in the New Synthetic dialog, these values will be pre-initialized by Premiere.

If importing stereoscopic footage, import the left-eye video channel for streamID 0, and the right-eye video channel for streamID 1.

typedef struct {
char hasVideo;
char hasAudio;
imImageInfoRec vidInfo;
csSDK_int32 vidScale;
csSDK_int32 vidSampleSize;
csSDK_int32 vidDuration;
imAudioInfoRec7 audInfo;
PrAudioSample audDuration;
csSDK_int32 accessModes;
void *privatedata;
void *prefs;
char hasDataRate;
csSDK_int32 streamIdx;
char streamsAsComp;
prUTF16Char streamName[256];
csSDK_int32 sessionPluginID;
char alwaysUnquiet;
char unused;
prUTF16Char filePath[2048];
char canProvidePeakData;
char mayBeGrowing;
} imFileInfoRec8;
MemberDescription
hasVideoIf non-zero, the file contains video.
hasAudioIf non-zero, the file contains audio.
vidInfoIf there is video in the file, fill out the imImageInfoRec structure (e.g. height, width, alpha info, etc.).
vidScaleThe frame rate of the video, represented as scale over sampleSize.
vidSampleSize
vidDurationThe total number of frames of video, in the video timebase.
audInfoIf there is audio in the file, fill out the imAudioInfoRec7 structure.
audDurationThe total number of audio sample frames.
accessModesThe access mode of this file. Use one of the following constants:
- kRandomAccessImport - This file can be read by random access (default)
- kSequentialAudioOnly - When accessing audio, only sequential reads allowed (for variable bit rate files)
- kSequentialVideoOnly - When accessing video, only sequential reads allowed
- kSequentialOnly - Both sequential audio and video
- kSeparateSequentialAudio - Both random access and sequential access.
This setting allows audio to be retrieved for scrubbing or playback even during audio conforming.
privatedataPrivate instance data.
Allocate a handle using Premiere’s memory functions and store it here.
Premiere will return the handle with subsequent selectors.
prefsClip Source Settings data gathered from imGetPrefs8 (setup dialog info).
When a synthetic clip is created using File > New, imGetPrefs8 is sent beforeimGetInfo8 so this settings structure will already be valid.
hasDataRateIf set, the importer can read or generate data rate information for this file and will be sent imDataRateAnalysis.
streamIdxThe Premiere-specified stream index number.
Only useful if clip uses multiple streams.
streamsAsCompIf multiple streams and this is stream zero, indicate whether to import as a composition or multiple clips.
streamNameOptional. The unicode name of this stream if there are multiple streams.
New in Premiere Pro 3.1, an importer may use this to set the clip name based on metadata rather than the filename.
The importer should set imImportInfoRec.canSupplyMetadataClipName to true, and fill out the name here.
sessionPluginIDThis ID should be used in the File Registration Suite for registering external files (such as textures, logos, etc) that are used by an importer instance but do not appear as footage in the Project Window.
Registered files will be taken into account when trimming or copying a project using the Project Manager.
The sessionPluginID is valid only for the call that it is passed on.
alwaysUnquietSet to non-zero to tell Premiere if the clip should always be unquieted immediately when the application regains focus.
filepathAdded in Premiere Pro 4.1. For clips that have audio in files separate from the video file, set the filename here, so that UMIDs can properly be generated when exporting sequences to AAF.
canProvidePeakDataNew in Premiere Pro CS6. This allows an importer to toggle whether or not it wants to provide peak audio data on a clip-by-clip basis.
It defaults to the setting set in imImportInfoRec.canProvidePeakAudio.
!!! warning
Do not attempt to use this setting with growing files.
mayBeGrowingNew in Premiere Pro CS6.0.2. Set to non-zero if this clip is growing and should be refreshed at the interval set in the Media Preferences.

imFileOpenRec8

Selector: imOpenFile8

The file Premiere wants the importer to open.

typedef struct {
imFileAccessRec8 fileinfo;
void *privatedata;
csSDK_int32 reserved;
PrFileOpenAccess inReadWrite;
csSDK_int32 inImporterID;
csSDK_size_t outExtraMemoryUsage;
csSDK_int32 inStreamIdx;
} imFileOpenRec8;
MemberDescription
fileinfoimFileAccessRec8 describing the incoming file.
privatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
reservedDo not use.
inReadWriteThe file should be opened with the access mode specified:
Either kPrOpenFileAccess_ReadOnly or kPrOpenFileAccess_ReadWrite
inImporterIDCan be used as the ID for calls in the PPix Cache Suite.
outExtraMemoryUsageNew in CS5. If the importer uses memory just by being open, which cannot otherwise be registered in the cache, put the size in bytes in this field.
inStreamIdxNew in CS6. If the clip has multiple streams (for stereoscopic video or otherwise), this ID differentiates between them.

imFileRef

Selectors:

A file HANDLE on Windows, or a void* on MacOS.

imFileRef is also a member of imFileAccessRec.

Use OS-specific functions, rather than ANSI file functions, when manipulating imFileRef.


imFrameFormat

Selector: imGetSourceVideo (member of imSourceVideoRec)

Describes the frame dimensions and pixel format.

typedef struct {
csSDK_int32 inFrameWidth;
csSDK_int32 inFrameHeight;
PrPixelFormat inPixelFormat;
} imFrameFormat;
MemberDescription
inFrameWidthThe frame dimensions requested.
inFrameHeight
inPixelFormatThe pixel format of the frame requested.

imGetAudioChannelLayoutRec

Selector: imGetAudioChannelLayout

The importer should label each audio channel in the clip being imported.

If no labels are specified, the channel layout will be assumed to be discrete.

typedef struct {
void* inPrivateData;
PrAudioChannelLabel outChannelLabels[kMaxAudioChannelCount];
} imGetAudioChannelLayoutRec;
MemberDescription
inPrivatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
outChannelLabelsA valid audio channel label should be assigned for each channel in the clip.
Labels are defined in the Audio Suite.

imGetNextClosedCaptionRec

Selector: imGetNextClosedCaption

This structure provides private data allocated in imInitiateAsyncClosedCaptionScan, and should be filled out to pass back a closed caption, it’s time, format, size, and overall progress in the closed caption scan.

typedef struct {
void* inPrivateData;
const void* inPrefs;
void* inAsyncCaptionScanPrivateData;
float outProgress;
csSDK_int64 outScale;
csSDK_int64 outSampleSize;
csSDK_int64 outPosition;
PrClosedCaptionFormat outClosedCaptionFormat;
PrMemoryPtr outCaptionData;
prUTF8Char outTTMLData[kTTMLBufferSize];
csSDK_size_t ioCaptionDataSize;
} imGetNextClosedCaptionRec;
MemberDescription
inPrivatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings gathered from imGetPrefs8 (setup dialog info).
inAsyncCaptionScanPrivateDataThis provides any private data that was allocated in imInitiateAsyncClosedCaptionScan.
outProgressUpdate this value to denote the current progress iterating through all the captions. Valid values are between 0.0 and 1.0.
outScaleThe timebase of outPosition, represented as scale over sampleSize.
outSampleSize
outPositionThe position of the closed caption.
outClosedCaptionFormatThe format of the closed captions. One of the following:
- kPrClosedCaptionFormat_Undefined
- kPrClosedCaptionFormat_CEA608 - CEA-608 byte stream
- kPrClosedCaptionFormat_CEA708 - CEA-708 byte stream (may contain 608 data wrapped in 708)
- kPrClosedCaptionFormat_TTML - W3C TTML string that conforms to the W3C Timed Text Markup Language (TTML) 1.0 or optionally conforming to SMPTE ST 2052-1:2010, or optionally conforming to EBU Tech 3350.
If the TTML string contains tunneled data (e.g. CEA-608 data), then it is preferred that the plugin provide that through the appropriate byte stream format (e.g. kPrClosedCaptionFormat_CEA608).
outCaptionDataMemory location to where the plugin should write the closed caption bytes, if providing CEA-608 or CEA-708.
outTTMLDataUTF-8 String of valid W3C TTML data.
The entire string may be split into substrings (e.g. line by line) and the host will concatenate and decode them (only used when outCaptionData is kPrClosedCaptionFormat_TTML).
ioCaptionDataSizeSize of outCaptionData buffer (in bytes) allocated from the host. The importer should set this variable to the actual number of bytes that were written to outCaptionData, or the length of the string (characters, not bytes) pointed by outTTMLData.

imGetPrefsRec

Selector: imGetPrefs8

Contains settings/prefs data gathered from (or defaults to populate) a setup dialog.

If you are creating media, you can may generate a video preview that includes the background frame from the timeline.

typedef struct {
char *prefs;
csSDK_int32 prefsLength;
char firstTime;
PrTimelineID timelineData;
void *privatedata;
TDB_TimeRecord tdbTimelineLocation;
csSDK_int32 sessionPluginID;
csSDK_int32 imageWidth;
csSDK_int32 imageHeight;
csSDK_uint32 pixelAspectNum;
csSDK_uint32 pixelAspectDen;
csSDK_int32 vidScale;
csSDK_int32 vidSampleSize;
float sampleRate;
} imGetPrefsRec;
MemberDescription
prefsA pointer to a private structure (which you allocate) for storing Clip Source Settings.
prefsLengthPrior to storing anything in the prefs member, set prefsLength to the size of your structure and return imNoErr; Premiere will re-size and call the plugin again with imGetPrefs8.
firstTimeIf set, imGetPrefs8 is being sent for the first time.
Instead, check to see if prefs has been allocated. If not, imGetPrefs8 is being sent for the first time. Set up default values for the prefsLength buffer and present any setup dialog.
timelineDataCan be passed to getPreviewFrameEx callback along with tdbTimelineLocation to get a frame from the timeline beneath the current clip or timeline location. This is useful for titler plugins.
privatedataPrivate instance data.
Allocate a handle using Premiere’s memory functions and store it here, if not already allocated in imGetInfo8.
Premiere will return the handle with subsequent selectors.
tdbTimelineLocationCan be passed to getPreviewFrameEx callback along with timelineData to get a frame from the timeline beneath the current clip or timeline location. This is useful for titler plugins.
sessionPluginIDThis ID should be used in the File Registration Suite for registering external files (such as textures, logos, etc) that are used by a importer instance but do not appear as footage in the Project Window.
Registered files will be taken into account when trimming or copying a project using the Project Manager. The sessionPluginID is valid only for the call that it is passed on.
imageWidthNew in CS5. The native resolution of the video.
imageHeight
pixelAspectNumNew in CS5. The pixel aspect ratio of the video.
pixelAspectDen
vidScaleNew in CS5. The frame rate of the video, represented as scale over sampleSize.
vidSampleSize
sampleRateNew in CS5. Audio sample rate.

imImageInfoRec

Selector: imGetInfo8 (member of imFileInfoRec8)

Describes the video to be imported.

typedef struct {
csSDK_int32 imageWidth;
csSDK_int32 imageHeight;
csSDK_uint16 pixelAspectV1;
csSDK_uint16 depth;
csSDK_int32 subType;
char fieldType;
char fieldsStacked;
char reserved_1;
char reserved_2;
char alphaType;
matteColRec matteColor;
char alphaInverted;
char isVectors;
char drawsExternal;
char canForceInternalDraw;
char dontObscure;
char isStill;
char noDuration;
char reserved_3;
csSDK_uint32 pixelAspectNum;
csSDK_uint32 pixelAspectDen;
char isRollCrawl;
char reservedc[3];
csSDK_int32 importerID;
csSDK_int32 supportsAsyncIO;
csSDK_int32 supportsGetSourceVideo;
csSDK_int32 hasPulldown;
csSDK_int32 pulldownCadence;
csSDK_int32 posterFrame;
csSDK_int32 canTransform;
csSDK_int32 interpretationUncertain;
csSDK_int32 colorProfileSupport;
PrSDKString codecDescription;
csSDK_int32 colorSpaceSupport;
PrTime frameRate;
prBool hasEmbeddedLUT;
csSDK_int32 reserved[12];
} imImageInfoRec;

Plug-in Info

MemberDescription
importerIDCan be used as the ID for calls in the PPix Cache Suite.
supportsAsyncIOSet this to true if the importer supports imCreateAsyncImporter and ai* selectors.
supportsGetSourceVideoSet this to true if the importer supports the imGetSourceVideo selector.

Bounds Info

MemberDescription
imageWidthFrame width in pixels.
imageHeightFrame height in pixels.
pixelAspectNumThe pixel aspect ratio numerator and denominator.
For synthetic importers, these are by default the PAR of the project.
Only set this if you need a specific PAR for the geometry of the synthesized footage to be correct.
pixelAspectDen

Time Info

MemberDescription
isStillIf set, the file contains a single frame, so only one frame will be cached.
noDurationOne of the following:
- imNoDurationFalse
- imNoDurationNoDefault
- imNoDurationStillDefault - use the default duration for stills, as set by the user in the Preferences
- imNoDurationNoDefault - the importer will supply it’s own duration
This is primarily for synthetic clips, but can be used for importing non-sequential still images.
isRollCrawlSet to non-zero value to specify this clip is a rolling or crawling title.
This allows a player to optionally use the RollCrawl Suite to get sections of this title for real-time playback.
hasPulldownSet this to true if the clip contains NTSC film footage with 3:2 pulldown.
pulldownCadenceSet this to the enumerated value that describes the pulldown of the clip:
- importer_PulldownPhase_NO_PULLDOWN
2:3 cadences:
- importer_PulldownPhase_WSSWW
- importer_PulldownPhase_SSWWW
- importer_PulldownPhase_SWWWS
- importer_PulldownPhase_WWWSS
- importer_PulldownPhase_WWSSW
24pa cadences:
- importer_PulldownPhase_WWWSW
- importer_PulldownPhase_WWSWW
- importer_PulldownPhase_WSWWW
- importer_PulldownPhase_SWWWW
- importer_PulldownPhase_WWWWS
posterFrameNew in Premiere Pro CS3. Poster frame number to be displayed.
If not specified, the poster frame will be the first frame of the clip.

Format Info

MemberDescription
depthBits per pixel. This currently has no effect and should be left unchanged.
subTypeThe four character code of the file’s codec; associates files with MAL plugins. For uncompressed files, set to imUncompressed.
fieldTypeOne of the following:
- prFieldsNone
- prFieldsUpperFirst
- prFieldsLowerFirst
- prFieldsUnknown
fieldsStackedFields are present, and not interlaced. Deprecated since Premiere Pro 7.0.
alphaTypeUsed when depth is 32 or greater. One of the following:
- alphaNone - no alpha channel (the default)
- alphaStraight - straight alpha channel
- alphaBlackMatte - premultiplied with black
- alphaWhiteMatte - premultiplied with white
- alphaArbitrary - premultiplied with the color specified in matteColor
- alphaOpaque - for video with alpha channel prefilled to opaque.
This gives Premiere the opportunity to make an optimization by skipping the fill to opaque that would otherwise be performed if alphaNone was set.
matteColorNewly used in Premiere Pro CS3. Used to specify matte color if alphaType is set to alphaArbitrary.
alphaInvertedIf non-zero, alpha is treated as inverted (e.g. black becomes transparent).
canTransformSet to non-zero value to specify this importer handles resolution independent files and can apply a transform matrix.
The matrix will be passed during the import request in imImportImageRec.transform.
This code path is currently not called by Premiere Pro. After Effects uses this call to import Flash video.
interpretationUncertainUse an ‘or’ operator to combine any of the following flags:
- imPixelAspectRatioUncertain
- imFieldTypeUncertain
- imAlphaInfoUncertain
- imEmbeddedColorProfileUncertain
colorProfileSupportDeprecated as of 13.0. New in CS5.5.
Set to imColorProfileSupport_Fixed to support color management.
If the importer is uncertain, it should use interpretationUncertain above instead.
codecDescriptionText description of the codec in use.
ColorProfileRecNew in 13.0; describes the color profile being used by the importer, with this media.
colorSpaceSupportSet to imColorSpaceSupport_Fixed to support color management.
If importer is uncertain, it should use imColorSpaceSupport_None above instead.
hasEmbeddedLUTSet to kPrTrue if media contains embedded LUT. Else set to kPrFalse.

Unused

MemberDescription
pixelAspectV1Obsolete. Maintained for backwards compatability.
Plugins written for the Premiere 6.x or Premiere Pro API should use pixelAspectNum and pixelAspectDen.
isVectorsUse canTransform instead.
drawsExternal
canForceInternalDraw
dontObscure

imImportAudioRec7

Selector: imImportAudio7

Describes the audio samples to be returned, and contains an allocated buffer for the importer to fill in.

Provide the audio in 32-bit float, uninterleaved audio format.

typedef struct {
PrAudioSample position;
csSDK_uint32 size;
float **buffer;
void *privatedata;
void *prefs;
} imImportAudioRec7;
MemberDescription
positionIn point, in audio sample frames.
The importer should save the out point of the request in privatedata, because if position is less than zero, then the audio request is sequential, which means the importer should return contiguous samples from the last imImportAudio7 call.
sizeThe number of audio sample frames to import.
bufferAn array of buffers, one buffer for each channel, with length specified in size.
These buffers are allocated by the host application, for the plugin to fill in with audio data.
privatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
prefsClip Source Settings data gathered from imGetPrefs8 (setup dialog info).

imImportImageRec

Selector: imImportImage

Describes the frame to be returned.

typedef struct {
csSDK_int32 onscreen;
csSDK_int32 dstWidth;
csSDK_int32 dstHeight;
csSDK_int32 dstOriginX;
csSDK_int32 dstOriginY;
csSDK_int32 srcWidth;
csSDK_int32 srcHeight;
csSDK_int32 srcOriginX;
csSDK_int32 srcOriginY;
csSDK_int32 unused2;
csSDK_int32 unused3;
csSDK_int32 rowbytes;
char *pix;
csSDK_int32 pixsize;
PrPixelFormat pixformat;
csSDK_int32 flags;
prFieldType fieldType;
csSDK_int32 scale;
csSDK_int32 sampleSize;
csSDK_int32 in;
csSDK_int32 out;
csSDK_int32 pos;
void *privatedata;
void *prefs;
prRect alphaBounds;
csSDK_int32 applyTransform;
float transform[3][3];
prRect destClipRect;
} imImportImageRec;

Bounds Info (for imImportImageRec)

MemberDescription
dstWidthWidth of the destination rectangle (in pixels).
dstHeightHeight of the destination rectangle (in pixels).
dstOriginXOrigin X point (0 indicates the frame is drawn offscreen).
dstOriginYOrigin Y point (0 indicates the frame is drawn offscreen).
srcWidthThe same number returned as dstWidth.
srcHeightThe same number returned as dstHeight.
srcOriginXThe same number returned as dstOriginX.
srcOriginYThe same number returned as dstOriginY.

Frame Info

MemberDescription
rowbytesThe number of bytes in a single row of pixels.
pixPointer to a buffer into which the importer should draw. Allocated based on information from the imGetInfo8.
pixsizeThe number of pixels. rowbytes * height.
pixformatThe pixel format Premiere requests.
flagsimDraftMode - Draw quickly if possible, using a faster and possibly less accurate algorithm.
This may be passed when playing from the timeline.
imSamplesAreFields - Most importers will ignore as Premiere already scales in/out/scale to account for fields, but if you need to know that this has occurred (because maybe you measure something in ‘frames’), check this flag.
Also, may we suggest considering measuring in seconds instead of frames?
fieldTypeIf the importer can swap fields, it should render the frame with the given field dominance: either imFieldsUpperFirst or imFieldsLowerFirst.
scaleThe frame rate of the video, represented as scale over sampleSize.
sampleSize
inIn point, based on the timebase defined by scale over sampleSize.
outOut point, based on the timebase defined by scale over sampleSize.
posImport position, based on the above timebase.
API bug: Synthetic and custom importers will always receive zero.
Thus, adjusting the in point on the timeline will not offset the in point.
privatedataInstance data gathered during imGetInfo or imGetPrefs.
prefsClip Source Settings data gathered during imGetPrefs (setup dialog info).
alphaBoundsThis is the rect outside of which the alpha is always 0. Simply do not alter this field if the alpha bounds match the destination bounds.
If set, the alpha bounds must be contained by the destination bounds. This is only currently used when a plugin calls ppixGetAlphaBounds, and not currently used by any native plugins.
applyTransformNew in After Effects CS3. Not currently provided by Premiere.
If non-zero, the host is requesting that the importer apply the transform specified in transform and destClipRect before returning the resulting image in pix.
transformNew in After Effects CS3. Not currently provided by Premiere. The source to destination transform matrix.
destClipRectNew in After Effects CS3. Not currently provided by Premiere. Destination rect inside the bounds of the pix buffer.

imImportInfoRec

Selector: imInit

Describes the importer’s capabilities to Premiere.

typedef struct {
csSDK_uint32 importerType;
csSDK_int32 canOpen;
csSDK_int32 canSave;
csSDK_int32 canDelete;
csSDK_int32 canResize;
csSDK_int32 canDoSubsize;
csSDK_int32 canDoContinuousTime;
csSDK_int32 noFile;
csSDK_int32 addToMenu;
csSDK_int32 hasSetup;
csSDK_int32 dontCache;
csSDK_int32 setupOnDblClk;
csSDK_int32 keepLoaded;
csSDK_int32 priority;
csSDK_int32 canAsync;
csSDK_int32 canCreate;
csSDK_int32 canCalcSizes;
csSDK_int32 canTrim;
csSDK_int32 avoidAudioConform;
prUTF16Char *acceleratorFileExt;
csSDK_int32 canCopy;
csSDK_int32 canSupplyMetadataClipName;
csSDK_int32 private;
csSDK_int32 canProvidePeakAudio;
csSDK_int32 canProvideFileList;
csSDK_int32 canProvideClosedCaptions;
prPluginID fileInfoVersion;
} imImportInfoRec;

Screen Info

MemberDescription
noFileIf set, this is a synthetic importer. The file reference will be zero.
addToMenuIf set to imMenuNew, the importer will appear in the File > New menu.
canDoContinuousTimeIf set, the importer can render frames at arbitrary times and there is no set timecode.
A color matte generator or a titler would set this flag.
canCreateIf set, Premiere will treat this synthetic importer as if it creates files on disk to be referenced for frames and audio.
See Additional Details for more information on custom importers.

File Handling Flags

MemberDescription
canOpenIf set, the importer handles open and close operations.
Set if the plugin needs to be called to handle imOpenFile, imQuietFile, and imCloseFile.
canSaveIf set, the importer handles File > Save and File > Save As after a clip has been captured and must handle the imSaveFile selector.
canDeleteIf set, the importer can delete its own files.
The plugin must handle the imDeleteFile selector.
canCalcSizesIf set, the importer can calculate the disk space used by a clip during imCalcSize.
An importer should support this call if it uses a tree of files represented as one top-level file to Premiere.
canTrimIf set, the importer can trim files during imTrimFile.
canCopySet this to true if the importer supports copying clips in the Project Manager.

Setup Flags

MemberDescription
hasSetupIf set, the importer has a setup dialog. The dialog should be presented in response to imGetPrefs
setupOnDblClkIf set, the setup dialog should be opened whenever the user double clicks on a file imported by the plugin the timeline or the project bin.

Memory Handling Flags

MemberDescription
dontCacheUnused.
keepLoadedIf set, the importer plugin should never be unloaded.
Don’t set this flag unless it’s absolutely necessary (it usually isn’t).

Other

MemberDescription
priorityDetermines priority levels for importers that handle the same filetype.
Importers with higher numbers will override importers with lower numbers.
For overriding importers that ship with Premiere, use a value of 100 or greater.
Higher-priority importers can defer files to lower-priority importers by returning imBadFile during imOpenFile8 or imGetInfo8.
importTypeType identifier for the import module assigned based on the plugin’s IMPT resource.
Do not modify this field.
canProvideClosedCaptionsNew in Premiere Pro CC. Set this to true if the importer supports media with embedded closed captioning.
avoidAudioConformSet this to true if the importer supports fast audio retrieval and does not need the audio clips it imports to be conformed.
canProvidePeakAudioNew in Premiere Pro CS5.5. Set this to true if your non-synthetic importer wants to provide peak audio data using imGetPeakAudio.
acceleratorFileExtFill this prUTF16Char array of size 256 with the file extensions of accelerator files that the importer creates and uses.
canSupplyMetadataClipNameAllows file based importer to set clip name from metadata.
Set this in imFileInfoRec8.streamName.
canProvideFileListNew in CS6. Set this to true if the importer will provide a list of all files for a copy operation in response to imQueryInputFileList.
fileInfoVersionNew in CC 2014. This is used by an optimization in an internal importer. Do not use.

Unused (in imImportInfoRec)

MemberDescription
canResize
canDoSubsize
canAsync

imIndFormatRec

Selector: imGetIndFormat

Describes the format(s) supported by the importer. Synthetic files can only have one format.

typedef struct {
csSDK_int32 filetype;
csSDK_int32 flags;
csSDK_int32 canWriteTimecode;
char FormatName[256];
char FormatShortName[32];
char PlatformExtension[256];
prBool hasAlternateTypes;
csSDK_int32 alternateTypes[kMaxAlternateTypes];
csSDK_int32 canWriteMetaData;
} imIndFormatRec;
MemberDescription
filetypeUnique four character code (fourcc) of the file.
flagsLegacy mechanism for describing the importer capabilities.
Though the flags will still be honored for backward compatability, current and future importers should not use these flags.
See table below for details.
canWriteTimecodeIf set, timecode can be written for this filetype.
FormatName[256]The descriptive importer name.
FormatShortName[256]The short name for the plugin, appears in the format menu.
PlatformExtension[256]List of all the file extensions supported by this importer.
If there’s more than one, separate with null characters.
hasAlternateTypesUnused
alternateTypes[kMaxAlternateTypes]Unused
canWriteMetaDataNew in 6.0. If set, imSetMetaData is supported for the filetype

The flags listed below are only for legacy plugins and should not be used.

FlagUsage
xfIsMovieUnused
xfCanReplaceUnused
xfCanOpenUnused: Use imImportInfoRec.canOpen instead.
xfCanImportUnused: The PiPL resource describes the file as an importer.
xfIsStillIndicates that the importer handles still images.
xfIsSoundUnused: Use imFileInfoRec.hasAudio instead.
xfCanWriteTimecodeIf set, the importer can respond to imGetTimecode and imSetTimecode.
Obsolete: use imIndFormatRec.canWriteTimecode instead.
xfCanWriteMetaDataWrites (and reads) metadata, specific to the importer’s four character code filetype.
Obsolete: use imIndFormatRec.canWriteMetaData instead.
xfCantBatchProcessUnused

imIndPixelFormatRec

Selector: imGetIndPixelFormat

Describes the pixel format(s) supported by the importer.

typedef struct {
void *privatedata;
PrPixelFormat outPixelFormat;
const void* prefs;
} imIndPixelFormatRec;
MemberDescription
privatedataInstance data from imGetInfo8 or imGetPrefs8.
outPixelFormatOne of the pixel formats supported by the importer
prefsNew in CC. Clip Source Settings data gathered during imGetPrefs8 (setup dialog).

imInitiateAsyncClosedCaptionScanRec

Selector: imInitiateAsyncClosedCaptionScan

Both imGetNextClosedCaption and imCompleteAsyncClosedCaptionScan may be called from a different thread from which imInitiateAsyncClosedCaptionScan was originally called.

To help facilitate this, outAsyncCaptionScanPrivateData can be allocated by the importer to be used for the upcoming closed caption scan calls, which should then be deallocated in imCompleteAsyncClosedCaptionScan.

The estimated duration of all the closed captions can also be filled in.

This is useful for certain cases where the embedded captions contain many frames of empty data.

typedef struct {
void* privatedata;
void* prefs;
void* outAsyncCaptionScanPrivateData;
csSDK_int64 outScale;
csSDK_int64 outSampleSize;
csSDK_int64 outEstimatedDuration;
} imInitiateAsyncClosedCaptionScanRec;
MemberDescription
privatedataInstance data gathered during imGetInfo8 or imGetPrefs8.
prefsClip Source Settings data gathered during imGetPrefs8 (setup dialog).
outAsyncCaptionScanPrivateDataThe importer can allocate instance data for this closed caption scan, and pass it back here.
outScaleNew in CC October 2013. The frame rate of the video clip, represented as scale over sampleSize.
outSampleSize
outEstimatedDurationNew in CC October 2013. The estimated duration of all the captions, in the above timescale

imMetaDataRec

Selector: imGetMetaData and imSetMetaData

Describes the metadata specific to a given four character code.

typedef struct {
void *privatedata;
void *prefs;
csSDK_int32 fourCC;
csSDK_uint32 buffersize;
char *buffer;
} imMetaDataRec;
MemberDescription
privatedataInstance data gathered during imGetInfo8 or imGetPrefs8.
prefsClip Source Settings data gathered during imGetPrefs8 (setup dialog).
fourccFourcc code of the metadata chunk.
buffersizeSize of the data in buffer.
bufferThe metadata.

imPeakAudioRec

Selector: imGetPeakAudio

Describes the peak values of the audio at the specified position.

typedef struct {
void *inPrivateData;
void *inPrefs;
PrAudioSample inPosition;
float inSampleRate;
csSDK_int32 inNumSampleFrames;
float **outMaxima;
float **outMinima;
} imPeakAudioRec;
MemberDescription
inPrivateDataInstance data gathered during imGetInfo8 or imGetPrefs8.
inPrefsInstance data gathered during imGetPrefs8 (setup dialog).
inPositionThe starting audio sample frame of the peak data.
inSampleRateThe sample rate at which to generate the peak data.
inNumSampleFramesThe number of sample frames in each buffer.
outMaximaAn array of arrays to be filled with the maximum sample values.
outMinimaAn array of arrays to be filled with the minimum sample values.

imPreferredFrameSizeRec

Selector: imGetPreferredFrameSize

Describes a frame size preferred by the importer.

typedef struct {
void *inPrivateData;
void *inPrefs;
PrPixelFormat inPixelFormat;
csSDK_int32 inIndex;
csSDK_int32 outWidth;
csSDK_int32 outHeight;
} imPreferredFrameSizeRec;
MemberDescription
inPrivateDataInstance data gathered during imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings data gathered during imGetPrefs8 (setup dialog).
inPixelFormatThe pixel format for this preferred frame size.
inIndexThe index of this preferred frame size.
outWidthThe dimensions of this preferred frame size.
outHeight

imQueryContentStateRec

Selector: imQueryContentState

Fill in the outContentStateID, which should be a GUID calculated based on the content state of the clip at inSourcePath.

If the state hasn’t changed since the last call, the GUID returned should be the same.

typedef struct {
const prUTF16Char* inSourcePath;
prPluginID outContentStateID;
} imQueryContentStateRec;

imQueryDestinationPathRec

Selector: imQueryDestinationPath

Fill in the desired outActualDestinationPath, based on the inSourcePath and inSuggestedDestinationPath.

typedef struct {
void *inPrivateData;
void *inPrefs;
const prUTF16Char *inSourcePath;
const prUTF16Char *inSuggestedDestinationPath;
prUTF16Char *outActualDestinationPath;
} imQueryDestinationPathRec;
MemberDescription
inPrivateDataInstance data gathered during imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings data gathered during imGetPrefs8 (setup dialog).
inSourcePathThe path of the source file to be trimmed
inSuggestedDestinationPathThe path suggested by Premiere where the destination file should be created.
outActualDestinationPathThe path where the importer wants the destination file to be created.

imQueryInputFileListRec

Selector: imQueryInputFileList

Fill in the outContentStateID, which should be a GUID calculated based on the content state of the clip at inSourcePath.

If the state hasn’t changed since the last call, the GUID returned should be the same.

typedef struct {
void* inPrivateData;
void* inPrefs;
PrSDKString inBasePath;
csSDK_int32 outNumFilePaths;
PrSDKString *outFilePaths;
} imQueryInputFileListRec;
MemberDescription
inPrivateDataInstance data gathered from imGetInfo8 or imGetPrefs8.
inPrefsClip Source Settings data gathered from imGetPrefs8 (setup dialog info).
inBasePathPath of main file that was passed earlier in imOpenFile.
outNumFilePathsThe first time imQueryInputFileList is sent, fill in the number of files that the media uses.
outFilePathsThe second time imQueryInputFileList is sent, this will be preallocated as an array of NULL strings.
Use the String Suite to fill the array with PrSDKStrings with the actual paths.

imQueryStreamLabelRec

Selector: imQueryStreamLabel

New in CS6. Based on the stream ID passed in, allocate and pass back a label for the stream.

For stereoscopic importers, use the predefined labels in PrSDKStreamLabel.h.

typedef struct {
void *inPrivateData;
csSDK_int32 *inPrefs;
csSDK_int32 inStreamIdx;
PrSDKString* outStreamLabel;
} imQueryStreamLabelRec;
MemberDescription
privatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
prefsClip Source Settings data gathered from imGetPrefs8 (setup dialog info).
inStreamIdxThe ID of the stream that needs to be labeled.
outStreamLabelThe stream label, allocated using the String Suite.

imSaveFileRec8

Selector: imSaveFile8

Describes the file to be saved.

typedef struct {
void *privatedata;
csSDK_int32 *prefs;
const prUTF16Char* sourcePath;
const prUTF16Char* destPath;
char move;
importProgressFunc progressCallback;
void *progressCallbackID;
} imSaveFileRec8;
MemberDescription
privatedataInstance data gathered from imGetInfo8 or imGetPrefs8.
prefsClip Source Settings data gathered from imGetPrefs8 (setup dialog info).
sourcePathFull path of the file to be saved.
destPathFull path the file should be saved to.
moveIf non-zero, this is a move operation and the original file (the sourcePath) can be deleted after copying is complete.
progressCallbackFunction to call repeatedly to provide progress and to check for cancel by user. May be a NULL pointer, so make sure the function pointer is valid before calling.
progressCallbackIDPass to progressCallback.

imSourceVideoRec

Selector: imGetSourceVideo, aiInitiateAsyncRead, aiGetFrame

Describes the requested frame, to be passed back in outFrame.

typedef struct {
void *inPrivateData;
csSDK_int32 currentStreamIdx;
PrTime inFrameTime;
imFrameFormat *inFrameFormats;
csSDK_int32 inNumFrameFormats;
bool removePulldown;
PPixHand *outFrame;
void *prefs;
csSDK_int32 prefsSize;
PrSDKString selectedColorProfileName;
PrRenderQuality inQuality;
imRenderContext inRenderContext;
PrSDKColorSpaceID opaqueColorSpaceIdentifier;
} imSourceVideoRec;
MemberDescription
inPrivateDataInstance data gathered during imGetInfo8 or imGetPrefs8.
currentStreamIdxNew in CS6. If the clip has multiple streams (for stereoscopic video or otherwise), this ID differentiates between them.
inFrameTimeTime of frame requested.
inFrameFormatsAn array of requested frame formats, in order of preference. If NULL, then any format is acceptable.
inNumFrameFormatsThe number of frame formats in the inFrameFormats.
removePulldownIf true, pulldown should be removed if the pixel format supports it.
outFrameAllocate memory to hold the requested frame, and pass it back here.
prefsNew in Premiere Pro 4.1. prefs data from imGetPrefs8
prefsSizeNew in Premiere Pro 4.1. Size of prefs data.
selectedColorProfileNameNew in Premiere Pro CS5.5. A string that specifies the color profile of the imported frame.
inQualityNew in Premiere Pro CC 2014.
inQualityNew in Premiere Pro CC 2014.
inQualityNew in Premiere Pro CC 2014.

imSubTypeDescriptionRec

Selector: imGetSubTypeNames

Added in Premiere Pro CS3. Describes the codec name associated with a given fourcc.

typedef struct {
csSDK_int32 subType;
prUTF16Char subTypeName[256];
} imSubTypeDescriptionRec;

imTimeInfoRec8

Selector: imGetTimeInfo8 and imSetTimeInfo8

Describes the timecode and timecode rate associated with a clip.

typedef struct {
void *privatedata;
void *prefs;
char orgtime[18];
csSDK_int32 orgScale;
csSDK_int32 orgSampleSize;
char alttime[18];
csSDK_int32 altScale;
csSDK_int32 altSampleSize;
char orgreel[40];
char altreel[40];
char logcomment[256];
csSDK_int32 dataType;
} imTimeInfoRec;
MemberDescription
privatedataInstance data gathered during imGetInfo8 or imGetPrefs8.
prefsClip Source Settings data gathered during imGetPrefs8 (setup dialog).
orgtime[18]The original time in hours;minutes;seconds;frames, as captured from the source reel.
The use of semi-colons indicates (to Premiere) drop-frame timecode, e.g. “00;00;00;00”.
Use colons for non-drop-frame timecode, e.g. “00:00:00:00”.
orgScaleTimebase of the timecode in orgtime, represented as scale over sampleSize.
orgSampleSize
alttime[18]An alternative timecode (may differ from the source timecode), formatted as described above.
altScaleTimebase of the timecode in alttime.
altSampleSize
orgreel[40]Original reel name.
altreel[40]Alternate reel name.
logcomment[256]Comment string.
dataTypeCurrently always set to 1, denoting SMPTE timecode. More values may be added in the future.

imTrimFileRec8

Selector: imTrimFile8

Describes how to trim a clip, based on information returned by the importer during imCheckTrim8.

Also provides a callback to update the progress bar and check if the user has cancelled.

typedef struct {
void *privatedata;
void *prefs;
csSDK_int32 trimIn;
csSDK_int32 duration;
csSDK_int32 keepAudio;
csSDK_int32 keepVideo;
const prUTF16Char *destFilePath;
csSDK_int32 scale;
csSDK_int32 sampleSize;
importProgressFunc progressCallback;
void *progressCallbackID;
} imTrimFileRec8;
MemberDescription
privatedataInstance data gathered during imGetInfo8 or imGetPrefs8.
prefsClip settings data gathered during imGetPrefs8 (setup dialog).
trimInIn point of the trimmed clip, in the timebase specified by scale and sampleSize.
durationDuration of the trimmed clip. If 0, then the request is to leave the clip untrimmed, and at the current duration
keepAudioIf non-zero, the request is to keep the audio in the trimmed result.
keepVideoIf non-zero, the request is to keep the video in the trimmed result.
destFilePathThe unicode path and name of the file to create.
scaleThe frame rate of the video, represented as scale over sampleSize.
sampleSize
progressCallbackimportProgressFunc callback to call repeatedly to provide progress and to check for cancel by user.
May be a NULL pointer, so make sure the function pointer is valid before calling.
progressCallbackIDPass to progressCallback.

imIndColorSpaceRec

Selector: imGetIndColorSpace

Describes the colorspace of the media.

typedef ColorSpaceRec imIndColorSpaceRec;
typedef struct {
void *privatedata;
PrSDKColorSpaceType outColorSpaceType;
RawColorProfileRec ioProfileRec;
prSEIColorCodesRec outSEICodesRec;
} ColorSpaceRec;
MemberDescription
privatedataPrivate.
outColorSpaceTypeOne of the following:
- kPrSDKColorSpaceType_Undefined
- kPrSDKColorSpaceType_ICC
- kPrSDKColorSpaceType_LUT // DO NOT USE after 14.x.
- kPrSDKColorSpaceType_SEITags
- kPrSDKColorSpaceType_MXFTags // DO NOT USE, Not supported.
- kPrSDKColorSpaceType_Predefined
ioProfileRecA structure describing the color profile.
csSDK_int32  ioBufferSize;
void* inDestinationBuffer;
PrSDKString outName;
outSEICodesRecA structure describing the color space using codes; used with H.265, HEVC, AVC and ProRes media.
csSDK_int32  colorPrimariesCode;
csSDK_int32 transferCharacteristicCode;
csSDK_int32 matrixEquationsCode;
csSDK_int32 bitDepth;
prBool isFullRange;
prBool isRGB;

RawColorSpaceRec

Selector: imGetIndColorSpace

Describes the colorspace in use with the media.

typedef struct
{
PrSDKColorSpaceType colorSpaceType;
RawColorProfileRec profileRec; // for ICC and Predefined Color Spaces
prSEIColorCodesRec seiCodesRec; // H-265 codes for HEVC, AVC, ProRes
} RawColorSpaceRec;
MemberDescription
colorSpaceTypeOne of the following:
- kPrSDKColorSpaceType_Undefined
- kPrSDKColorSpaceType_ICC
- kPrSDKColorSpaceType_LUT // DO NOT USE after 14.x.
- kPrSDKColorSpaceType_SEITags
- kPrSDKColorSpaceType_MXFTags // DO NOT USE, Not supported.
- kPrSDKColorSpaceType_Predefined
profileRecA structure describing the color space.
csSDK_int32  ioBufferSize;
void* inDestinationBuffer;
PrSDKString outName;
seiCodesRecA structure describing the color space; used with H.265, HEVC, AVC and ProRes media.
csSDK_int32  colorPrimariesCode;
csSDK_int32 transferCharacteristicCode;
csSDK_int32 matrixEquationsCode;
csSDK_int32 bitDepth;
prBool isFullRange;
prBool isRGB;

Colorspace can be described via multiple way, type depends on colorSpaceType.

If type is kPrSDKColorSpaceType_Predefined - Color space is specified via predefined strings from PrSDKColorSpaces.h.

If type is kPrSDKColorSpaceType_ICC - Color space is specified via ICC profile in profileRec.

If type is kPrSDKColorSpaceType_SEITags - Color space is specified via enums codes for color primaries (C), transfer characteristic (T), matrix equation (M). Supported C-T-M enums are defined in PrSDKColorSEICodes.h.


EmbeddedLUTRec

Selector: imGetIndColorSpace

Describes the LUT embedded with in the media.

typedef struct
{
void* privateData;
RawColorProfileRec lutBlobRec;
RawColorSpaceRec lutInColorSpaceRec;
RawColorSpaceRec lutOutColorSpaceRec;
} EmbeddedLUTRec;
MemberDescription
privatedataPrivate.
lutBlobRecDescribes the embedded LUT.
lutInColorSpaceRecDescribes the LUT input colorspace rec.
lutOutColorSpaceRecDescribes the LUT output colorspace rec.

imRenderContext

Selector: imGetSourceVideo (member of imSourceVideoRec)

Describes the context of the render; why it’s occurring, and what rate and ratio is in use.

typedef struct
{
imRenderIntent inIntent;
double inPlaybackRatio;
double inPlaybackRate;
} imRenderContext;
MemberDescription
inIntentThe intent of the render being requested.
- imRenderIntent_Unknown (-1)
- imRenderIntent_Export 0
- imRenderIntent_Stopped // DO NOT USE after 14.x.
- imRenderIntent_Scrubbing
- imRenderIntent_Preroll
- imRenderIntent_Playing
- imRenderIntent_SpeculativePrefetch
- imRenderIntent_Thumbnail // DO NOT USE after 14.x.
- imRenderIntent_Analysis
- imRenderIntent_ExportPreview
- imRenderIntent_ExportProxies
inPlaybackRatio1.0 means full framerate, lower values indicate deteriorating playback.
inPlaybackRate1.0 means 1x forward, -1.0 means 1x backward.