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.

[参考译文] J784S4XEVM:SDK 9.2:当一个流停止但另一个流开始流时、j721e-csi2rx 没有数据

Guru**** 2458730 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1479356/j784s4xevm-sdk-9-2-j721e-csi2rx-has-no-data-when-one-stream-stopped-but-another-stream-starts-streaming

器件型号:J784S4XEVM

工具与软件:

尊敬的 TI 专家:

我设置了具有以下拓扑的多个流:

- entity 1: 4500000.ticsi2rx (9 pads, 9 links, 2 routes)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
	routes:
		0/0 -> 1/0 [ACTIVE]
		0/1 -> 2/0 [ACTIVE]
	pad0: Sink
		[stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
		[stream:1 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
		<- "cdns_csi2rx.4504000.csi-bridge":1 [ENABLED,IMMUTABLE]
	pad1: Source
		[stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
		-> "4500000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
	pad2: Source
		[stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
		-> "4500000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE]
	pad3: Source
		-> "4500000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE]
	pad4: Source
		-> "4500000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE]
	pad5: Source
		-> "4500000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE]
	pad6: Source
		-> "4500000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE]
	pad7: Source
		-> "4500000.ticsi2rx context 6":0 [ENABLED,IMMUTABLE]
	pad8: Source
		-> "4500000.ticsi2rx context 7":0 [ENABLED,IMMUTABLE]

- entity 11: cdns_csi2rx.4504000.csi-bridge (5 pads, 2 links, 2 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
	routes:
		0/0 -> 1/0 [ACTIVE]
		0/1 -> 1/1 [ACTIVE]
	pad0: Sink
		[stream:0 fmt:SGRBG12_1X12/3848x2168 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		[stream:1 fmt:SGRBG12_1X12/3848x2168 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		<- "ldt-des":0 [ENABLED,IMMUTABLE]
	pad1: Source
		[stream:0 fmt:SGRBG12_1X12/3848x2168 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		[stream:1 fmt:SGRBG12_1X12/3848x2168 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		-> "4500000.ticsi2rx":0 [ENABLED,IMMUTABLE]
	pad2: Source
	pad3: Source
	pad4: Source

j721e-csi2吸入器 pad2和 pad 3分别路由至/dev/video4 (context0)和/dev/video5 (context1)。

我有关于在/dev/video4上捕获视频帧的问题、如下所示:

  1. 重新启动 EVM 以重新加载所有内核模块
  2. 创建 v4l2介质路由拓扑
  3. 通过 VC0和 VC1以30FPS 配置两个摄像头、以分别流式传输到/dev/video4和/dev/video5
  4. 使用 v4l2-ctrl 工具捕获/dev/video5和/dev/video5上的视频帧->/dev/video4和/dev/video5上按预期接收的数据
  5. 在/dev/video4和/dev/video5上停止捕获帧
  6. 当/dev/video5已停止->时、开始在/dev/video4上捕获帧 未接收到数据 直到我开始在/dev/video5上捕获其他摄像头的帧

您是否要指出 在/dev/video4?上采集数据时导致未收到数据的问题

谢谢!



Minh

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

    尊敬的 Minh:

    使用 v4l2-ctrl 工具在/dev/video5和/dev/video5上捕捉视频帧->/dev/video4和/dev/video5上按预期接收的数据

    是否同时从/dev/video4和/dev/video5捕获帧?  

    Unknown 说:
    当/dev/video5停止运行时、开始在/dev/video4上捕获帧-> 未接收到数据 直到我开始在/dev/video5上捕获其他摄像头的帧

    如果跳过步骤4-5、您是否能够自行从/dev/video4成功捕获帧?  

    我建议您使用 GStreamer 捕获、看看 使用 v4l2-ctl 工具时是否会出现问题。   有关一些基本的 GStreamer 流水线示例、请参阅下面链接的常见问题解答。 请告诉我、在使用 GStreamer 时问题是否仍然存在。

    [常见问题解答] SK-AM69:如何使用 GStreamer 从 CSI 传感器和 USB 摄像头进行流式传输以显示? -处理器论坛-处理器- TI E2E 支持论坛

    谢谢!

    Fabiana

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否同时从/dev/video4和/dev/video5捕获帧?  [报价]

    是的、我同时捕获了/dev/video4和/dev/video5。

    如果跳过步骤4-5、您是否能够成功从/dev/video4自行捕获帧?  [报价]

    是的、我做到了。 如果之前未捕获到、我可以/dev/video4捕获到/dev/video5。

    [报价 userid="525970" url="~/support/processors-group/processors/f/processors-forum/1479356/j784s4xevm-sdk-9-2-j721e-csi2rx-has-no-data-when-one-stream-stopped-but-another-stream-starts-streaming/5681686 #5681686"]我建议您使用 GStreamer 捕获、看看使用 v4l2-ctl 工具是否可能导致问题。   有关一些基本的 GStreamer 流水线示例、请参阅下面链接的常见问题解答。 请告诉我在使用 GStreamer 时问题是否仍然存在。

    我将尝试使用 gstreamer 来查看结果。

    有关更多详细信息、我下面列出了可以正常工作和不能正常工作的测试场景:

    1. 如果我只将摄像头配置为仅连接到/dev/video4、则/dev/video4上的捕获始终有效
    2. 如果我只将摄像头配置为仅连接到/dev/video5、则/dev/video5上的捕获始终有效
    3. 如果我只配置两个连接到/dev/video4和/dev/video5的摄像头、/dev/video4上的捕获始终只起作用
    4. 如果我只配置两个连接到/dev/video4和/dev/video5的摄像头、/dev/video5上的捕获始终只起作用
    5. 如果我只配置两个连接到/dev/video4和/dev/video5的摄像头、在/dev/video5上的捕获会起作用、然后停止在/dev/video5上捕获并开始捕获/dev/video4 不起作用(未接收到数据)。 /dev/video4上的捕获挂起 直到我开始在/dev/video5上采集数据、从而触发/dev/video4和/dev/video5接收视频流。

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

    尊敬的 Minh:

    感谢您使用 Gstreamer 尝试。 我已使用两个 USB 摄像头在 SDK 10.1上对此进行了测试、但无法重现该问题。 如果可能、您是否可以共享任何日志?

    - Fabiana.

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

    尊敬的 Fabiana:

     使用2个 GMSL 摄像头和我们的定制 MAX9296解串器板(连接到 J784S4-EVM 板上的 CSI2接口0 @0x4500000)进行的设置存在问题。

    我认为使用 USB 摄像头的测试不能重现问题,因为 CSI2内核模块 j721e-csi2rx 在使用 USB 摄像头进行测试时不使用。


    Minh

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

    尊敬的 Fabiana:

    感谢您快速回答。

    您的测试似乎在 J722s EVM 上使用带有 RPI CSI2连接器的本机 imx219摄像头。 据我所知、imx219内核模块通过在 imx219传感器中设置/清除流媒体位来启动/停止流。

    在本例中、GMSL MAX9296解串器用作 J784s4 EVM 中 GMSL 摄像头和 CSI2接口之间的桥接器。  

    由于不了解传感器供应商、解串器未设置/清除摄像头传感器中的流媒体位。 因此、解串器 会阻止/取消阻止从传感器到 CSI2接口的视频流、而实际上不会停止在传感器中流式传输。 您是否认为这会导致 CSI2接口中没有数据接收的问题?

    Minh

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

    尊敬的 Minh:

    我应该已经提到过、我使用的 imx219传感器  通过 Arducam V3Link 融合板连接到 EVM。 有关此设置的更多信息、我建议查看 E2E 常见问题解答: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1452909/faq-am67a-enabling-csi2-sensors-via-fusion-board-on-am6x

    在我们的器件支持的开箱即用传感器中、没有任何传感器使用 GMSL MAX9296解串器进行连接、因此我无法对其进行最后测试 使用 GStreamer 是否能看到类似的问题?

    谢谢!

    Fabiana

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

    我曾尝试将 gstreamer 与摄像头一起使用、但正在打开 tidss 模块、如下面的日志所示:

    gst-launch-1.0 --verbose v4l2src device=/dev/gmsl_cam3 io-mode=dmabuf-import ! video/x-bayer, width=1920, height=1280, framerate=30/1, format=rggb12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-subdev5  sensor-name=ldt-des dcc-isp-file=/opt/imaging/imx390/linear/dcc_viss.bin sink_0::dcc-2a-file=/opt/imaging/imx390/linear/dcc_2a.bin format-msb=11 ! tiovxldc dcc-file=/opt/imaging/imx390/linear/dcc_ldc.bin sensor-name=ldt-des sink_0::pool-size=8 c::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! kmssink sync=false driver-name=tidss
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=6) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
     57459.851045 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
     57459.851136 s:  VX_ZONE_INIT:Enabled
     57459.851155 s:  VX_ZONE_ERROR:Enabled
     57459.851171 s:  VX_ZONE_WARNING:Enabled
     57459.851649 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
     57459.851796 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
     57459.851955 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
     57459.852099 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
     57459.852119 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
     57459.852379 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    Setting pipeline to PAUSED ...
    ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: Could not open DRM module tidss
    Additional debug info:
    ../gst-plugins-bad-1.20.7/sys/kms/gstkmssink.c(850): gst_kms_sink_start (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
    reason: No such file or directory (2)
    ERROR: pipeline doesn't want to preroll.
    ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
    Additional debug info:
    ../gstreamer-1.20.7/libs/gst/base/gstbasesink.c(5878): gst_base_sink_change_state (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
    Failed to start
    ERROR: pipeline doesn't want to preroll.
    Failed to set pipeline to PAUSED.
    Setting pipeline to NULL ...
    Freeing pipeline ...
     57459.860346 s:  VX_ZONE_ERROR:[vxGetStatus:1020] Reference is NULL
     57459.860373 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
     57459.864800 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes 
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    

    我的 j784s4 EVM 使用的是基于 ti-processor-sdk-rtos-j784s4-evm-09_02_00_05-prebuild.tar.gz的自定义映像。

    不知道为什么 tidss 模块不能被打开?

    Minh

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

    尊敬的 Minh:

    您的 EVM 是否已连接到显示器? 如果不是、请在连接到流水线后再次尝试运行流水线。

    谢谢!

    Fabiana

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

    尊敬的 Fabiana:

    以上日志中的错误是通过连接到 DP0端口的显示器造成的。 有什么建议吗?

    Minh

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

    尊敬的 Minh:

    使用 media-ctl 实用程序可以将  设备拓扑中列出的实体的格式更改为相同的格式。 运行 media-ctl -p 验证每个实体的格式是否相同。 完成此操作后、重新运行 GStreamer 流水线。

    谢谢!

    Fabiana

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

    尊敬的 Fabiana:

    我尚未根据您的建议重新测试、即尚未使用 media-ctl 工具在流水线中设置正确的 PAD 格式。

    不过、我注意到您使用 IMX219摄像头进行的测试是使用 SDK 10.1完成的、而不是 SDK 9.2。

    您是否能够在最终验证 SDK 9.2的问题?

    Minh

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

    尊敬的 Minh:

    请告诉我 进行格式更改是否 可以解决您的问题。  我将 构建 SDK 9.2并运行相同的值。

    谢谢!

    Fabiana