A single plugin can provide multiple filter templates, therefore in Livido one plugin can provide different video effects.
Data Structures | |
| struct | livido_instance_template |
| Template provided by the plugin to describe an effect. More... | |
Defines | |
| #define | LIVIDO_PROPERTY_REALTIME (1<<0x0) |
| realtime filter property | |
| #define | LIVIDO_PROPERTY_CAN_DO_INPLACE (1<<0x1) |
| inplace filter propert | |
| #define | LIVIDO_PROPERTY_TRANSITION (1<<0x2) |
| transition filter property | |
| #define | LIVIDO_PROPERTY_CAN_DO_SCALED (1<<0x3) |
| plugin scales thru scale_x and scale_y | |
| #define | LIVIDO_PROPERTY_CAN_DO_WINDOWED (1<<0x4) |
| plugin is capable of doing window crop | |
| #define | LIVIDO_PROPERTY_SELF_AUTOMATION (1<<0x5) |
| plugin does automation by itself (keyframming) | |
| #define | LIVIDO_PROPERTY_FPS_NEEDED (1<<0x6) |
| FPS information is mandatory. | |
| #define | LIVIDO_PROPERTY_HOST_CAN_RESIZE (1<<0x7) |
| host can change channel sizes, should recall init() every time | |
| #define | LIVIDO_PROPERTY_HOST_CAN_CHANGE_PALETTE (1<<0x8) |
| host can change palettes, should recall init() every time | |
Typedefs | |
| typedef livido_instance_template *( | livido_setup_f )(void) |
| Setup the global environment of the plugin. | |
|
|
inplace filter propert If this property is set, the filter can do inplace operations then host can use plugin process() function in a way to have the same input and output channels If plugin advertizes this capability, it HAS to have first output channel connected to the first input channel (same_palette and same_size) |
|
|
plugin scales thru scale_x and scale_y The plugin knows how to scale the parameters when drawing previews/thumbnails host can use scale_x and scale_y in this case |
|
|
plugin is capable of doing window crop The plugin knows how to operate on window of frame (adjusting parameters accordingly) window is denoted as window_x1, window_y1 for upper left corner of the window and full_x and full_y give the total size of the frame as it was before cropping lower right corner can be caluclated by adding window_x1 to channel width... and the same for height. The host must set the following properties in the filter in order to tell the plugin the geometry of the desired window: |
|
|
FPS information is mandatory. The plugin absolutely needs frames_per_second information, don't try to use it without |
|
|
host can change palettes, should recall init() every time the ::livido_init_t should be called by host after changing palette on any channel (and before it calls process) |
|
|
host can change channel sizes, should recall init() every time the effect ::livido_init_t should be called by host after it resizes any channel (and before it calls process) |
|
|
realtime filter property If this property is set, means that the filter can run in a (soft) realtime environment. The plugin must not do:
|
|
|
transition filter property If this property is set, the filter is a transition between two video sources, like wipes that are applied for a certain lapse of time usually taking 2 input and producing 1 output |
|
|
Setup the global environment of the plugin. The setup function must be called when the filter is loaded using dlopen(3) on the symbol "livido_setup", which returns a structure holding pointers to all filter templates provided by the filter. the setup is called by the host only the first time a plugin file is loaded, it doesn't needs to be called at every filter instance being created (that is the livido_init_f()). It returns a variable length array of filter templates made available by the plugin. After calling the livido_setup(), an host application must call the initialization function contained in a filter template to obtain a filter from it.
|
1.3.4