Skip to content

Structure Descriptions

Structure Descriptions

PrGPUFilterInfo

This structure contains some basic info about a GPU filter. It provides access to various suites, and access to private data where the instance can allocate memory and store data which will be passed to subsequent functions.

typedef struct {
csSDK_uint32 outInterfaceVersion;
PrSDKString outMatchName;
} PrGPUFilterInfo;
MemberDescription
outInterfaceVersionSet to the GPU API version corresponding to the version defined in the SDK you are using.
outMatchNameoutMatchName must be equal to a registered software filter, if NULL will default to the module’s PiPL.

PrGPUFilterInstance

This structure contains some basic info about a GPU filter. It provides access to various suites, and access to private data where the instance can allocate memory and store data which will be passed to subsequent functions.

typedef struct {
piSuitesPtr piSuites;
csSDK_uint32 inDeviceIndex;
PrTimelineID inTimelineID;
csSDK_int32 inNodeID;
void* ioPrivatePluginData;
prBool outIsRealtime;
} PrGPUFilterInstance;
MemberDescription
piSuitesStandard suites.
inDeviceIndexFor use with PrSDKGPUDeviceSuite.
inTimelineIDFor use with PrSDKVideoSegmentSuite.
inNodeIDFor use with PrSDKVideoSegmentSuite.
ioPrivatePluginDataUsed by a plugin to store instance data, never touched by the host.
outIsRealtimeSpecify if the plugin is likely to play in real-time, used to determine whether the segment is red, yellow, or unmarked in the timeline.

PrGPUFilterRenderParams

This structure describes the current render request.

typedef struct {
PrTime inClipTime;
PrTime inSequenceTime;
// Render properties
PrRenderQuality inQuality;
float inDownsampleFactorX;
float inDownsampleFactorY;
// Frame properties
csSDK_uint32 inRenderWidth;
csSDK_uint32 inRenderHeight;
csSDK_uint32 inRenderPARNum;
csSDK_uint32 inRenderPARDen;
prFieldType inRenderFieldType;
PrTime inRenderTicksPerFrame;
pmFieldDisplay inRenderField;
} PrGPUFilterRenderParams;
MemberDescription
inClipTimeThe time of the current render, relative to clip start
inSequenceTimeThe time of the current render, relative to sequence start
inQualityRender quality; one of the PrRenderQuality enum values
inDownsampleFactorXHorizontal downsample factor
inDownsampleFactorYVertical downsample factor
inRenderWidthVideo resolution
inRenderHeight
inRenderPARNumVideo pixel aspect ratio, described as a fractional number with separate values for numerator and denominator.
inRenderPARDen
inRenderFieldTypeRender field type
inRenderTicksPerFrameVideo frame rate
inRenderFieldGPU rendering is always done on full-height progressive frames unless PrGPUFilterFrameDependency.outNeedsFieldSeparation is false.
inRenderField indicates which field is being rendered.

PrGPUFilterFrameDependency

This structure describes any dependencies for a rendered frame.

typedef struct {
PrGPUFilterFrameDependencyType outDependencyType;
// Dependence on other frame times
csSDK_int32 outTrackID;
PrTime outSequenceTime;
// Dependence on precomputation phase
PrPixelFormat outPrecomputePixelFormat;
csSDK_uint32 outPrecomputeFrameWidth;
csSDK_uint32 outPrecomputeFrameHeight;
csSDK_uint32 outPrecomputeFramePARNumerator;
csSDK_uint32 outPrecomputeFramePARDenominator;
prFieldType outPrecomputeFrameFieldType;
csSDK_size_t outPrecomputeCustomDataSize;
prBool outNeedsFieldSeparation;
} PrGPUFilterFrameDependency;
MemberDescription
outDependencyTypeThe dependency type. One of:
- PrGPUDependency_InputFrame
- PrGPUDependency_Precompute
- PrGPUDependency_FieldSeparation
outTrackIDSpecify which track is a dependency. Set to 0 for the current track
outSequenceTimeSet the sequence time which is a dependency.
outPrecomputePixelFormatDependence on precomputation phase
outPrecomputeFrameWidth
outPrecomputeFrameHeight
outPrecomputeFramePARNumerator
outPrecomputeFramePARDenominator
outPrecomputeFrameFieldType
outPrecomputeCustomDataSizeOnly needed if outPrecomputePixelFormat is custom
outNeedsFieldSeparationIndicates the plugin may operate on both fields simultaneously (eg non-spatial and non-time varying)