Skip to main content

Module filter_node

Module filter_node 

Source
Expand description

The libavfilter escape hatch (docs/compositing.md#libavfilter-escape-hatch): a raw libavfilter graph run over a layer’s frames in its prep, before the GPU pass.

This module is the backend-neutral half: the node (Node), the statefulness table (reach, under FILTER_TABLE_REVISION) that says how many frames before and after a piece a graph reads, the n lint, and the Prep a lowered layer carries for the renderer to run (ffcine-assembly runs it through the ffmpeg CLI into a lossless intermediate).

Structs§

Node
A raw libavfilter graph on a layer (filter).
Prep
A filter node’s run for one piece of a layer, for the renderer to make before the GPU pass: feed map’s source frames at rate, stamped from pts, through graph; keep its outputs store in a lossless intermediate named by key; show the intermediate’s frames show.
Reach
How far a graph reads around the frames it outputs.

Enums§

Clock
Which time the graph’s frames are stamped with.
Hw
Where the graph’s frames live.
Use
What a filter does with the file an option names.

Constants§

ALLOWED
The filters a filter node may run, with the options of each that name files: everything else is refused at comp check. Listed are pixel filters with no file, URL, device or plugin options (ffmpeg -h filter=NAME), plus the readers whose files are keyed. Sources (movie), command feeds (sendcmd, zmq), writers (vidstabdetect, deshake, psnr, ssim*, metadata, paletteuse), and plugin or code loaders (frei0r, ladspa, lv2, dnn_*, libvmaf, libplacebo, program_opencl, …) aren’t, so they’re refused.
FILTER_TABLE_REVISION
The statefulness table’s revision, in the key of every stateful node: bump it when reach changes, which re-renders stateful nodes only.
MAX_ROLL
The largest pre-roll or post-roll, frames.

Functions§

changes_timing
Whether filter name changes frame timing or count (minterpolate, framerate, mpdecimate, decimate, pullup).
labelled
Whether graph names its ends [in] and [out]: it has several chains or link labels, as libavfilter reads it (a quoted or escaped ; or [ is text, not structure).
parse
The filters of a graph, link labels dropped, read as libavfilter reads them.
reach
One filter’s reach, from the statefulness table (unknown filters are stateless).

Type Aliases§

FileOpt
An option naming a file: its names (aliases), its positional index (counting an option and its aliases once, as libavfilter does), what the filter does with it.