Skip to content

AEIO_ModuleInfo

AEIO_ModuleInfo

This is the structure where your AEIO will define its basic properties.

Notice that, in addition to describing the filetypes and extensions supported by your AEIO, you also describe your signature and behavior using the AEIO_ModuleFlags. We love flags.


AEIO_ModuleInfo Members

MemberPurpose
sigA long, uniquely identifying your plug-in.
Many developers prefer to use a decidedly Mac-ish four character code here.
Please let us know what sig you’re using.
nameDescriptive name for your AEIO plug-in.
flagsSet of AEIO_ModuleFlags.
flags2Set of AEIO_ModuleFlags2.
max_width, max_heightThe maximum dimensions supported by your format.
num_filetypesThe number of filetypes supported by your AEIO.
num_extensionsThe number of file extensions supported by your AEIO.
num_clipsThe number of clipboard formats supported by your AEIO.
create_kindThe macOS four character code for files created by your AEIO.
create_extThe file extension for files created by your AEIO.
read_kindsThis array of 16 AEIO_FileKinds need not be entirely filled out, but the first [num_filetypes + num_extensions + num_clips] ones must be populated, in that order.
num_aux_extensionsThe number of auxiliary extensions supported by your AEIO.
Say, for example, that you’re writing an AEIO to import information from a 3D program that saves scene information into a .123 file, and camera information into a .xyz file.
The .xyz would be an auxiliary extension; it’s not necessary to get the rest of the scene information, but it’s associated with the .123 files.
aux_extThe file extension of the auxiliary filetype(s) supported by your AEIO.

Behavior Flags

AEIOs set these flags (like effect plug-ins use global outflags) in AEIO_ModuleInfo.flags to indicate their behavior to After Effects. Some flags are only relevant to input, and some are only relevant to output.

AEIO_ModuleFlags

FlagPurposeI or O?
AEIO_MFlag_INPUTAEIO is an input module.Input!
AEIO_MFlag_OUTPUTAEIO is an output module (one plug-in can be both).Output!
AEIO_MFlag_FILEEach clip imported directly corresponds to a file, somewhere.Both
AEIO_MFlag_STILLSupports still images, not video.Output
AEIO_MFlag_VIDEOSupports video images, not stills.Output
AEIO_MFlag_AUDIOSupports audio.Output
AEIO_MFlag_NO_TIMETime information isn’t part of the file format.Input
This would be the case with numbered stills, with individual frames imported based on the composition’s time settings.
AEIO_MFlag_INTERACTIVE_GETA new input sequence necessitates user interaction.Input
This would be the case for a non-file-based input module.
AEIO_MFlag_INTERACTIVE_PUTA new output sequence necessitates user interaction.Output
This would be the case for a non-file-based output module.
AEIO_MFlag_CANT_CLIPThe AEIO’s drawing functions cannot accept dimensions smaller than the requested dimensions.Input
AEIO_MFlag_MUST_INTERACT_PUTThe AEIO must display a dialog box, even if a valid options data handle is available.Output
AEIO_MFlag_CANT_SOUND_INTERLEAVEThe AEIO requires that all video data be processed, then sound data (instead of interleaving the processing the video and audio).Output
AEIO_MFlag_CAN_ADD_FRAMES_NON_LINEARThe AEIO supports adding non-sequential frames.Output
AEIO_MFlag_HOST_DEPTH_DIALOGThe AEIO wants After Effects to display a bit-depth selection dialog.Input
AEIO_MFlag_HOST_FRAME_START_DIALOGThe AEIO wants After Effects to display a dialog requesting that the user specify a starting frame.Input
AEIO_MFlag_NO_OPTIONSThe AEIO does not accept output options.Output
AEIO_MFlag_NO_PIXELSThe AEIO’s file format doesn’t actually store pixels. Currently unused as of CS6.(unused)
AEIO_MFlag_SEQUENCE_OPTIONS_OKThe AEIO will adopt the sequence options of its parent if a folder is selected.Input
AEIO_MFlag_INPUT_OPTIONSThe AEIO has user options associated with each input sequence.Input
!!! note
The options information must be flat (not referring to any data contained in external pointers or handles).
AEIO_MFlag_HSF_AWAREThe AEIO will provide horizontal scaling factor (pixel aspect ratio) information for each new sequence.Input
This prevents After Effects from guessing.
AEIO_MFlag_HAS_LAYERSThe AEIO supports multiple layers in a single document.Input
AEIO_MFlag_SCRAPThe AEIO has a clipboard parsing component.Input
AEIO_MFlag_NO_UIAfter Effects should display no UI for this moduleInput
(do not combine this flag with AEIO_MFlag_HOST_DEPTH_DIALOG or AEIO_MFlag_HOST_FRAME_START_DIALOG)
AEIO_MFlag_SEQ_OPTIONS_DLGThe AEIO has sequence options accessible from the More Options button in the Interpret Footage dialog.Input
AEIO_MFlag_HAS_AUX_DATAThe file format supported by the AEIO has depth information, normals, or some other non-color information related to each pixel.Input
AEIO_MFlag_HAS_META_DATAThe file format supported by the AEIO supports user-definable metadata.Output
If this flag is set, the embed pop-up in the output module dialog will be enabled.
AEIO_MFlag_CAN_DO_MARKERSThe file format support by the AEIO supports markers, url flips, and/or chapters.Output
AEIO_MFlag_CAN_DRAW_DEEPThe AEIO can draw into 16bpc (“deep”) PF_EffectWorlds.Input
AEIO_MFlag_RESERVED4Special super-secret flag. Doesn’t do anything…or does it????
(No, it doesn’t.)

AEIO_ModuleFlags2

Gotta have dem flags…

FlagPurposeI or O?
AEIO_MFlag2_AUDIO_OPTIONSThe AEIO has an audio options dialog.Output
AEIO_MFlag2_SEND_ADDMARKER_BEFORE_ADDFRAMEThe AEIO wants to receive marker data before outputting video or audio (useful for MPEG streams).Output
AEIO_MFlag2_CAN_DO_MARKERS_2The AEIO supports combined markers; URL flips, chapters, and comments.Output
AEIO_MFlag2_CAN_DRAW_FLOATThe AEIO can draw into float (32-bpc) worlds.Input
AEIO_MFlag2_CAN_DO_AUDIO_32Supports 32-bit audio output.Output
AEIO_MFlag2_SUPPORTS_ICC_PROFILESSupports ICC profiles.Both
AEIO_MFlag2_CAN_DO_MARKERS_3The AEIO supports combined markers; URL flips, chapters, comments, and cue points.Output
AEIO_MFlag2_SEND_ADDMARKER_BEFORE_STARTADDINGThe AEIO wants to process markers before video during export.Output
AEIO_MFlag2_USES_QUICKTIMEOn MacOS, prior to the host calling AEIO_AddFrame or AEIO_OutputFrame from AEIO_FunctionBlock4, it will lock the global QuickTime mutex.Output