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.

[参考译文] TDA4VH-Q1:SDK 11_00_00_08 编码驱动程序问题

Guru**** 2460850 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1544129/tda4vh-q1-sdk-11_00_00_08-encode-driver-issue

器件型号:TDA4VH-Q1


工具/软件:

您好、TI 专家、

在 SDK 11.0 上、使用本机 v4l2 框架。

我们使用之前的程序(SDK 9.1 是正常程序)来验证编码驱动程序、并发现输出数据存在问题。

输出数据的第一个帧的时间戳与第二个帧的时间戳相同。

我在驱动程序中打印了“Done_list",“,发现、发现有两个时间戳。 这不正确。

[ 1091.239279] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=243226
[ 1091.250212] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=243226
[ 1091.261145] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=614500
[ 1091.272078] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=614500

在此函数 (wave5_VPU_enc_finish_encode) 中、src 和 dst 将添加到 DONE_list。 但是、此函数将被调用两次。

第二次调用时、src 为 NULL、不会添加到 DONE_LIST 中。 但是、dst 再次添加到 DONE_LIST 中、最终导致 DONE_LIST 中出现以下情况:

我们的使用方法可能是对多个项目进行排队、然后一次性将它们全部排入队列、而不是逐一排入队列。

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

    您好:  

    您是否尝试过使用标准 GStreamer 流水线进行复制? 您能告诉我您的结果吗?
    此外、您是否在任何稍后的 SDK 上看到了这种情况? (10.x 或 11.x)  

    谢谢您、
    Sarabesh S.

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

    我们以前没有使用过 GStreamer。 能否提供测试计划? 10.x 尚未经过测试、9.1 正常、11.0 有问题。

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

    GStreamer 是我们建议用户在与编解码器连接时使用的标准应用层。 您可以在我们的 SDK 文档(此处)中找到更多信息和一些示例流水线。 对于较低级别的 gstreamer、我会让您参阅 gstreamer 文档(此处)。 这将提供比我能提供的更深入的解释。

    现在、您可以使用此示例进行测试、并告诉我您的结果:

    •  gst-launch-1.0 videotestsrc pattern=ball num-buffers=700! video/x-raw、格式=NV12、宽度=1920、高度=1080、帧速率=30/1! v4l2h265enc! h265parse! filesink location=/root/pattern-ball-demo.h265

    谢谢您、
    Sarabesh S、  

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

    使用 GStreamer、我们测试了 pattern=ball、但图像有时似乎不正确。 附件为 H265 文件。 请在查看前删除“.avi"扩展“扩展名。。 e2e.ti.com/.../pattern_2D00_ball_2D00_demo.h265.avi

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

    使用 HEVC 分析工具、发现了两个问题:
    1. Access UD 是新添加的,它在以前的 SDK 中不存在。
    2. Slice_pic_order_cnt_lsb 偶尔会跳转,导致数据异常。 在驱动程序的代码中、可以看到这一点 Slice_pic_order_cnt_lsb 应从缓冲区中检索、而不是通过读取硬件寄存器来获得。

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

    您好:  

    如果您的浏览器没有自动跳转,请点击这里 您能否将文件添加到此 TI-drive:  

    tidrive.ext.ti.com/.../22a6840f-8047-4485-9ce1-d3cb15a3193f

    访问代码: A6\3V9B

    谢谢、
    Sarabesh S.

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

    已上传。 请检查它。

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

    听起来不错、我们会尽快进行检查并提供更新。  

    谢谢、
    Sarabesh S.

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

    您是否已确定问题的原因? 何时可以更新?

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

    尊敬的 Zewen:

    很抱歉耽误你的时间。 到目前为止、我无法重现这个问题。 您是否做出了我应该了解的任何更改? 我还将检查  帧之间的 slice_pic_order_cnt_lsb 值。

    谢谢、
    Sarabesh S.

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

    尊敬的 Zewen:  

    尝试使用默认 SDK 11.0 在我的环境中复制、但我尚未看到此问题。 我将在下面附加我的 H265 流水线和输出:  

    • gst-launch-1.0 videotestsrc pattern=ball num-buffers=700! video/x-raw、格式=NV12、宽度=1920、高度=1080、帧速率=30/1! v4l2h265enc! h265parse! filesink location=/root/pattern-ball-demo.h265

    • e2e.ti.com/.../pattern_2D00_ball_2D00_demo.h265

    在此 H265 输出中、我看到每一帧都有 slice_pic_order_cnt_lsb 增量。

    此致、
    Sarabesh S.