Skip to main content

mediaframe/source/
yuva444p.rs

1//! YUVA 4:4:4 planar (`AV_PIX_FMT_YUVA444P`) — 8 bit per sample.
2//!
3//! Storage mirrors [`super::Yuv444p`] (Y / U / V each full-resolution
4//! `u8`) plus a fourth full-resolution alpha plane (1:1 with Y).
5//!
6//! Per-row dispatcher hands the alpha source straight through to the
7//! `yuv_444_to_rgba_with_alpha_src_row` SIMD/scalar paths — same shape
8//! as the 4:2:0 sibling [`super::Yuva420p`]. Per-arch SIMD coverage is
9//! shipped together with the format wiring (Ship 8b‑6).
10
11use crate::frame::Yuva444pFrame;
12
13walker! {
14  planar4 {
15    /// Zero‑sized marker for the YUVA 4:4:4 **8‑bit** source format.
16    #[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash)]
17    marker: Yuva444p,
18    frame: Yuva444pFrame<'_>,
19    row: Yuva444pRow,
20    sink: Yuva444pSink,
21    walker: yuva444p_to,
22    elem_type: u8,
23    chroma_h: full,
24    chroma_v: full,
25    row_doc: "One output row of a [`Yuva444p`] source.",
26    walker_doc: "Walks a [`Yuva444pFrame`](crate::frame::Yuva444pFrame) row by row into the sink.",
27  }
28}