Eyesee MPP `sample_virvi2venc`:VENC 首帧无码流、VE 无中断,求排查方向
-
使用 Eyesee MPP 的官方
sample_virvi2venc调试 VI→VENC 编码时遇到问题,想请教排查方向。运行的样例
sample_virvi:VI 可以正常启动并持续取帧。sample_virvi2venc:VI 到 VENC 的 Bind 成功,VENC 可以创建、初始化、启动。sample_venc:使用离线 NV21 输入,不经过 VI/Bind,同样没有码流输出。
为便于持续观察,
sample_virvi2venc的test_duration设为0。同时将样例中AW_MPI_VENC_GetStream()超时后的处理改为记录 warning 后继续重试,不因一次超时退出。关键日志
sample_virvi2venc:<prepare> bind vi[0-0] to venc[0] success <CedarvVideoEncInit> Venc Init success <CedarvVideoEncInit> Venc Start success <VideoEncEmptyThisBuffer> VencChn[0]: first video frame ...在用户态 encoder 的首帧路径增加临时日志后:
venc-trace[0] before VE lock, channel=0, inputId=2 venc-trace[0] VE lock acquired之后没有看到
device encode returned或VE lock released。AW_MPI_VENC_GetStream()连续超时:venc[0] get stream timeout/fail[0xa008800e], retry其中
0xa008800e是ERR_VENC_BUF_EMPTY。同时
cedar_dev的 IRQ 计数保持为 0,说明首帧没有产生 VE 硬件中断。mpp/ve调试信息按驱动提示,在样例启动前执行:
echo 1 > /sys/kernel/debug/mpp/ve停止样例后执行:
cat /sys/kernel/debug/mpp/ve内核输出:
VE: there is no any codec working currently. VE: Please run app first.想请教
sample_virvi2venc已完成 Bind、Venc Init success、Venc Start success,首帧进入encode()后却没有 VE IRQ,通常优先检查什么?sample_venc(离线 NV21)也没有输出,是否有已知的 VENC/VE 初始化或库版本配套要求?mpp/ve没有导出 proc 信息时,官方建议再抓取哪些日志、寄存器或 debugfs 节点?
完整运行日志作为附件提供
eyesee_virvi2venc_full.log
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号