Main Page | Modules | Data Structures | File List | Data Fields | Globals

Filter template


Detailed Description

The filter template is the filter abstraction provided by the plugin to describe itself and used by the host to create filter instances.

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.


Define Documentation

#define LIVIDO_PROPERTY_CAN_DO_INPLACE   (1<<0x1)
 

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)

Definition at line 946 of file livido.h.

#define LIVIDO_PROPERTY_CAN_DO_SCALED   (1<<0x3)
 

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

Definition at line 959 of file livido.h.

#define LIVIDO_PROPERTY_CAN_DO_WINDOWED   (1<<0x4)
 

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:

Definition at line 976 of file livido.h.

#define LIVIDO_PROPERTY_FPS_NEEDED   (1<<0x6)
 

FPS information is mandatory.

The plugin absolutely needs frames_per_second information, don't try to use it without

Definition at line 986 of file livido.h.

#define LIVIDO_PROPERTY_HOST_CAN_CHANGE_PALETTE   (1<<0x8)
 

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)

Definition at line 1000 of file livido.h.

#define LIVIDO_PROPERTY_HOST_CAN_RESIZE   (1<<0x7)
 

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)

Definition at line 993 of file livido.h.

#define LIVIDO_PROPERTY_REALTIME   (1<<0x0)
 

realtime filter property

If this property is set, means that the filter can run in a (soft) realtime environment. The plugin must not do:

  • use malloc(3) free(3) or other memory managment functions that allocate/free data during processing.
  • the plugin does not access (special) files in blocking operations
  • the plugin does not do any colour space conversions but has internal routines for processing various colour spaces
  • host is responsible for timing operations

Definition at line 937 of file livido.h.

#define LIVIDO_PROPERTY_TRANSITION   (1<<0x2)
 

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

Definition at line 953 of file livido.h.


Typedef Documentation

typedef struct livido_instance_template*( livido_setup_f)(void)
 

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.

Returns:
linked list of filter templates

Definition at line 915 of file livido.h.


Generated on Wed Apr 6 20:21:07 2005 for LiViDO by doxygen 1.3.4