2个不稳定版本
0.2.0 | 2024年7月29日 |
---|---|
0.1.0 | 2023年10月1日 |
#191 in Unix API
137每月下载量
135KB
3.5K SLoC
Onix
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_viewporter
和zwp_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