47     const int ro = s->
co[0], go = s->
co[1], bo = s->
co[2], ao = s->
co[3];
 
   48     const int slice_start = (frame->
height * jobnr) / nb_jobs;
 
   56     float red, green, blue;
 
   59     for (y = slice_start; y < 
slice_end; y++) {
 
   62         for (x = 0; x < frame->
width; x++) {
 
   65             red   = dst[x * 4 + ro] / 255.f;
 
   66             green = dst[x * 4 + go] / 255.f;
 
   67             blue  = dst[x * 4 + bo] / 255.f;
 
   70                 spillmap = 
FFMAX(blue  - (red * spillmix + green * factor), 0.
f);
 
   72                 spillmap = 
FFMAX(green - (red * spillmix + blue  * factor), 0.
f);
 
   75             red   = 
FFMAX(red   + spillmap * redscale   + brightness * spillmap, 0.
f);
 
   76             green = 
FFMAX(green + spillmap * greenscale + brightness * spillmap, 0.
f);
 
   77             blue  = 
FFMAX(blue  + spillmap * bluescale  + brightness * spillmap, 0.
f);
 
   79             dst[x * 4 + ro] = av_clip_uint8(red   * 255);
 
   80             dst[x * 4 + go] = av_clip_uint8(green * 255);
 
   81             dst[x * 4 + bo] = av_clip_uint8(blue  * 255);
 
   83                 spillmap = 1.f - spillmap;
 
   84                 dst[x * 4 + ao] = av_clip_uint8(spillmap * 255);
 
  113     for (i = 0; i < 4; ++i)
 
  155 #define OFFSET(x) offsetof(DespillContext, x) 
  156 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM 
  178     .priv_class    = &despill_class,
 
static int filter_frame(AVFilterLink *link, AVFrame *frame)
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
This structure describes decoded (raw) audio or video data. 
static av_cold int config_output(AVFilterLink *outlink)
Main libavfilter public API header. 
static const AVFilterPad despill_inputs[]
static const AVFilterPad despill_outputs[]
static av_cold int query_formats(AVFilterContext *ctx)
#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
Some filters support a generic "enable" expression option that can be used to enable or disable a fil...
const char * name
Pad name. 
int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
Send a frame of data to the next filter. 
AVComponentDescriptor comp[4]
Parameters that describe how pixels are packed. 
packed ABGR 8:8:8:8, 32bpp, ABGRABGR... 
static const AVOption despill_options[]
A filter pad used for either input or output. 
A link between two filters. 
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
packed BGRA 8:8:8:8, 32bpp, BGRABGRA... 
void * priv
private data for use by the filter 
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
packed ARGB 8:8:8:8, 32bpp, ARGBARGB... 
packed RGBA 8:8:8:8, 32bpp, RGBARGBA... 
int ff_filter_get_nb_threads(AVFilterContext *ctx)
Get number of threads for current filter instance. 
AVFILTER_DEFINE_CLASS(despill)
AVFilterContext * src
source filter 
static const AVFilterPad inputs[]
static const AVFilterPad outputs[]
int format
agreed upon media format 
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line. 
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
static const int16_t alpha[]
Describe the class of an AVClass context structure. 
static const int factor[16]
const char * name
Filter name. 
AVFilterLink ** outputs
array of pointers to output links 
int offset
Number of elements before the component of the first pixel. 
int av_frame_make_writable(AVFrame *frame)
Ensure that the frame data is writable, avoiding data copy if possible. 
#define flags(name, subs,...)
AVFilterInternal * internal
An opaque struct for libavfilter internal use. 
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes. 
avfilter_execute_func * execute
static int slice_end(AVCodecContext *avctx, AVFrame *pict)
Handle slice ends. 
AVFilterContext * dst
dest filter 
AVPixelFormat
Pixel format. 
static int do_despill_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)