主题中讨论的其他器件:TVP5158、 UKERNEL
我们有一个将 gstreamer 与 VPE 和 Wayland/Weston 结合使用的应用程序。
以下管道工作正常:
GST-LAUNCH-1.0视频测试 src! 'video/x-raw、format=(string) YUy2'! VPE! 排队! kmsink
这也起作用:
GST-LAUNCH-1.0视频测试 src! 'video/x-raw、format=(string) YUy2'! 排队! 陆上接收机
因此、我可以在没有 Weston 的情况下使用 VPE、也可以在没有 VPE 的情况下使用 Weston、没问题。 但是、这不起作用:
GST-LAUNCH-1.0视频测试 src! 'video/x-raw、format=(string) YUy2'! VPE! 排队! 陆上接收机
错误如下所示…
(笑声)
[3826.216613] PVR_K:(错误):SGXOSTimer () Detected SGX locked (0x9c46任务)
[3826.223541] PVR_K:HWRecoveryResetSGX:触发 SGX 硬件恢复
[3826.230163] PVR_K:SGX 调试(SGX_DDK sgxddk 1.17@4948957)
[3826.235687] PVR_K:(错误):SGX 寄存器基址(线性): 0x11863908
[3826.242736] PVR_K:(错误):SGX 寄存器基址(物理):0x56000000
[3826.249816] PVR_K:运行 SGXREG 调试脚本:
(笑声)
(笑声)
[3826.785156] PVR_K:检查 EDM 存储器上下文(索引= 7、PD = 0x83d12000)
[3826.792175] PVR_K:找到了页面故障0x108ba000的 MMU 上下文
[3826.798034] PVR_K:GPU 存储器上下文用于 PID=130 (systemd-udevd)
[3826.804443] PVR_K:未找到 PDE
[3826.807617] PVR_K:检查 TA 存储器上下文(索引= 2、PD = 0x85c36000)
[3826.814514] PVR_K:找到页面故障0x108ba000的 MMU 上下文
[3826.820404] PVR_K:GPU 存储器上下文用于 PID=1601 (Weston)
[3826.826263] PVR_K:PDE 有效:Pte = 0x00000000 (PhysAddr = 0x00000000、无效)
(笑声)
我们有一个基于 dra7-EVM 参考设计的定制板。 BSP 基于 Arago (Yocto 3.1/德南)。 rootfs 是'tisdk-default-image'。
其动机是我们有一个类似于 TVP5158参考设计的电视解码器(TW2964)。 它在单个8位 VIP 端口上多路复用4个视频输入通道、每个通道采用 YCbCr 格式。 (也称为 YUYV、可能是 YUY2、也可能是 UYVY。) 但 Weston 拒绝接受 YUYV 格式:如果我们使用 dmabuftest 进行尝试、则会得到以下错误:
dmabuftest -w 720x288 - multi2 -d /dev/video1 -c 720x288@yuV -d /dev/video2 -c 720x288@yuV
此错误出现在/var/log/weston.log 中:
CreateImageSharedFromNames:不支持的 DRI FourCC (fourcc = 0x56595559)
[02:56:15.047] libwayland:客户端通信错误(pid 1619)
它似乎是由/usr/lib/dri/pvr_dri.so 生产的、它属于不透明的 TI-SGX-DDK 封装。 显然、我们必须使用 VPE 将 YUYV/YUY2输入格式转换为其他可接受的格式、例如 NV12、然后才能将其馈送到 Weston。 这就是导致 gstreamer + VPE + Weston 组合的原因、这会导致上述错误。