| 8 | /// 使用生命周期 'a 绑定到底层 Ring Buffer,实现零拷贝。 |
| 9 | #[derive(Debug)] |
| 10 | pub struct Frame<'a> { |
| 11 | /// 原始图像数据切片 |
| 12 | pub data: &'a [u8], |
| 13 | |
| 14 | /// 图像宽度 (Pixels) |
| 15 | pub width: u32, |
| 16 | |
| 17 | /// 图像高度 (Pixels) |
| 18 | pub height: u32, |
| 19 | |
| 20 | /// 【关键】跨距/步长 (Bytes per line) |
| 21 | /// GPU 和 SIMD 往往要求 256/512 字节对齐,Stride 可能大于 width * bpp |
| 22 | pub stride: usize, |
| 23 | |
| 24 | /// 像素格式 (含 Bayer, MJPEG 等) |
| 25 | pub format: PixelFormat, |
| 26 | |
| 27 | /// 帧索引 (用于底层 Buffer 回收或丢帧统计) |
| 28 | pub sequence: u64, |
| 29 | |
| 30 | /// 时间戳集合 (工业级同步核心) |
| 31 | pub timestamp: Timestamp, |
| 32 | |
| 33 | /// 帧级元数据 (曝光、增益、GPIO状态) |
| 34 | pub metadata: FrameMetadata, |
| 35 | |
| 36 | /// 内部句柄 (用于实现 Backend 特有的互操作,如 export_dmabuf) |
| 37 | pub backend_handle: &'a dyn BackendBufferHandle, |
| 38 | } |
| 39 | |
| 40 | #[derive(Debug, Clone, Copy)] |
| 41 | pub struct Timestamp { |
nothing calls this directly
no outgoing calls
no test coverage detected