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 atrate, stamped frompts, throughgraph; keep its outputsstorein a lossless intermediate named bykey; show the intermediate’s framesshow. - 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
reachchanges, which re-renders stateful nodes only. - MAX_
ROLL - The largest pre-roll or post-roll, frames.
Functions§
- changes_
timing - Whether filter
namechanges frame timing or count (minterpolate,framerate,mpdecimate,decimate,pullup). - labelled
- Whether
graphnames 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.