This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] VPSS V4L2驱动器崩溃并发生超时

Guru**** 2931370 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/666001/vpss-v4l2-driver-crashing-with-timeout

大家好、

我使用的是 DM816x 板、执行以下步骤时遇到问题:

1) 1)使用 Gstreamer 开始回放、包括解码器、解分频器和 HD 输出

2) 2)启动一个执行多个 V4L2_BUF_TYPE_VIDEO 覆盖 ioctls 的应用程序到视频设备、以便移动屏幕上的视频位置。

1小时后、由于尝试在 M3中将缓冲区排队时发生 v4l2超时、内核转储导致回放崩溃。

是否有人遇到过类似的问题? 对该问题有任何建议或意见?

提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您正在使用什么是 EZSDK 版本。
    您使用的是什么管道?

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    1) EZSDK 版本5.05.02.00

    2) 2)流水线如下所示:

    filesrc location= test.m2t! tsdemux! 排队! h264parse config-interval=1! "video/x-h264、stream-format=(string) byte-stream"! OMX_h264dec 输入缓冲区=4输出缓冲区=10对等分配=错误! 很棒! OMX_mdeiscaler peer-alloc=false 输入缓冲区=10帧速率除数=2! v4l2sink 设备=/dev/video1 sync-true async-false enable-last-buff
    er=false QoS=false name=vsink


    test.m2t 是一个 H264 1080i 视频。


    此外、我们还在执行多项操作

    FMT.TYPE = V4L2_BUF_TYPE_VIDEO 覆盖;
    RET = ioctl (FD、VIDIOC_G_FMT、&fmt);



    RET = ioctl (FD、VIDIOC_S_FMT、&fmt);

    在自定义应用程序中、这会在运行几分钟后导致问题。

    CarlosR。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Margarita、  

      感谢您在这个问题上的帮助、Carlos 与 RidgeRun 合作、我们正共同解决这个问题。 在该项目中、我们已经在内核/GStreamer/OMX/M3/编 解码器级别解决了很多稳定性问题 、现在系统运行良好。 但是、当对 V4L2驱动器施加压力时出现的这种随机问题会导致我们遇到问题、您的帮助将非常有用。 我认为可能会发生两件事:

    a) V4L2驱动器没有足够的互斥量来保护 VPSS、并且会发生崩溃

    b) VPSS 代码有一个错误、它会崩溃。 不确定内核发送的消息是否在某个时候被破坏、VPSS 是否获得了错误的信息、或者 VPSS 是否获得了信息、但内部的指针是否被破坏(我们在过去看到过)。  

    为了检查问题是否为 b)、我们正在启用 syslink 调试、并且我们将开始调试 VPSS 驱动程序(我们有叠加代码)。 您能否在内部检查您是否掌握 a)或 b)的相关信息、以及是否可以重现此问题?  

    Carlos 将上传测试应用程序。

    谢谢、
    戴维

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:

    EZSDK 中存在问题、当 DEI 连接到解码器之后、当视频隔行且高度不是16的倍数时、在 OMX_h264dec 中还有一个问题。
    您是否已经应用了这些补丁?

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Margarita、

      不确定、能否提供补丁链接?

    戴维

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:

    没有指向修补程序的链接。
    一个位于 gstreamer OMX_h264dec 元素中。
    第二个是在 OMX_vfpc.c 文件中的覆盖包中。

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Margarita、  

      感谢你的帮助。 我很乐意尝试修补程序。 我仍然不确定这是否与我们在 V4L2中看到的驱动程序负荷过大时的超时问题有关、但我很乐意尝试它。 您是否知道在 V4L2基础上应用更多补丁来提高稳定性?

    戴维

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    很抱歉耽误你的时间。 但是、这里是覆盖包中的补丁。 应连接两个 DEI 的输出。 您可以链接您不使用的那个。 我不确定这是否能解决您的问题、但您可以尝试一下。

    e2e.ti.com/.../omx_5F00_vfpc_5F00_c.patch.txt

    关于 v4l2、因为我知道我们没有此类补丁。

    BR

    玛格丽塔