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

Channel template


Detailed Description

Channels templates are provided by the plugin as a template to form channels (livido_channel) inside a filter (livido_instance).

They come to the host as part of the filter template (livido_instance_template) received when the livido_setup_f() function is first retreived with dlopen() and called.

These fields contain pointers to the first input and output channels respectively, which are the initial elements of linked lists.

When the host receives the *in_channel and *out_channel channel template arrays from the plugin, it must process them to see what channels are available, and decide which it will use and how.

The host should copy the channel templates to real channels, for each channel in turn, the host should decide which of the palettes in the list it would like to use, remembering that the list is in order of preference for the plugin. If none of the palettes are suitable in a channel, the host cannot use that channel.

Assuming one of the palettes in the list is acceptible to the host, the host indicates this by copying the value of palette in the channel (livido_channel) implementation hold by the filter (livido_instance).

If a channel is optional, the plugin indicates this by setting the LIVIDO_CHANNEL_OPTIONAL flag. The host can indicate not using the channel by setting the flag LIVIDO_CHANNEL_DISABLED inside the channel implementation hnold by the filter.

The mandatory task for the host is to set the channel width and height. If livido_channel_template::width is nonzero, the only possible size that channel can take is denoted as width and heigth parameters of the template.

If the filter template flag LIVIDO_PROPERTY_HOST_CAN_RESIZE is not set, host can resize channel and recall init()

If the filter template flag LIVIDO_PROPERTY_HOST_CAN_CHANGE_PALETTE is set, host can change palette and recall init()

If the "same_as" field is set for any of the channels, the host should check that palette and size matches with the other channel, depending on the setting of LIVIDO_CHANNEL_SAME_AS_SIZE or LIVIDO_CHANNEL_SAME_AS_PALETTE.


Data Structures

struct  livido_channel_template
 Template provided by plugin to describe in/out channels. More...


Defines

#define LIVIDO_CHANNEL_OPTIONAL   (1<<0)
 tell host that channel can be disabled

#define LIVIDO_CHANNEL_MASK   (1<<1)
 tell host that channel is a mask

#define LIVIDO_CHANNEL_SAME_AS_SIZE   (1<<2)
 tell host that same_as refers to size

#define LIVIDO_CHANNEL_SAME_AS_PALETTE   (1<<3)
 tell host that same_as refers to palettes

#define LIVIDO_CHANNEL_RESIZABLE   (1<<4)
 tell host that frames can be resized while processing


Define Documentation

#define LIVIDO_CHANNEL_OPTIONAL   (1<<0)
 

tell host that channel can be disabled

One or more of these flags can assist the host in setting up channel arrays

Definition at line 434 of file livido.h.


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