Entrypoint and register(api)
The configured plugin entrypoint must expose a callable register(api) function. Registration describes the package's features and should complete quickly.
Implement the entrypoint
from editor.plugin_api import PluginParameterDefinition
def process(frame, parameters, context):
return frame
def register(api):
api.register_video_effect(
effect_id="example",
name="Example",
processor=process,
)Registration lifecycle
- Yrendr reads
plugin.json. - Yrendr loads the configured entrypoint from disk.
- The host creates a package-scoped
PluginAPIfacade. - Yrendr calls
register(api). - Successful registrations become available through the active plugin registry.
If import or registration raises an exception, Yrendr marks the package as failed and removes partial registrations created by that package.
Caution: Do not start a long-running editor loop or blocking analysis job from
register(). Registration should declare features and return.
Effect registration options
register_video_effect(), register_audio_effect() and register_generator() support:
parameters=;description=;time_dependent=;presets=;bypass_when=;randomizer=;time_dependent_when=;custom_editor=;window_options=.
Video and audio effects also support clip_types=. Generators are registered for the generator clip type.
Optimize neutral states
Use bypass_when(parameters) only when skipping the processor is exactly equivalent to running it. This allows Yrendr to avoid touching frame/sample buffers for provably neutral states.
Use time_dependent_when(parameters) when one effect can be static in some configurations and animated in others. If that predicate fails, Yrendr falls back to the coarse time_dependent registration value.
Register a timeline processor
register_timeline_processor() accepts native parameters, descriptive capabilities, presets and an optional randomizer.
Note: Timeline processors do not use
custom_editororPluginWindowOptions; their configuration and progress UI remain host-owned.