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}