Expand description
The ffcine render path: Pipeline, Grade and EncoderSettings (backend-neutral),
and backend::Ffmpeg (feature ffmpeg), which runs them on ffmpeg’s libav* and libplacebo/Vulkan with frames
kept in VRAM end to end.
Re-exports§
pub use bake::Bake;pub use blend::BlendMode;pub use encode::Codec;pub use encode::EncoderSettings;pub use encode::PixelFormat;pub use encode::RateControl;pub use grade::Border;pub use grade::ColorMapTuning;pub use grade::ColorOverride;pub use grade::Crop;pub use grade::Deband;pub use grade::Dither;pub use grade::DitherMethod;pub use grade::GamutMapping;pub use grade::Grade;pub use grade::Hook;pub use grade::LutStage;pub use grade::ParamTrack;pub use grade::Scaler;pub use grade::Scaling;pub use grade::Size;pub use grade::ToneMapping;pub use grade::Warp;pub use layer::Image;pub use layer::Layer;pub use layer::LayerSource;pub use layer::STILL_PIXELS;pub use layer::STILL_SIDE;pub use layer::Scene;pub use layer::still_fits;pub use overlay::Mask;pub use overlay::Motion;pub use overlay::Overlay;pub use overlay::OverlayPart;pub use pipeline::Backend;pub use pipeline::Decode;pub use pipeline::Device;pub use pipeline::FrameContext;pub use pipeline::Pipeline;pub use pipeline::RunStats;pub use pipeline::Stage;pub use profile::DeliveryProfile;
Modules§
- backend
- Backends. Only ffmpeg (libav* I/O) + libplacebo (Vulkan processing) exists today.
- bake
- The LUT baker: a camera LUT, a grade LUT and the look (
LookParams) evaluated over a lattice into one 3D LUT, with no ffmpeg in the loop. The result goes on the source as onepl_custom_lut(or out as a.cubefor other tools), in the order the GPU pass runs them: camera LUT, grade LUT, look. - blend
- Blend modes for
crate::Layers (ffcine.comp.blend/1mode, Resolve’s composite modes): the W3C compositing formulas (Photoshop’s where W3C has none), as a CPU reference and as the GLSL the backend’s composite pass runs. Both work on encoded RGB in 0..1 (the output’s transfer), the backdrop opaque:out = (1 − a) · b + a · B(b, s)withathe layer’s alpha times its opacity. - encode
- Encoder settings, backend-neutral (names follow ffmpeg’s encoder options).
- extra
- A grade’s raw ffmpeg filters (
extra, after the grade) as GPU hooks: the colour filters the prototype’s edits use, parsed from ffmpeg’s filter syntax (name=k=v:k=v, positional arguments, comma-separated chains) and run asPREOUTPUThooks in chain order, so nothing falls back to the CPU. - filter_
node - 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. - grade
- The grade: everything libplacebo does to a frame between decode and encode.
- layer
- Picture layers composited over a pipeline’s graded frames in the same GPU pass: split-screen panels, picture-in-picture, stickers and logos, the incoming side of a transition.
- overlay
- Overlays composited onto the output in the grade pass (text cards, captions), backend-neutral.
- pipeline
- A pipeline: one input, a chain of GPU stages, one encoded output.
- profile
- Delivery render profiles: the encoder and output size for a kind of copy (
DeliveryProfile). - shaders
- libplacebo user shaders (mpv
.hookformat) generated by ffcine.
Structs§
- Color
Space - A complete colour description, as tagged on a stream or requested for an output.
- HdrMetadata
- Static HDR metadata written with an HDR deliverable: the SMPTE ST 2086 mastering display and
the CTA-861.3 content light levels (HEVC SEI, and
mdcv/clliin MP4 and MOV). - Lut
- A 3D LUT:
size^3 RGB entries, red varying fastest (.cubeorder). - Media
Info - Rational
- An exact ratio (frame rates, time bases).
Enums§
- Error
- Errors from ffcine and its backends.
- LutType
- What colour space a LUT’s input/output live in (libplacebo’s
lut_type).