跳转到内容

函数块中的新成员

函数块中的新成员

在其主入口函数中,每个 AEIO 插件必须填充一个 AEIO_FunctionBlock,提供 After Effects 将调用的函数指针,以处理不同的文件相关任务。

下表显示了输入需要哪些函数,输出需要哪些函数。对于最基本的实现,请从右侧标记为“必需”的函数开始。通常可以通过让 After Effects 为您处理调用来实现“最佳情况”行为(通过返回 AEIO_Err_USE_DFLT_CALLBACK)。

对于仅用于视频输入的最基本 AEIO,请实现以下函数:AEIO_InitInSpecFromFileAEIO_InitInSpecInteractive(取决于源是文件还是交互生成的),AEIO_DisposeInSpecAEIO_GetInSpecInfoAEIO_DrawSparseFrameAEIO_CloseSourceFilesAEIO_InqNextFrameTime(使用 AEIO_Err_USE_DFLT_CALLBACK 是可以的)。

从 IO 示例开始,最好也保留其他函数的定义,并根据需要进一步填充它们。


AEIO_FunctionBlock4

函数响应输入或输出?必需?
AEIO_InitInSpecFromFile给定文件路径,在提供的 AEIO_InSpecH 中描述其内容。输入是,适用于基于文件的媒体
使用 AEGP_IOInSuite 中的所有适当“set”调用来完成此操作;如果有图像数据,请设置其深度、尺寸和 Alpha 解释。
如果有音频,请描述其声道和采样率。
文件路径是一个以 NULL 结尾的 UTF-16 字符串,带有平台分隔符。
AEIO_InitInSpecFromFile(
AEIO_BasicData *basic_dataP,
const A_UTF16Char *file_pathZ,
AEIO_InSpecH inH);
AEIO_InitInSpecInteractive使用某种形式的用户交互(而不是由 After Effects 提供的文件路径),描述生成的 AEIO_InSpecH 中包含的音频和视频。输入是,适用于交互生成的媒体
AEIO_InitInSpecInteractive(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH);
AEIO_DisposeInSpec释放 AEIO_InSpecH输入
AEIO_DisposeInSpec(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH);
AEIO_FlattenOptions对于给定的 AEIO_InSpecH,返回其选项句柄中包含的数据的扁平化版本。输入
使用 AEGP_GetInSpecOptionsHandle 获取未扁平化的选项句柄。
AEIO_FlattenOptions(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
AEIO_Handle *flat_optionsPH);
AEIO_InflateOptions对于给定的 AEIO_InSpecH,使用 AEGP_SetInSpecOptionsHandle 创建其扁平化选项数据的未扁平化版本。输入
AEIO_InflateOptions(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
AEIO_Handle flat_optionsH);
AEIO_SynchInSpec允许 AEIO_Err_USE_DFLT_CALLBACK。检查 AEIO_InSpecH,(必要时更新其选项),并指示是否进行了更改。输入
AEIO_SynchInSpec(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_Boolean *changed0);
AEIO_GetActiveExtent允许 AEIO_Err_USE_DFLT_CALLBACK。使用给定时间的文件像素的活动范围填充提供的 A_LRect输入
AEIO_GetActiveExtent(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
const A_Time *tr,
A_LRect *extent);
AEIO_GetInSpecInfoAEIO_Verbiage 中提供一些字符串来描述文件,这些字符串将出现在项目面板中。这包括用于描述文件类型和子类型(编解码器)的字符串。输入
AEIO_GetInSpecInfo(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
AEIO_Verbiage *verbiageP);
此函数被频繁调用;每次刷新项目面板时都会调用。尽量减少内存分配。
在 After Effects 附带的 AEIO 中,我们检查有效的 optionsH(使用 AEGP_GetInSpecOptionsHandle);如果找到,我们使用其中的信息。如果没有,我们什么也不做。
这很重要;如果您的 AEIO 处理静态图像,此函数 被调用以处理包含静态图像的文件夹。希望不会有与之关联的 optionsH(除非您正在编写一个非常奇怪的 AEIO)。
AEIO_DrawSparseFrameAEIO_InSpecH 绘制一帧。输入
PF_EffectWorld* 包含要使用的宽度和高度,但如果 required_region0 不是 NULL,请确保考虑到它。
AEIO_DrawSparseFrame(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
AEIO_Quality qual,
const AEIO_RationalScale *rs0,
const A_Time *tr,
const A_Time *duration0,
const A_Rect *required_region0,
PF_EffectWorld *wP,
A_long* originx,
A_long* originy,
AEIO_DrawingFlags *draw_flagsP);
注意:返回的数据应为线性光(1.0),After Effects 将执行任何必要的转换以将素材带入工作色彩空间。
AEIO_GetDimensions允许 AEIO_Err_USE_DFLT_CALLBACK。提供 AEIO_InSpecH 中视频的尺寸(以及必要的缩放因子)。输入
AEIO_GetDimensions(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
const AEIO_RationalScale *rs0,
A_long *width0,
A_long *height0);
AEIO_GetDuration允许 AEIO_Err_USE_DFLT_CALLBACK。提供 AEIO_InSpecH 的持续时间(以秒为单位)。输入
AEIO_GetDuration(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_Time *trP);
AEIO_GetTime允许 AEIO_Err_USE_DFLT_CALLBACK。提供 AEIO_InSpecH 的时间基准。输入
AEIO_GetTime(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_Time *tr);
以下是我们内部用于常见时间基准的值:
- 29.97 fps: scale = 100; value= 2997;
- 59.94 fps: scale = 50; value = 2997;
- 23.976 fps: scale = 125; value = 2997;
- 30 fps: scale = 1; value = 30;
- 25 fps: scale = 1; value = 25;
AEIO_GetSound允许 AEIO_Err_USE_DFLT_CALLBACK。以描述的品质提供 AEIO_InSpecH 中的声音。输入
AEIO_GetSound(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
AEIO_SndQuality quality,
const AEIO_InterruptFuncs *interrupt_funcsP0,
const A_Time *startPT,
const A_Time *durPT,
A_u_long start_sampLu,
A_u_long num_samplesLu,
void *dataPV);
AEIO_SndQuality 可能为:
- AEIO_SndQuality_APPROX,(此品质用于绘制音频波形)
- AEIO_SndQuality_LO,
- AEIO_SndQuality_HI
AEIO_InqNextFrameTime允许 AEIO_Err_USE_DFLT_CALLBACK输入
提供 AEIO_InSpecH 中下一帧的时间(以源素材的时间基准为准)。
AEIO_InqNextFrameTime(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
const A_Time *base_time_tr,
AEIO_TimeDir time_dir,
A_Boolean *found0,
A_Time *key_time_tr0);
AEIO_InitOutputSpec允许 AEIO_Err_USE_DFLT_CALLBACK输出
执行新 AEIO_OutSpecH 所需的任何初始化,并指示是否进行了更改。
AEIO_InitOutputSpec(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_Boolean *user_interacted);
!!! 注意
首次使用您的 AEIO 时,After Effects 会在其首选项中缓存最后已知的良好 optionsH
在测试此函数时,请经常删除您的首选项
AEIO_GetFlatOutputOptionsAEIO_Handle 中描述 AEIO_OutSpecH 的输出选项,以磁盘安全的扁平数据结构(不引用外部内存)。输出
请注意,您的输出选项必须是跨平台的,因此请注意字节顺序问题。
AEIO_GetFlatOutputOptions(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
AEIO_Handle *optionsH);
AEIO_DisposeOutputOptions允许 AEIO_Err_USE_DFLT_CALLBACK。释放传入的输出选项的内存。输出
AEIO_DisposeOutputOptions(
AEIO_BasicData *basic_dataP,
void *optionsPV);
AEIO_UserOptionsDialog显示输出设置对话框(在 After Effects 中选择 TIFF 输出以查看此对话框何时出现)。输出
使用 AEGP_SetInSpecOptionsHandle 将此信息存储在选项句柄中。
AEIO_UserOptionsDialog(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
PF_EffectWorld *sample0,
A_Boolean *interacted0);
AEIO_GetOutputInfo以文本形式描述 AEIO_OutSpecH 中的输出选项。
AEIO_GetOutputInfo(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
AEIO_Verbiage *verbiage);
AEIO_OutputInfoChanged根据当前设置更新 AEIO_OutSpecH(使用各种 Get 函数获取设置)。输出
AEIO_OutputInfoChanged(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH);
AEIO_SetOutputFile允许 AEIO_Err_USE_DFLT_CALLBACK。为 AEIO_OutSpecH 设置输出文件路径。输出
除非你更改了路径,否则返回 AEIO_Err_USE_DEFAULT_CALLBACK
文件路径是一个以 NULL 结尾的 UTF-16 字符串,带有平台分隔符。
AEIO_SetOutputFile(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_UTF16Char *file_pathZ);
AEIO_StartAdding准备将帧添加到输出文件中。输出是,适用于支持多帧的写入格式
这是创建磁盘上的输出文件并将任何头信息写入此类文件的好时机。这也是你第一次根据有效的输出规范值分配像素缓冲区的机会。
AEIO_StartAdding(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_long flags);
AEIO_AddFrame将帧添加到输出文件中。你可以传递一个指向你希望在用户中断渲染时调用的函数的指针。输出是,适用于支持多帧的写入格式
AEIO_AddFrame(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_long frame_index,
A_long frames,
PF_EffectWorld *wP,
const A_LPoint *origin0,
A_Boolean was_compressedB,
AEIO_InterruptFuncs *inter0);
AEIO_EndAdding执行与添加帧相关的任何清理操作。输出是,适用于支持多帧的写入格式
AEIO_EndAdding(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_long flags);
AEIO_OutputFrame输出单个帧。输出是,适用于支持单帧的写入格式
AEIO_OutputFrame(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
PF_EffectWorld *wP);
AEIO_WriteLabels允许 AEIO_Err_USE_DFLT_CALLBACK。为 AEIO_OutSpecH 设置 alpha 解释和字段使用信息。输出
AEIO_LabelFlags 中指示你写入了哪些标志。
AEIO_WriteLabels(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
AEIO_LabelFlags *written);
AEIO_GetSizes允许 AEIO_Err_USE_DFLT_CALLBACK。提供有关文件大小和输出卷上剩余可用空间的信息。输出
AEIO_GetSizes(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_u_longlong *free_space,
A_u_longlong *file_size);
AEIO_Flush销毁与 OutSpecH 相关的任何选项或用户数据。
AEIO_Flush(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH);
AEIO_AddSoundChunk将给定的声音添加到输出文件中。输出是,适用于带有音频的写入格式
AEIO_AddSoundChunk(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
const A_Time *start,
AEIO_SndWorldH swH);
AEIO_Idle可选。在空闲时间执行某些操作。不支持 AEIO_Err_USE_DFLT_CALLBACK输出
AEIO_Idle(
AEIO_BasicData *basic_dataP,
AEIO_ModuleSignature sig,
AEIO_IdleFlags *idle_flags0);
AEIO_GetDepths设置 AEIO_OptionsFlags 以指示哪些像素和颜色深度对你的输出格式有效。输出
请参阅 导出位深度 的讨论。
AEIO_GetDepths(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
AEIO_OptionsFlags *which);
AEIO_GetOutputSuffix允许 AEIO_Err_USE_DFLT_CALLBACK。描述输出文件的三字符扩展名。输出
AEIO_GetOutputSuffix(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_char *suffix);
AEIO_SeqOptionsDlg显示素材选项对话框,并指示用户是否进行了任何更改。输入
AEIO_SeqOptionsDlg(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_Boolean *interactedPB);
AEIO_GetNumAuxChannels枚举 AEIO_InSpecH 中包含的辅助(超出红、绿、蓝和 alpha)数据通道的数量。输入
AEIO_GetNumAuxChannels(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_long *num_channelsPL);
AEIO_GetAuxChannelDesc描述辅助数据通道的数据类型、名称、通道和维度。输入
AEIO_GetAuxChannelDesc(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
long chan_indexL,
PF_ChannelDesc *descP);
AEIO_DrawAuxChannelAEIO_InSpecH 绘制辅助通道。
AEIO_DrawAuxChannel(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_long chan_indexL,
const AEIO_DrawFramePB *pbP,
PF_ChannelChunk *chunkP);
AEIO_FreeAuxChannel释放与辅助通道相关的数据。输入
AEIO_FreeAuxChannel(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
PF_ChannelChunk *chunkP);
AEIO_Num AuxFiles枚举渲染给定 AEIO_InSpecH 所需的文件。输入
当用户选择 文件 > 依赖项 > 收集文件... 时,将调用此函数和 AEIO_GetNthAuxFileSpec。在这里,你的 AEIO 告诉 AE 相关的文件是什么。
AEIO_NumAuxFiles(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH seqH,
A_long *files_per_framePL);
AEIO_GetNthAuxFileSpec从第 n 个辅助文件中检索指定帧的数据。输入否,如果没有辅助文件
路径是一个指向以 NULL 结尾的 A_UTF16Char 字符串的句柄,必须使用 AEGP_FreeMemHandle 释放。
AEIO_GetNthAuxFileSpec(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH seqH,
A_long frame_numL,
A_long n,
AEGP_MemHandle *pathPH);
AEIO_CloseSourceFiles关闭(或打开,取决于 closeB)AEIO_InSpecH 的源文件。输入
当用户收集文件时,AEIO 将首先被要求关闭其源文件,然后重新打开它们。
AEIO_CloseSourceFiles(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH seqH,
A_Boolean closeB);
- TRUE 表示关闭
- FALSE 表示打开。
AEIO_CountUserData枚举与 AEIO_InSpecH 相关的用户数据单元。
AEIO_CountUserData(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_u_long typeLu,
A_u_long max_sizeLu,
A_u_long *num_of_typePLu);
AEIO_SetUserData为给定的 AEIO_OutSpecH 设置用户数据(给定索引和类型)。输出
AEIO_SetUserData(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_u_long typeLu,
A_u_long indexLu,
const AEIO_Handle dataH);
AEIO_GetUserData描述与 AEIO_InSpecH 相关的用户数据(给定索引和类型)。输入
AEIO_GetUserData(
AEIO_BasicData *basic_dataP,
AEIO_InSpecH inH,
A_u_long typeLu,
A_u_long indexLu,
A_u_long max_sizeLu,
AEIO_Handle *dataPH);
AEIO_AddMarker将指定类型的标记与 AEIO_OutSpecH 关联到指定帧。输出
你可以提供一个中断函数来处理用户取消此操作的情况。
AEIO_AddMarker(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_long frame_index,
AEIO_MarkerType marker_type,
void *marker_dataPV,
AEIO_InterruptFuncs *inter0);
AEIO_VerifyFileImportable通过设置 importablePB 指示插件是否可以导入文件。输入
请注意,After Effects 已经完成了基本的扩展检查;你可能希望打开文件并确定它是否有效。
这可能是一个耗时的过程;大多数随 After Effects 一起发布的 AEIO 只是返回 TRUE,并在 AEIO_InitInSpecFromFile 期间处理坏文件。
文件路径是一个以 NULL 结尾的 UTF-16 字符串,带有平台分隔符。
AEIO_VerifyFileImportable(
AEIO_BasicData *basic_dataP,
AEIO_ModuleSignature sig,
const A_UTF16Char *file_pathZ,
A_Boolean *importablePB);
AEIO_UserAudioOptionsDialog显示音频选项对话框。输出
AEIO_UserAudioOptionsDialog(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_Boolean *interacted0);
AEIO_AddMarker3添加一个标记,并带有一个标志,指示这是否是一个合成标记。输出
AEIO_AddMarker3(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_long frame_index,
AEGP_ConstMarkerValP marker_valP,
AEIO_RenderMarkerFlag marker_flag,
AEIO_InterruptFuncs *inter0);
AEIO_GetMimeType描述输出的 MIME 类型。用于 XMP 支持。输出
AEIO_GetMimeType(
AEIO_BasicData *basic_dataP,
AEIO_OutSpecH outH,
A_long mime_type_sizeL,
char *mime_typeZ);

输入管理

这些函数管理输入规范,即 After Effects 内部表示从任何来源收集的数据的方式。

After Effects 中的任何图像或音频数据(除了纯色)都是从输入规范句柄(AEIO_InSpecH)中获取的。

AEGP_IOInSuite5

函数用途
AEGP_GetInSpecOptionsHandle获取给定 AEIO_InSpecH 的选项数据(由您的 AEIO 创建)。
AEGP_GetInSpecOptionsHandle(
AEIO_InSpecH inH,
void *optionsPPV);
AEGP_SetInSpecOptionsHandle设置给定 AEIO_InSpecH 的选项数据。
必须使用 Memory Suite 分配。
AEGP_SetInSpecOptionsHandle(
AEIO_InSpecH inH,
void *optionsPV,
void *old_optionsPPV);
AEGP_GetInSpecFilePath获取 AEIO_InSpecH 的文件路径。
文件路径是一个指向以 NULL 结尾的 A_UTF16Char 字符串的句柄,必须使用 AEGP_FreeMemHandle 释放。
AEGP_GetInSpecFilePath(
AEIO_InSpecH inH,
AEGP_MemHandle *file_nameZ);
AEGP_GetInSpecNativeFPS获取 AEIO_InSpecH 的帧率。
AEGP_GetInSpecNativeFPS(
AEIO_InSpecH inH,
A_Fixed *native_fpsP);
AEGP_SetInSpecNativeFPS设置 AEIO_InSpecH 的帧率。
AEGP_SetInSpecNativeFPS(
AEIO_InSpecH inH,
A_Fixed native_fpsP);
AEGP_GetInSpecDepth获取 AEIO_InSpecH 中图像数据的位深度。
AEGP_GetInSpecDepth(
AEIO_InSpecH inH,
A_short *depthPS);
AEGP_SetInSpecDepth向 After Effects 指示 AEIO_InSpecH 中图像数据的位深度。
AEGP_SetInSpecDepth(
AEIO_InSpecH inH,
A_short depthS);
AEGP_GetInSpecSize获取 AEIO_InSpecH 引用的数据的大小(以字节为单位)。
AEGP_GetInSpecSize(
AEIO_InSpecH inH,
AEIO_FileSize *sizePLLu);
AEGP_SetInSpecSize向 After Effects 指示 AEIO_InSpecH 引用的数据的大小(以字节为单位)。
AEGP_SetInSpecSize(
AEIO_InSpecH inH,
AEIO_FileSize sizeL);
AEGP_GetInSpecInterlaceLabel获取 AEIO_InSpecH 的场信息。
AEGP_GetInSpecInterlaceLabel(
AEIO_InSpecH inH,
FIEL_Label *interlaceP);
AEGP_SetInSpecInterlaceLabel指定 AEIO_InSpecH 的场信息。
AEGP_SetInSpecInterlaceLabel(
AEIO_InSpecH inH,
const FIEL_Label *interlaceP);
AEGP_GetInSpecAlphaLabel获取 AEIO_InSpecH 的 Alpha 通道解释信息。
AEGP_GetInSpecAlphaLabel(
AEIO_InSpecH inH,
AEIO_AlphaLabel *alphaP);
AEGP_SetInSpecAlphaLabel设置 AEIO_InSpecH 的 Alpha 通道解释信息。
AEGP_SetInSpecAlphaLabel(
AEIO_InSpecH inH,
const AEIO_AlphaLabel* alphaP);
AEGP_GetInSpecDuration获取 AEIO_InSpecH 的持续时间。
AEGP_GetInSpecDuration(
AEIO_InSpecH inH,
A_Time *durationP);
AEGP_SetInSpecDuration设置 AEIO_InSpecH 的持续时间。
!!! 注意
从 5.5 版本开始,即使对于基于帧的文件格式,也必须调用此函数。
如果您没有将 A_Time.scale 设置为非零值,您的文件将无法导入。
此问题将在未来的版本中修复。
AEGP_SetInSpecDuration(
AEIO_InSpecH inH,
const A_Time *durationP);
AEGP_GetInSpecDimensions获取 AEIO_InSpecH 中图像数据的宽度和高度。
AEGP_GetInSpecDimensions(
AEIO_InSpecH inH,
A_long *widthPL0,
A_long *heightPL0);
AEGP_SetInSpecDimensions向 After Effects 指示 AEIO_InSpecH 中图像数据的宽度和高度。
AEGP_SetInSpecDimensions(
AEIO_InSpecH inH,
A_long widthL,
A_long heightL);
AEGP_InSpecGetRational Dimensions获取应用于 AEIO_InSpecH 的宽度、高度、边界矩形和缩放因子。
AEGP_InSpecGetRationalDimensions(
AEIO_InSpecH inH,
const AEIO_RationalScale *rs0,
A_long *width0,
A_long *height0,
A_Rect *r0);
AEGP_GetInSpecHSF获取应用于 AEIO_InSpecH 的水平缩放因子。
AEGP_GetInSpecHSF(
AEIO_InSpecH inH,
A_Ratio *hsf);
AEGP_SetInSpecHSF设置 AEIO_InSpecH 的水平缩放因子。
AEGP_SetInSpecHSF(
AEIO_InSpecH inH,
const A_Ratio *hsf);
AEGP_GetInSpecSoundRate获取 AEIO_InSpecH 引用的音频数据的采样率(每秒采样数)。
AEGP_GetInSpecSoundRate(
AEIO_InSpecH inH,
A_FpLong *ratePF);
AEGP_SetInSpecSoundRate设置 AEIO_InSpecH 引用的音频数据的采样率(每秒采样数)。
AEGP_SetInSpecSoundRate(
AEIO_InSpecH inH,
A_FpLong rateF);
AEGP_GetInSpecSoundEncodingAEIO_InSpecH 获取编码方法(有符号 PCM、无符号 PCM 或浮点数)。
AEGP_GetInSpecSoundEncoding(
AEIO_InSpecH inH,
AEIO_SndEncoding *encodingP);
AEGP_SetInSpecSoundEncoding设置 AEIO_InSpecH 的编码方法。
AEGP_SetInSpecSoundEncoding(
AEIO_InSpecH inH,
AEIO_SndEncoding encoding);
AEGP_GetInSpecSoundSampleSizeAEIO_InSpecH 获取每样本字节数(1、2 或 4)。
AEGP_GetInSpecSoundSampleSize(
AEIO_InSpecH inH,
AEIO_SndSampleSize *bytes_per_smpP);
AEGP_SetInSpecSoundSampleSize设置 AEIO_InSpecH 的每样本字节数。
AEGP_SetInSpecSoundSampleSize(
AEIO_InSpecH inH,
AEIO_SndSampleSize bytes_per_sample);
AEGP_GetInSpecSoundChannels确定 AEIO_SndChannels 中的音频是单声道还是立体声。
AEGP_GetInSpecSoundChannels(
AEIO_InSpecH inH,
AEIO_SndChannels *num_channelsP);
AEGP_SetInSpecSoundChannelsAEIO_SndChannels 中的音频设置为单声道或立体声。
AEGP_SetInSpecSoundChannels(
AEIO_InSpecH inH,
AEIO_SndChannels num_channels);
AEGP_AddAuxExtMap如果您的文件格式有辅助文件,并且您希望防止用户直接打开这些文件,请将其扩展名、文件类型和创建者传递给此函数,以防止其出现在输入对话框中。
AEGP_AddAuxExtMap(
const A_char *extension,
A_long file_type,
A_long creator);
AEGP_SetInSpecEmbeddedColorProfile对于 RGB 数据,如果存在嵌入的 icc 配置文件,请使用 AEGP_ColorSettingsSuite5 中的 AEGP_GetNewColorProfileFromICCProfile 从此 icc 配置文件中构建 AEGP_ColorProfile,并将配置文件描述设置为 NULL。
对于非 RGB 数据,如果存在嵌入的非 RGB icc 配置文件,或者您知道数据的颜色空间,请将颜色配置文件设置为 NULL,并将描述作为以 NULL 结尾的 Unicode 字符串提供。这样做会禁用允许用户在应用程序 UI 中影响配置文件选择的颜色管理 UI。
如果您直接将非 RGB 数据解包到工作空间(使用 AEGP_GetNewWorkingSpaceColorProfile 获取工作空间),则已完成。
如果您将非 RGB 数据解包到特定的 RGB 颜色空间,则必须将描述此空间的配置文件传递给下面的 AEGP_SetInSpecAssignedColorProfile。否则,您的 RGB 数据将被错误地解释为在工作空间中。
在此函数中,颜色配置文件或配置文件描述应为 NULL。不能同时使用两者。
AEGP_SetInSpecEmbeddedColorProfile(
AEIO_InSpecH inH,
AEGP_ConstColorProfileP color_profileP0,
const A_UTF16Char *profile_descP0);
AEGP_SetInSpecAssignedColorProfile为素材分配有效的 RGB 颜色配置文件。
AEGP_SetInSpecAssignedColorProfile(
AEIO_InSpecH inH,
AEGP_ConstColorProfileP color_profileP);
AEGP_GetInSpecNativeStartTime新增于 CC。获取素材的本地起始时间。
AEGP_GetInSpecNativeStartTime(
AEIO_InSpecH inH,
A_Time *startTimeP);
AEGP_SetInSpecNativeStartTime新增于 CC。为素材分配本地起始时间。
AEGP_SetInSpecNativeStartTime(
AEIO_InSpecH inH,
const A_Time *startTimeP);
AEGP_ClearInSpecNativeStartTime新增于 CC。清除素材的本地起始时间。
使用 AEGP_SetInSpecNativeStartTime 将本地起始时间设置为 0 并不能实现此功能。
这仍然意味着提供了特殊的本地起始时间。
AEGP_ClearInSpecNativeStartTime(
AEIO_InSpecH inH);
AEGP_GetInSpecNativeDisplayDropFrame新增于 CC。获取素材的丢帧设置。
AEGP_GetInSpecNativeDisplayDropFrame(
AEIO_InSpecH inH,
A_Boolean *displayDropFrameBP);
AEGP_SetInSpecNativeDisplayDropFrame新增于 CC。设置素材的丢帧设置。
AEGP_SetInSpecNativeDisplayDropFrame(
AEIO_InSpecH inH,
A_Boolean displayDropFrameB);

输出管理

这些函数管理 After Effects 渲染队列中与输出规范相关的所有交互。

AEGPIOOutSuite4

函数用途
AEGP_GetOutSpecOptionsHandle获取 AEIO_OutSpecH 的选项。
AEGP_GetOutSpecOptionsHandle(
AEIO_OutSpecH outH,
void *optionsPPV);
AEGP_SetOutSpecOptionsHandle设置 AEIO_OutSpecH 的选项。
AEGP_SetOutSpecOptionsHandle(
AEIO_OutSpecH outH,
void *optionsPV,
void *old_optionsPPV);
AEGP_GetOutSpecFilePath获取 AEIO_OutSpecH 的文件路径。
文件路径是一个指向以 NULL 结尾的 A_UTF16Char 字符串的句柄,必须使用 AEGP_FreeMemHandle 释放。
如果 file_rsrvdPB 返回 TRUE,插件不应覆盖它(After Effects 已经创建了一个空文件);这样做可能会导致网络渲染失败。
AEGP_GetOutSpecFilePath(
AEIO_OutSpecH outH,
AEGP_MemHandle *unicode_pathPH,
A_Boolean *file_rsrvdPB);
AEGP_GetOutSpecFPS获取 AEIO_OutSpecH 的帧率。
AEGP_GetOutSpecFPS(
AEIO_OutSpecH outH,
A_Fixed *native_fpsP);
AEGP_SetOutSpecNativeFPS设置 AEIO_OutSpecH 的帧率。
AEGP_SetOutSpecNativeFPS(
AEIO_OutSpecH outH,
A_Fixed native_fpsP);
AEGP_GetOutSpecDepth获取 AEIO_OutSpecH 的像素位深度。
AEGP_GetOutSpecDepth(
AEIO_OutSpecH outH,
A_short *depthPS);
AEGP_SetOutSpecDepth设置 AEIO_OutSpecH 的像素位深度。
AEGP_SetOutSpecDepth(
AEIO_OutSpecH outH,
A_short depthPS);
AEGP_GetOutSpecInterlaceLabel获取 AEIO_OutSpecH 的场信息。
AEGP_GetOutSpecInterlaceLabel(
AEIO_OutSpecH outH,
FIEL_Label *interlaceP);
AEGP_SetOutSpecInterlaceLabel设置 AEIO_OutSpecH 的场信息。
AEGP_SetOutSpecInterlaceLabel(
AEIO_OutSpecH outH,
const FIEL_Label *interlaceP);
AEGP_GetOutSpecAlphaLabel获取 AEIO_OutSpecH 的 Alpha 解释信息。
AEGP_GetOutSpecAlphaLabel(
AEIO_OutSpecH outH,
AEIO_AlphaLabel *alphaP);
AEGP_SetOutSpecAlphaLabel设置 AEIO_OutSpecH 的 Alpha 解释。
AEGP_SetOutSpecAlphaLabel(
AEIO_OutSpecH outH,
const AEIO_AlphaLabel *alphaP);
AEGP_GetOutSpecDuration获取 AEIO_OutSpecH 的持续时间。
AEGP_GetOutSpecDuration(
AEIO_OutSpecH outH,
A_Time *durationP);
AEGP_SetOutSpecDuration设置 AEIO_OutSpecH 的持续时间。
AEGP_SetOutSpecDuration(
AEIO_OutSpecH outH,
const A_Time *durationP);
AEGP_GetOutSpecDimensions获取 AEIO_OutSpecH 的尺寸。
AEGP_GetOutSpecDimensions(
AEIO_OutSpecH outH,
A_long *widthPL0,
A_long *heightPL0);
AEGP_GetOutSpecHSF获取 AEIO_OutSpecH 的水平缩放因子。
AEGP_GetOutSpecHSF(
AEIO_OutSpecH outH,
A_Ratio *hsf);
AEGP_SetOutSpecHSF设置 AEIO_OutSpecH 的水平缩放因子。
AEGP_SetOutSpecHSF(
AEIO_OutSpecH outH,
const A_Ratio *hsf);
AEGP_GetOutSpecSoundRate获取 AEIO_OutSpecH 的采样率。
AEGP_GetOutSpecSoundRate(
AEIO_OutSpecH outH,
A_FpLong *ratePF);
AEGP_SetOutSpecSoundRate设置 AEIO_OutSpecH 的采样率。
AEGP_SetOutSpecSoundRate(
AEIO_OutSpecH outH,
A_FpLong rateF);
AEGP_GetOutSpecSoundEncoding获取 AEIO_OutSpecH 的声音编码格式。
AEGP_GetOutSpecSoundEncoding(
AEIO_OutSpecH outH,
AEIO_SndEncoding *encodingP);
AEGP_SetOutSpecSoundEncoding设置 AEIO_OutSpecH 的声音编码格式。
AEGP_SetOutSpecSoundEncoding(
AEIO_OutSpecH outH,
AEIO_SndEncoding encoding);
AEGP_GetOutSpecSoundSampleSize获取 AEIO_OutSpecH 的每样本字节数。
AEGP_GetOutSpecSoundSampleSize(
AEIO_OutSpecH outH,
AEIO_SndSampleSize *bpsP);
AEGP_SetOutSpecSoundSampleSize设置 AEIO_OutSpecH 的每样本字节数。
AEGP_SetOutSpecSoundSampleSize(
AEIO_OutSpecH outH,
AEIO_SndSampleSize bpsP);
AEGP_GetOutSpecSoundChannels获取 AEIO_OutSpecH 的声音通道数。
AEGP_GetOutSpecSoundChannels(
AEIO_OutSpecH outH,
AEIO_SndChannels *channelsP);
AEGP_SetOutSpecSoundChannels设置 AEIO_OutSpecH 的声音通道数。
AEGP_SetOutSpecSoundChannels(
AEIO_OutSpecH outH,
AEIO_SndChannels channels);
AEGP_GetOutSpecIsStill判断 AEIO_OutSpecH 是否为静态图像。
AEGP_GetOutSpecIsStill(
AEIO_OutSpecH outH,
A_Boolean *is_stillPB);
AEGP_GetOutSpecPosterTime获取 AEIO_OutSpecH 的海报帧时间。
AEGP_GetOutSpecPosterTime(
AEIO_OutSpecH outH,
A_Time *poster_timeP);
AEGP_GetOutSpecStartFrame获取 AEIO_OutSpecH 的第一帧时间。
AEGP_GetOutSpecStartFrame(
AEIO_OutSpecH outH,
A_long *start_frameP);
AEGP_GetOutSpecPullDown获取 AEIO_OutSpecH 的下拉相位。
AEGP_GetOutSpecPullDown(
AEIO_OutSpecH outH,
AEIO_Pulldown *pulldownP);
AEGP_GetOutSpecIsMissing如果没有 AEIO_OutSpecH,则返回 TRUE。
AEGP_GetOutSpecIsMissing(
AEIO_OutSpecH outH,
A_Boolean *missingPB);
AEGP_GetOutSpecShouldEmbedICCProfile如果 AEIO 应在输出中嵌入颜色配置文件,则返回 TRUE。
AEGP_GetOutSpecShouldEmbedICCProfile(
AEIO_OutSpecH outH,
A_Boolean *embedPB);
AEGP_GetNewOutSpecColorProfile返回一个(不透明的)ICC 颜色配置文件,用于嵌入到 AEIO 的输出中。
必须使用 AEGP_DisposeColorProfile 释放。
AEGP_GetNewOutSpecColorProfile(
AEGP_PluginID aegp_plugin_id,
AEIO_OutSpecH outH,
AEGP_ColorProfileP *color_profilePP);
AEGP_GetOutSpecOutputModule返回与给定 AEIO_OutSpecH 关联的 AEGP_RQItemRefHAEGP_OutputModuleRefH
如果未找到渲染队列项,或者 AEIO_OutSpecH 不是已确认的 outH 并且是副本(即如果输出模块设置对话框已打开且用户尚未点击确定),则失败。
AEGP_GetOutSpecOutputModule(
AEIO_OutSpecH outH,
AEGP_RQItemRefH *rq_itemP,
AEGP_OutputModuleRefH *om_refP);