我正在尝试按照本手册中的说明通过 VPU 包装器进行编码,但是 VPU_EncEncodeFrame() 返回 2:INVALID_PARAM,而控制台上没有显示任何其他错误日志。
1. 谁能告诉我如何调试以知道哪个参数导致了这个错误?
2. VPU_EncEncodeFrame() 的参数是这里唯一有问题的参数吗?所以我不需要检查传递给之前调用的 API 的参数,例如 VPU_EncOpenSimp()?
3.检查vpu_wrapper.c,我看到一些日志是通过 VPU_LOG() 或 VPU_ENC_LOG() 输出的,可以从应用程序端启用此功能吗?如果启用它,日志就会直接发送到控制台,这种假设正确吗?
4.有没有通过 VPU 包装器实现编码的示例代码,特别是针对 imx8mp?
如有任何回复,我们将不胜感激!
你好,joanxie,谢谢你的跟进。
事实证明,问题在于由 VPU_EncOpenSimp() 创建的第一个参数 VpuEncHandle 没有正确传递给 VPU_EncEncodeFrame()。
我们过于关注错误代码的术语“PARAM”,认为它与 VpuEncOpen Param Simp 有关,并假设将针对 VpuEncHandle 设置单独的错误代码(3:INVALID_HANDLE)。
抱歉,我错过了这次更新,我认为你需要添加一些额外的插件来支持 jpeg 到 yuv,你可以先尝试这个命令来显示 jpeg,我们之前测试过这个
gst-启动-1.0-v filesrc
你好,谢谢你的回复!
>你的用例是什么?
我正在尝试制作一个可以在 imx8mp evk 上运行的应用程序,它将单个图像文件(被认为是 YUV420 格式)编码为 H264 格式。
基本上,我只是想先看看编码是如何工作的,因为我对此没有任何背景知识。
该输入图像文件通过以下命令创建:
gst-启动-1.0filesrc 位置="raw.jpg"!jpegdec !文件接收器位置="image_file.yuv"
原始.jpg:在 Paint 上创建的 JPEG 文件(1920x1080)
图像文件.yuv:我的应用程序的输入文件我相信/希望是 YUV420 格式
>你下载了 nxp yocto bsp 吗?
是的,我正在使用 yocto-real-time-edge bsp。
>您指的是什么源代码?
没有,我只是参考 VPU 参考手册,这就是为什么我在原始帖子中包含了同样的问题。
根据手册,传递给 VPU_EncOpenSimp 和 VPU_EncEncodeFrame 的参数大多设置为自动值(0 或 -1)。
其他参数基于输入图像文件,例如大小。
你的用例是什么?你下载了NXP Yocto BSP吗?你指的是什么源代码?