跳转到内容

选择器描述

选择器描述

fsInitSpec

响应此选择器是可选的。当滤镜应用于剪辑并且插件首次被调用时,会发送此选择器。此调用可用于使用默认值初始化插件参数,以实现初始的“静默设置”,在这种情况下,当滤镜应用于剪辑时,fsSetup 会被跳过,以避免弹出可能在 fsSetup 中需要的模态对话框。

分配并传递回一个包含参数值的结构的句柄到 specsHandle 中。滤镜会获得总持续时间(以样本为单位)以及源缓冲区中第一个样本的编号。


fsHasSetupDialog

Premiere Pro CS3 新增。可选。通过返回 fsHasNoSetupDialogfsNoErr 来指定滤镜是否具有设置对话框。


fsSetup

可选。当滤镜应用时发送,如果 fsInitSpec 没有分配有效的 specsHandle。当用户点击效果控制面板中的设置链接时也会发送。滤镜可以选择显示一个(平台相关的)模态对话框以从用户那里获取新的参数值。首先,检查 VideoHandle.specsHandle。如果为 NULL,则表示插件是首次被调用。

将参数初始化为其默认值。如果非 NULL,则从 specsHandle 加载参数值。现在使用参数值显示模态设置对话框以获取新值。返回一个包含参数值的结构的句柄到 specsHandle 中。

为了在插件调用之间正确存储参数值,请在 PiPL 的 ANIM 属性中描述 specsHandle 数据的结构。Premiere 会在发送 fsExecute 之前适当地插值可动画的参数值。

滤镜会获得总持续时间(以样本为单位)以及源缓冲区中第一个样本的编号。

fsSetup 期间,传递给 VideoRecord.source 的帧几乎总是 320x240。例外情况是,如果插件在效果首次应用时接收到 fsSetup 选择器,那么它将接收到一个全高度的帧,宽度调整为使帧具有方形像素宽高比。例如,在 1440x1080 HDV 序列中应用的滤镜将接收到完整的 1920x1080 缓冲区。该帧是滤镜在当前时间指示器上应用的图层。如果 CTI 不在应用滤镜的剪辑上,则该帧为透明黑色。

如果滤镜具有设置对话框,则应使用 VFilterCallbackProcPtr 来获取预览的源帧。getPreviewFrameEx 可用于获取渲染的帧,尽管如果使用此调用,视频滤镜应准备好以可重入方式调用 fsExecute


fsExecute

这实际上是视频滤镜唯一必需的选择器,渲染在此处进行。获取 VideoHandle.source 中的输入帧,渲染效果并将帧返回到 Premiere 的 VideoHandle.destination 中。specsHandle 包含您的参数设置(如果可动画化,则已经插值)。您可以将任何额外的非参数数据的句柄存储在 VideoHandle.InstanceData 中。如果这样做,请在响应 fsDisposeData 时释放该句柄,否则您的插件将泄漏内存。

您的滤镜接收到的视频可能是隔行扫描的,场顺序由项目设置决定。如果是隔行扫描的,您的插件将每帧视频被调用两次,每个 PPix 将是帧高度的一半。


fsDisposeData

可选。在项目关闭时调用。释放 fsExecute 期间创建的任何实例数据。请参阅 VideoHandle->InstanceData


fsCanHandlePAR

可选。通过返回以下标志的组合来指示您的滤镜希望如何处理像素宽高比。

只有在满足几个条件时才会发送此选择器。

应用滤镜的剪辑的像素宽高比必须已知,并且不能是正方形的(1.0)。

剪辑不能是纯色。

PiPL 位 anyPixelAspectRatiounityPixelAspectRatio 不能设置。

标志描述
prEffectCanHandlePARPremiere 不应为补偿 PAR 而对源图像进行任何调整
prEffectUnityPARSetupPremiere 应在 fsSetup 期间将源图像渲染为方形像素
prEffectUnityPARExecutePremiere 应在 fsExecute 期间将源图像渲染为方形像素

fsGetPixelFormatsSupported

可选。

获取支持的像素格式。

迭代调用,直到所有格式都已给出。

(*theData)->pixelFormatSupported 设置为支持的像素格式,并返回 fsNoErr

当所有格式都已描述时,返回 fsBadFormatIndex

请参阅场感知视频滤镜示例以获取示例。


fsCacheOnLoad

可选。返回 fsDoNotCacheOnLoad 以禁用此滤镜的插件缓存。