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.

[参考译文] SK-AM62A-LP:SDK 09.00.01 ->09.01.00中断对 gstreamer v4l2块的 DMA 更改

Guru**** 2551110 points
Other Parts Discussed in Thread: AM62A7

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1356236/sk-am62a-lp-sdk-09-00-01---09-01-00-breaking-dma-changes-to-gstreamer-v4l2-blocks

器件型号:SK-AM62A-LP
主题中讨论的其他器件:AM62A7

您好!

在评估 AM62A7期间、我发现在 SDK 版本09.00.01和09.01.01之间、DMA IO 模式似乎发生了变化/破坏

我将使用 IMX219摄像头以完整的 DMA 流水线测试编码器延迟、我要运行以下命令

GST_DEBUG_FILE=/test/csi_h264.log gst_debug_no_color=1 gst_debug="gst_Tracer:7" gst_tracer="delay (flags=eliter+pipeline)" gst-launch-1.0 v4l2src device=/dev/video3 io-mode=dmabuf-import! 视频/x-Bayer、宽度=1920、高度=1080、帧速率=30/1、格式=rggb10 
! tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="sensor_Sony_IMX219_Rpi" dcc-isp-file=/opt/imaging/imx219/linear/dcc_viss_10b_1920x1080.bin sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_10b_1920x1080.bin format-msb=9! video/x-raw、format=NV12、width=1920、height=1080、framerate=30/1
! v4l2h264enc extra-controls="控制、FRAME_LEVEL_CONTROL_ENABLE=1、VIDEO_BITRACE_MODE=1、VIDEO_BITRACE=20000000、h264_PROFILE=1、h264_LEVEL=15、h264_entropy_mode=1、h264_I_FRAME_PERIO=0、VIDEO_SOP=0、VIDEO_GOP_SIZE=0"输出模式! fakesink sync=false

使用 SDK 09.00.01时、此命令可以正常运行、并且我得到~11ms 的编码器块延迟、吞吐量稳定锁定在30fps (摄像头的帧速率)。

当使用 SDK 09.01.00运行同一命令时、该命令不起作用、gstreamer 流水线会正确设置、但时间戳会在00.00.01处冻结、不再继续。
如果我将 v4l2src 块 IO 模式更改为仅 dmabuf、管道将开始工作、但编码器块延迟会变得非常可怕(28.65ms 的吞吐量仅为16fps、v4l2src 输出延迟约为60ms)。

这是一个可以在以后的 SDK 版本中修复的已知问题吗? 对流水线延迟的影响非常大。

此致、
马特

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

    您好、Matt、

    您能否试用最新的9.2 SDK、并告知我们行为是相同还是已修复?

    此致、

    苏伦

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

    一定要来试试!

    在边注上、您是否有任何不使用 gstreamer 而使用编码器的工具(通过 v4l2包装器或其他工具)? 我们目前有点厌倦了 gstreamer 或编码器本身如何根据视频源动态更改使用的缓冲器数量。 我们想尝试在不使用 gstreamer 的情况下进行编码、而不是更直接地与编码器驱动器本身进行交互、您有可以使用的任何工具吗?

    此致、

    马特

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

    很遗憾、SDK 9.2似乎会在 ISP 插件中损坏某些内容、至少对于此命令:

    root@am62axx-evm:/test# GST_DEBUG_FILE=/test/csi_h264.log GST_DEBUG_NO_COLOR=1 GST_DEBUG="GST_TRACER:7" GST_TRACERS="latency(flags=element+pipeline)" gst-launch-1.0 v4l2src device=/dev/video3 io-mode=dmabuf ! video/x-bayer, width=1920, height=1080, framerate=30/1, format=rggb10 ! tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_SONY_IMX219_RPI" dcc-isp-file=/opt/imaging/imx219/linear/dcc_viss_10b_1920x1080.bin sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_10b_1920x1080.bin ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! v4l2h264enc extra-controls="controls,frame_level_rate_control_enable=1,video_bitrate_mode=1,video_bitrate=20000000,h264_profile=1,h264_level=15,h264_entropy_mode=1,h264_i_frame_period=0,video_gop_size=0" output-io-mode=dmabuf-import ! fakesink sync=false
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=7) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
       190.941482 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
       190.941632 s:  VX_ZONE_INIT:Enabled
       190.941667 s:  VX_ZONE_ERROR:Enabled
       190.941693 s:  VX_ZONE_WARNING:Enabled
       190.943266 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
       190.943778 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Redistribute latency...
       191.049373 s:  VX_ZONE_ERROR:[ownContextSendCmd:868] Command ack message returned failure cmd_status: -10
       191.049425 s:  VX_ZONE_ERROR:[ownNodeKernelInit:584] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_88
       191.049448 s:  VX_ZONE_ERROR:[ownNodeKernelInit:585] Please be sure the target callbacks have been registered for this core
       191.049469 s:  VX_ZONE_ERROR:[ownNodeKernelInit:586] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
       191.049493 s:  VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.hwa.vpac_viss ... failed !!!
       191.049522 s:  VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed
       191.049542 s:  VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed
       191.050448 s:  VX_ZONE_ERROR:[ownReleaseReferenceInt:601] Invalid reference
    ERROR: from element /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0: Unable to init TIOVX module
    Additional debug info:
    ../git/gst-libs/gst/tiovx/gsttiovxmiso.c(1512): gst_tiovx_miso_negotiated_src_caps (): /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0
    Execution ended after 0:00:00.092400186
    Setting pipeline to NULL ...
    Freeing pipeline ...
       191.117548 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94cd5350 of type 00000816 at external count 1, internal count 0, releasing it
       191.117613 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=user_data_object_77) now as a part of garbage collection
       191.117815 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94cd5570 of type 00000816 at external count 1, internal count 0, releasing it
       191.117853 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=user_data_object_78) now as a part of garbage collection
       191.118205 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94d745f8 of type 00000813 at external count 1, internal count 0, releasing it
       191.118257 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=object_array_80) now as a part of garbage collection
       191.118321 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94cd59b0 of type 00000816 at external count 1, internal count 0, releasing it
       191.118377 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=user_data_object_81) now as a part of garbage collection
       191.118465 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94d74798 of type 00000813 at external count 1, internal count 0, releasing it
       191.118516 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=object_array_82) now as a part of garbage collection
       191.118587 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94ce2540 of type 00000817 at external count 1, internal count 0, releasing it
       191.118631 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=raw_image_83) now as a part of garbage collection
       191.119971 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94d74938 of type 00000813 at external count 1, internal count 0, releasing it
       191.120036 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=object_array_84) now as a part of garbage collection
       191.120107 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94cd5bd0 of type 00000816 at external count 1, internal count 0, releasing it
       191.120151 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=user_data_object_85) now as a part of garbage collection
       191.120216 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94d74ad8 of type 00000813 at external count 1, internal count 0, releasing it
       191.120259 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=object_array_86) now as a part of garbage collection
       191.120325 s:  VX_ZONE_WARNING:[vxReleaseContext:1144] Found a reference 0xffff94d07708 of type 0000080f at external count 1, internal count 0, releasing it
       191.120367 s:  VX_ZONE_WARNING:[vxReleaseContext:1146] Releasing reference (name=image_87) now as a part of garbage collection
       191.121572 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
       191.126441 s:  VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 15 alloc's of 7695051 bytes
    DDR_SHARED_MEM: Free's : 15 free's  of 7695051 bytes
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!

    如果您以前遇到过这个问题、请告诉我!

    此致、

    马特  

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

    Matt、

    我的确使用9.2 SDK 运行了 GStreamer 流水线、但没有看到任何此类错误、并成功运行。  

    您是否在每次运行时都看到了这些错误日志?  

    此致、

    苏伦