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.

[参考译文] TDA4VE-Q1:J721S2 SDK 10.0 - H.264编码器在解码期间挂起

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1426720/tda4ve-q1-j721s2-sdk-10-0---h-264-encoder-hangs-during-decode

器件型号:TDA4VE-Q1

工具与软件:

我们有一个应用利用 Video 4 Linux 2 API (V4L2)将 NV12图像编码为 H.264字节流。 该应用程序在 SDK 8.2至9.2版上可以正常运行、但现在在 SDK 10.0上无法正常运行。 编码器似乎悬挂在 ioctl 上 VIDIOC_DQBUF。 以下是 ioctls 的调用顺序:

节点创建:

VIDIOC_S_EXT_CTRLS

VIDIOC_G_FMT

VIDIOC_S_FMT

VIDIOC_S_PARM

VIDIOC_REQBUFS (o)

VIDIOC_QUERYBUF (o)

VIDIOC_REQBUFS (c)

VIDIOC_QUERYBUF (c)

节点进程:

VIDIOC_QBUF (o)

VIDIOC_QBUF (c)

VIDIOC_STREAMON (o)

VIDIOC_STREAMON (c)

VIDIOC_DQBUF (c)

VIDIOC_DQBUF (o)

该应用程序悬挂在第一个帧和第一个 DQBUF 上。 我们将其设置 GOP_SIZE 为0和 I_PERIOD 0。 我们只能设置这些控制加上比特率。 SDK 10.0中对编码器驱动程序进行的任何更改是否可能导致了此问题? 是否有必须设置的新控件或变量? 节点已复制、但节点创建中的编码器设置仅完成一次。 工艺节点中有一个锁定机制、用于确保帧顺序。

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

    大家好、我相信10.0的更新内容有多处变化。 我最初不清楚哪些更改可能导致您的应用程序挂起。 您使用 v4l2而不使用 Gstreamer 的特定原因吗? 您是否能够使用 Gstreamer 复制该结果、您能否分享这些结果?  

    谢谢!
    Sarabesh S.