6aef03df8d
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
27 lines
1.4 KiB
Bash
Executable File
27 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Safe baseline probe — only the 3 codecs that should work on this kernel.
|
|
# HEVC SKIPPED (oopses kernel rkvdec_hevc_prepare_hw_st_rps).
|
|
# VP9 SKIPPED (mainline-rc3 RK3588 rkvdec doesn't expose V4L2_PIX_FMT_VP9_FRAME).
|
|
# AV1 SKIPPED (libva backend iter38b only probes 2 fds, not the av1-vpu-dec at /dev/media3).
|
|
echo "=== ampere baseline: libva HW decode probe (H.264 + VP8 + MPEG-2) ==="
|
|
for codec in h264 vp8 mpeg2; do
|
|
case $codec in
|
|
h264) cf=$HOME/measurements/encoded/bbb_60s_720p.h264.mp4 ; route="rkvdec /dev/video1" ;;
|
|
mpeg2) cf=$HOME/measurements/encoded/bbb_60s_720p.mpeg2.ts ; route="hantro /dev/video2" ;;
|
|
vp8) cf=$HOME/measurements/encoded/bbb_60s_720p.vp8.webm ; route="hantro /dev/video2" ;;
|
|
esac
|
|
t0=$(date +%s.%N)
|
|
out=$(LIBVA_DRIVER_NAME=v4l2_request timeout 12 ffmpeg -hide_banner -loglevel error \
|
|
-hwaccel vaapi -hwaccel_output_format vaapi \
|
|
-i "$cf" -vf "hwdownload,format=nv12" -f null - 2>&1 </dev/null)
|
|
rc=$?
|
|
t1=$(date +%s.%N)
|
|
el=$(awk "BEGIN { printf \"%.2f\", $t1-$t0 }")
|
|
status=$([ $rc -eq 0 ] && echo "OK" || echo "FAIL rc=$rc")
|
|
fps=$(echo "$out" | grep -oE "fps=[ ]*[0-9.]+" | tail -1)
|
|
frames=$(echo "$out" | grep -oE "frame=[ ]*[0-9]+" | tail -1)
|
|
err=$(echo "$out" | grep -iE "error|invalid|failed|not supported|unable" | head -1)
|
|
printf " %-6s %-25s %s elapsed=%ss %s %s %s\n" "$codec" "$route" "$status" "$el" "${frames}" "${fps}" "$err"
|
|
done
|
|
echo "=== done $(date -Iseconds) ==="
|