#![cfg(feature = "nvidia")]
use codec::encode::EncoderConfig;
use codec::encode::nvenc::NvencEncoder;
#[test]
fn nvenc_capability_query_validates_av1_support() {
let cfg = EncoderConfig {
width: 1280,
height: 720,
..Default::default()
};
match NvencEncoder::new(cfg, 0) {
Ok(_) => {
eprintln!("NVENC AV1 capability validated on GPU 0 (Ada+/datacenter)");
}
Err(e) => {
let msg = e.to_string();
if msg.contains("cuInit")
|| msg.contains("cuDevice")
|| msg.contains("cuCtx")
|| msg.contains("OpenEncodeSession")
|| msg.contains("libnvidia")
|| msg.contains("NvEncodeAPI")
|| msg.contains("fn-list")
{
eprintln!("skip: no usable NVENC on GPU 0 ({msg})");
return;
}
assert!(
msg.contains("AV1") || msg.contains("10-bit") || msg.contains("maxes at"),
"expected an NVENC capability rejection, got: {msg}"
);
eprintln!("NVENC capability query rejected cleanly: {msg}");
}
}
}