VideoRecord¶
A video filter is passed a handle to a VideoRecord with almost every selector.
typedef struct {
PrMemoryHandle specsHandle;
PPixHand source;
PPixHand destination;
csSDK_int32 part;
csSDK_int32 total;
char previewing;
void* privateData;
VFilterCallBackProcPtr callBack;
BottleRec* bottleNecks;
short version;
short sizeFlags;
csSDK_int32 flags;
TDB_TimeRecord* tdb;
PrMemoryHandle instanceData;
piSuitesPtr piSuites;
PrTimelineID timelineData;
char altName[MAX_FXALIAS];
PrPixelFormat pixelFormatSupported;
csSDK_int32 pixelFormatIndex;
csSDK_uint32 instanceID;
TDB_TimeRecord tdbTimelineLocation;
csSDK_int32 sessionPluginID;
} VideoRecord, **VideoHandle;
Member |
Description |
---|---|
|
Instance settings, persistent across Premiere sessions. Create this handle during Populated by Premiere if the filter's parameters can be manipulated in the Effect Controls Panel. Use Premiere's memory allocation callbacks to allocate memory for the |
|
|
|
Store the output frame here during |
|
How far into the effect you are.
|
|
Total length of the video filter. Divide part by total to calculate the percentage of the time-variant filter for a given This value doesn't necessarily correspond to frames or fields. |
|
Unsupported |
|
Data private to Premiere. Pass to the frame-retrieval callback when requesting a frame. |
|
Pointer to |
|
Pointer to Premiere's bottleRec functions. |
|
Version of this structure (
|
|
Field-rendering information. |
|
If doing a lower-quality render, Premiere will pass in The filter can then optionally render a faster, lower-quality image for previewing. |
|
Pointer to a time database record describing the sequence timebase. |
|
Handle to private instance data that persists across invocations. Allocate the memory for this during Do not use this field during fsSetup. |
|
Pointer to callback piSuites. |
|
Only available during This opaque handle to the timeline database is required by This handle is useful in order to have a preview in a modal setup dialog during |
|
Unused. |
|
Only valid during Return pixel type supported. |
|
Only valid during Index of fourCC of pixel type supported. |
|
The runtime instance ID uniquely identifies filters during a session. This is the same ID that is passed to players in |
|
A time database record describing the location of the filter in sequence. Only valid during |
|
This ID should be used in the File Registration Suite for registering external files (such as textures, logos, etc) that are used by a plugin instance but do not appear as footage in the Project Panel. Registered files will be taken into account when trimming or copying a project using the Project Manager. |
VFilterCallBackProcPtr¶
Pointer to a callback for retrieving frames (or fields, for interlaced video) from the source clip.
Do not expect real-time performance from this callback.
typedef short (CALLBACK *VFilterCallBackProcPtr)(
csSDK_int32 frame;
PPixHand thePort;
RECT* theBox;
Handle privateData);
Member |
Description |
---|---|
|
Frame requested. The frame value passed in should be frame * samplesize. The callback will always return the current field (upper or lower) during field rendering. |
|
|
|
Bounds of the frame you want Premiere to retrieve. |
|
Handle provided by Premiere in |
sizeFlags¶
For sizeFlags, the following bit flags are of interest:
Flag | Description |
---|---|
gvFieldsEven |
The video filter should render upper-field dominance |
gvFieldsOdd |
The video filter should render lower-field dominance |
gvFieldsFirst |
The video filter is currently rendering the dominant field |