2个不稳定版本

0.2.0 2024年7月29日
0.1.0 2023年10月1日

#191 in Unix API

Download history 132/week @ 2024-07-27 5/week @ 2024-08-03

137每月下载量

MPL-2.0许可证

135KB
3.5K SLoC

Onix

crates.io docs.rs License Join the XMPP chat at onix@muc.linkmauve.fr

Onix是一个图像格式库,它依赖于使用V4L2 API的硬件解码器和编码器。它目前支持JPEG和WebP(有损、不透明、静态),并将支持AVIF。

我已经在AllWinner平台上使用cedrus驱动程序进行了测试,即A10(Olimex Lime)、A20(Olimex Lime2)和A64(Pine64 PinePhone),以及RockChip RK3568(ODROID-M1)和RK3588(Radxa Rock 5B)上的hantro驱动程序。对于支持硬件VP8或JPEG的其他平台的额外测试将非常受欢迎,尤其是在不同的驱动程序上!

display-to-drm示例在当前TTY中显示一张图片五秒钟,如果没有运行组合器。display-to-wayland示例使用Wayland显示图片,如果组合器正在运行并支持wp_viewporterzwp_linux_dmabuf_v1协议。dump-to-file示例以原始格式输出到文件(包括如果解码器需要的话填充),而jpeg-encoder示例输出到压缩文件。未来的示例将包括如何导入EGL或Vulkan。

按SoC支持的格式

SoC JPEG WebP
全志A10 解码(仅4:2:0) 解码
全志A20 解码(仅4:2:0) 解码
全志A64 解码 解码
瑞芯RK3568 编码 解码损坏
瑞芯RK3588 编码 解码损坏

如何使用

克隆仓库

% git clone https://git.linkmauve.fr/onix.git

构建

% cd onix
% cargo build --release --examples

然后,在TTY中运行

% target/release/examples/display-to-drm <image.webp>

或者在Wayland中

% target/release/examples/display-to-wayland <image.jpeg>

如果你没有显示硬件,你还可以将其转储到文件中

% target/release/examples/dump-to-file <image.jpeg> <output.nv12>

依赖项

~2–10MB
~112K SLoC