器件型号: J784S4XEVM
Thread 中讨论的其他器件: AM69
电路板:AM69-SK (J784S4)
SDK:ti-processor-sdk-linux-edgeai-j784s4-evm-11_00_00_08
内核:6.12.57
您好、
我正在实现零复制视频显示:Wave5 H.264 解码器→DMABUF 导出→TIDSS DRM 导入→HDMI 输出。
GStreamer 流水线正常工作:
gst-launch-1.0 udpsrc port=5004 caps='application/x-RTP、……' \
! rtph264depay! h264parse! v4l2h264dec! kmssink driver-name=tidss sync=false
我的自定义 V4L2/DRM 应用程序使用完全相同的 ioctl 序列(通过 strace 比较进行验证):
Wave5 捕获缓冲区 (V422_MEMORY_MMAP) 上的 VIDIOC_EXPBuF
2. DRM_IOCTL_PRIME_FD_TO_HANDLE
3. drmModeAddFB2 (w=1920、h=1088、NV12、偏移[1]=步幅*1088、间距=1920)
4.覆盖平面上的 drmModeSetPlane
结果:显示屏显示静态对角渐变(白色→紫色)、而不是解码的视频。
我已验证的内容:
-解码缓冲器的 CPU mmap→原始 NV12 转储→ffmpeg 转换=颜色正确的图像
- wave5 使用 VB2_dma_contig_memops(连续的 dma 存储器)
- DRM 内核调试:dma_addr = 0xF97600000、大小= 3133440(导入成功)
- AddFB2 参数与 GStreamer 完全匹配(通过 gst_debug=kmssink:7 + strace -f)
-尝试:各种 UV 偏移、平面类型、颜色属性、FD 模式、EXPBUF 计时—所有的梯度都相同
-性能良好: 30fps, 10ms/帧
问题:
1. wave5 VPU 和 TIDSS 之间的 DMABUF 零复制是否存在任何已知限制或所需的初始化步骤
有何不同?
2. TIDSS 是否需要特定的 CMA 区域配置来访问 Wave5 解码器输出缓冲区?
3.是否有演示 wave5→TIDSS DMABuF 显示的参考应用(GStreamer 除外)?
谢谢你。