7个版本
0.0.7 | 2024年8月2日 |
---|---|
0.0.6 | 2024年1月5日 |
0.0.5 | 2023年11月8日 |
0.0.4 | 2023年7月26日 |
0.0.1 | 2023年1月17日 |
#41 in 硬件支持
3,048 每月下载量
在 cros-codecs 中使用
1MB
24K SLoC
Libva Rust 包装器
该crate提供轻量级和(希望)安全的libva抽象,用于在Rust代码中(具有最少的依赖项)。它是为ChromeOS开发的,但没有ChromeOS特定的或依赖项,因此可以在任何地方使用。
依赖项
在链接时需要本机 libva 库,因此请确保已安装您的发行版的 libva-dev
或等效软件包。还需要与您的硬件对应的VA-API驱动程序:对于英特尔硬件,将是 intel-media-driver,而对于AMD硬件,则依赖于 Mesa。
查看是否一切正常的一个简单方法是运行与 libva-utils
打包的 vainfo
工具或某些发行版中的独立软件包。 vainfo
将打印VA-API版本、驱动程序字符串以及支持配置文件和端点的列表,即
vainfo: VA-API version: 1.13 (libva 2.13.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.2.2 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
etc
对于解码,所需的配置文件必须在 VAEntrypointVLD
下受支持。例如,为了解码VP8媒体,必须在 vainfo
的输出中存在此行
VAProfileVP8Version0_3 : VAEntrypointVLD
而要解码H264主配置文件媒体,则必须存在此行
VAProfileH264Main : VAEntrypointVLD
有关VA-API及其在ChromeOS中的使用的更多信息,请参阅 此指南。
使用
该crate的名称为 cros-libva
,以突出其源自ChromeOS并且不是官方绑定。为了便于使用,建议在您的 Cargo.toml
中使用以下行将其重命名为 libva
libva = { package = "cros-libva", version = "0.0.1" }
测试
关于如何使用此crate的简要介绍,请参阅位于 src/lib.rs
下的 libva_utils_mpeg2vldemo
测试。您还可以通过运行它来快速测试MPEG2解码。
cargo test -- --ignored libva_utils_mpeg2vldemo
致谢
此crate的第一个版本由Daniel Almeida编写,并在被拆分之前托管在crosvm存储库中。
依赖项
~0.4–1MB
~21K SLoC