frei0r - a minimalistic plugin API for video effects

# Introduction

This is frei0r - a minimalistic plugin API for video effects.

The main emphasis is on simplicity - there are many different applications that use video effects, and they all have different requirements regarding their internal plugin API. And that's why frei0r does not try to be a one-in-all general video plugin API, but instead an API for the most common video effects: simple filters, sources and mixers that can be controlled by parameters.

It's our hope that this way these simple effects can be shared between many applications, avoiding their reimplementation by different projects.

On the other hand, this is not meant as a competing standard to more ambitious efforts that try to satisfy the needs of many different applications and more complex effects.

# Overview

If you are new to frei0r, the best thing is probably to have a look at the frei0r header, which is quite simple.

After that, you might want to look at the frei0r functions in more detail.

When developing a new frei0r effect, you have to choose

- which effect type to use (Type of the Plugin),
- which color model to use (Color Models), and
- which parameter types (Parameter Types) your effect will support.

To round things up, you should decide whether your effect should have an associated icon (Icons for frei0r effects), and where it will be installed (Plugin Locations).

# Changes

## From frei0r 1.1 to frei0r 1.2

- make <vendor> in plugin path optional
- added section on FREI0R_PATH environment variable
- added requirement to initialize all parameters in f0r_construct()

## From frei0r 1.0 to frei0r 1.1

- added specifications for plugin locations
- added specifications for frei0r icons
- added RGBA8888 color model
- added packed32 color model
- added better specification of color models
- added string type
- added bounds to resolution (8 <= width, height <= 2048)
- width and height must be an integer multiple of 8
- frame data must be 16 byte aligned
- improved update specification (must not change parameters, must restore fpu state)
- added note for applications to ignore effects with unknown fields
- added new plugin types mixer2 and mixer3
- added section about Concurrency