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.

[参考译文] Linux/AM5728:VIP 驱动程序问题

Guru**** 2601915 points
Other Parts Discussed in Thread: TVP5158, AM5728, REMOTI

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/640197/linux-am5728-vip-driver-problem

器件型号:AM5728
主题中讨论的其他器件:TVP5158ADS7846

工具/软件:Linux

您好!

TI、我在 am5728上测试了 TVP5158。  我发现我无法 单独捕获每个通道。

首先启动捕获通道1、然后开始捕获通道2。开始 捕获通道2后、通道1不正常。VIP 无法从通道1获取数据。

通道1:  

gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=-1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! 陆上接收机

通道2:

gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=-1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! 陆上接收机

我通过 VIP 驱动程序的开放调试选项进行调试,不存在来自 VIP 的 IRQ。

Echo 8 >/sys/module/ti_vip/parameters/debug

如果我使用 dmabuftest,捕获四个通道是可以的。

dmabuftest --multi4 -d /dev/video1 -c 720x288@yuV -d /dev/video2 -c 720x288@yuV -d /dev/video3 -c 720x288@yuV -d /dev/video4 -c 720x288@yuV -d -c 720x288 yuV -s 32:1920x1080

VIP 驱动程序是否有任何问题?

有什么建议吗?

BR、

Vefone

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    如果您使用这些管道:
    gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=-1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! fakesink 和
    gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=-1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! 陆上接收机
    您是否观察到问题?

    您使用的是 PSDK 版本?
    能否提供 VIP 和 gstreamer 的调试日志?

    请检查这些 e2e 线程、它们可能会有所帮助:
    e2e.ti.com/.../2034147
    e2e.ti.com/.../2192304
    e2e.ti.com/.../2149230
    e2e.ti.com/.../587937

    如果您的视频源之一是 USB 凸轮、您可以检查此线程:
    e2e.ti.com/.../581003



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

    [1238.492232] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.492239] vip2-s1:IRQ 1:处理 List1_complete
    [1238.492245] vip2-s1:VIP 缓冲区完成0xdf919800、0x0
    [1238.492254] vip2-s1:添加了下一个缓冲区
    [1238.492260] vip2-s1:start_dma:vB2 buf idx:2、dma_addr:0xbe880000
    [1238.508913] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.508919] vip2-s1:IRQ 1:处理 List1_complete
    [1238.508925] vip2-s1:VIP 缓冲区完成0xdf919a00、0x0
    [1238.508934] vip2-s1:添加了下一个缓冲区
    [1238.508940] vip2-s1:start_dma:vB2 buf idx:0、dma_addr:0xbe780000
    [1238.25593] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.525599] vip2-s1:IRQ 1:处理 List1_COMPLETE
    [1238.525605] vip2-s1:VIP 缓冲区完成0xd56b6600、0x0
    [1238.25615] vip2-s1:添加了下一个缓冲区
    [1238.25621] vip2-s1:start_dma:vB2 buf idx:1、dma_addr:0xbe800000
    [1238.542273] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.542280] vip2-s1:IRQ 1:处理 List1_complete
    [1238.542285] vip2-s1:VIP 缓冲区完成0xdf919c00、0x0
    [1238.542294] vip2-s1:添加了下一个缓冲区
    [1238.542300] vip2-s1:start_dma:vB2 buf idx:3、dma_addr:0xbe900000
    [1238.558955] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.558963] vip2-s1:IRQ 1:处理 List1_complete
    [1238.558970] vip2-s1:VIP 缓冲区完成0xdf919800、0x0
    [1238.558979] vip2-s1:添加了下一个缓冲区
    [1238.558986] vip2-s1:start_dma:vB2 buf idx:2、dma_addr:0xbe880000
    [1238.575633] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.575641] vip2-s1:IRQ 1:处理 List1_COMPLETE
    [1238.575647] vip2-s1:VIP 缓冲区完成0xdf919a00、0x0
    [1238.575656] vip2-s1:添加了下一个缓冲区
    [1238.575662] vip2-s1:start_dma:vB2 buf idx:0、dma_addr:0xbe780000
    [1238.592330] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.592337] vip2-s1:IRQ 1:处理 List1_complete
    [1238.592343] vip2-s1:VIP 缓冲区完成0xd56b6600、0x0
    [1238.592352] vip2-s1:添加了下一个缓冲区
    [1238.592359] vip2-s1:start_dma:vB2 buf idx:1、dma_addr:0xbe800000
    [1238.608993] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.609000] vip2-s1:IRQ 1:处理 List1_complete
    [1238.609007] vip2-s1:VIP 缓冲区完成0xdf919c00、0x0
    [1238.609015] vip2-s1:添加了下一个缓冲区
    [1238.609022] vip2-s1:start_dma:vB2 buf idx:3、dma_addr:0xbe900000
    [1238.625691] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.625697] vip2-s1:IRQ 1:处理 List1_complete
    [1238.625703] vip2-s1:VIP 缓冲区完成0xdf919800、0x0
    [1238.625712] vip2-s1:添加了下一个缓冲器
    [1238.625719] vip2-s1:START_DMA:VB2 buf idx:2、dma_addr:0xbe880000
    [1238.642370] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1238.642377] vip2-s1:IRQ 1:处理 List1_complete
    [1238.642382] vip2-s1:VIP 缓冲区完成0xdf919a00、0x0
    [1238.642392] vip2-s1:添加了下一个缓冲区
    [1238.642398] vip2-s1:start_dma:vB2 buf idx:0、dma_addr:0xbe780000

    从日志中可以看到、只有/dev/video2工作正常。

    如果我运行"gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=-1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! fakesink"、VIP 日志为:
    [885.844850] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.844856] vip2-s1:VIP 缓冲区完成0xee3b8400、0x0
    [885.844865] vip2-s1:丢弃帧
    [885.844869] vip2-s1:start_dma:已丢弃
    [885.861557] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.861564] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.861570] vip2-s1:VIP 缓冲区完成0xdfe03200、0x0
    [885.861580] vip2-s1:添加了下一个缓冲区
    [885.861586] vip2-s1:start_dma:vB2 buf idx:0、dma_addr:0xbe600000
    [885.878236] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.878243] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.878249] vip2-s1:VIP 缓冲区完成0xdfe03e00、0x0
    [885.878258] vip2-s1:添加了下一个缓冲区
    [885.878264] vip2-s1:start_dma:vB2 buf idx:1、dma_addr:0xbe680000
    [885.894917] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.894923] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.894929] vip2-s1:VIP 缓冲区完成0xecb41800、0x1
    [885.894934] vip2-s1:添加了下一个缓冲区
    [885.894940] vip2-s1:start_dma:vB2 buf idx:2、dma_addr:0xbe700000
    [885.911596] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.911603] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.911608] vip2-s1:VIP 缓冲区完成0xee3b8400、0x0
    [885.911618]导孔2-s1:下降帧
    [885.911623] vip2-s1:start_dma:已丢弃
    [885.928276] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.928282828284] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.928290] vip2-s1:VIP 缓冲区完成0xdfe03200、0x0
    [885.928298] vip2-s1:添加了下一个缓冲区
    [885.928305] vip2-s1:start_dma:vB2 buf idx:0、dma_addr:0xbe600000
    [885.944956] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.944963] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.944969] vip2-s1:VIP 缓冲区完成0xdfe03e00、0x0
    [885.944977] vip2-s1:添加了下一个缓冲区
    [885.944984] vip2-s1:start_dma:vB2 buf idx:1、dma_addr:0xbe680000
    [885.961653] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.961659] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.961665] vip2-s1:VIP 缓冲区完成0xee3b0c00、0x1
    [885.961670] vip2-s1:添加了下一个缓冲区
    [885.961677] vip2-s1:start_dma:vB2 buf idx:2、dma_addr:0xbe700000
    [885.978332] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x1
    [885.978338] vip2-s1:IRQ 1:处理 LIST0_COMPLETE
    [885.978343] vip2-s1:VIP 缓冲区完成0xee3b8400、0x0
    [885.978351]过孔2-s1:跌落框架
    [885.978355] vip2-s1:start_dma:已丢弃

    如果我运行"gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=-1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! landwaysink "、VIP 日志包括:
    [1037.660159] vip2-s1:start_dma:vB2 buf idx:1、dma_addr:0xbe800000
    [1037.676799] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1037.676806] vip2-s1:IRQ 1:处理 List1_complete
    [1037.676812] vip2-s1:VIP 缓冲区完成0xdfe0c600、0x0
    [1037.676827] vip2-s1:丢弃帧
    [1037.676832] vip2-s1:start_dma:已丢弃
    [1037.693511] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1037.693518] vip2-s1:IRQ 1:处理 List1_COMPLETE
    [1037.693523] vip2-s1:VIP 缓冲区完成0xec12a000、0x0
    [1037.693538] vip2-s1:添加了下一个缓冲区
    [1037.693545] vip2-s1:start_dma:vB2 buf idx:2、dma_addr:0xbe880000
    [1037.710160] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1037.710167] vip2-s1:IRQ 1:处理 List1_COMPLETE
    [1037.710173] vip2-s1:VIP 缓冲区完成0xec12bc00、0x0
    [1037.710186] vip2-s1:添加了下一个缓冲器
    [1037.710193] vip2-s1:start_dma:vB2 buf idx:0、dma_addr:0xbe780000
    [1037.72687] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1037.726879] vip2-s1:IRQ 1:处理 List1_complete
    [1037.726885] vip2-s1:VIP 缓冲区完成0xee3b1000、0x1
    [1037.726890] vip2-s1:添加了下一个缓冲区
    [1037.72689] vip2-s1:start_dma:vB2 buf idx:1、dma_addr:0xbe800000
    [1037.743522] vip2-s1:IRQ 310 VIP_INT1_STATUS0 0x4
    [1037.743528] vip2-s1:IRQ 1:处理 List1_complete
    [1037.743534] vip2-s1:VIP 缓冲区完成0xdfe0c600、0x0
    [1037.743548] vip2-s1:跌落框架
    [1037.743553] vip2-s1:start_dma:已丢弃

    它向我显示第二次捕获将使第一次捕获无效。根本案例应该是 VIP 驱动程序。我不知道有一些原因。


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

    请运行:
    echo 3 >/sys/class/video4linux/videoX/dev_debug
    您可以查看此指南以进行 VIP 调试:
    processors.wiki.ti.com/.../Linux_Core_VIP_User's_Guide
    您能否添加 GST 调试日志。
    我还将与 VIP 专家协商。

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

    您共享的日志不表明 VIP 存在任何问题。 VIP 正在接收两个通道上的中断。

    此外,dmabuftest 能够成功捕获多个通道,这也表明 VIP 驱动程序没有问题。

    我尝试了以下管道、建议 VPE 和 landsink 插件也没有问题-
    GST-LAUNCH-1.0视频测试 src! 'video/x-raw、format=(string) YUY2、width=(int) 640、height=(int) 480'! 排队! VPE! 陆上接收机和
    GST-LAUNCH-1.0视频测试 src! 'video/x-raw、format=(string) YUY2、width=(int) 800、height=(int) 480'! 排队! VPE! 陆上接收机和

    v4l2src gstreamer 插件在运行多个实例时都会出现这些问题。 您能否像 Margarita 在上述帖子中建议的那样为 v4l2src 插件以及内核日志启用调试日志-
    echo 3 >/sys/class/video4linux/videoX/dev_debug
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请像这样检查管道:
    gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=-1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! fakesink silent =false name=fakesink0 v4l2src device=/dev/video2 num-buffers=-1 IO-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 排队! fakesink silicon=false name=fakesink1 -v

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

    您好!

    玛格丽塔,仍然只有一个频道可以工作。

    以下是日志:

    e2e.ti.com/.../vip_2D00_log.txte2e.ti.com/.../gst_2D00_log.txt

    BR,

    Vefone

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

    您好!

    Manisha,

    我认为原因是 VIP 和 vpdma。

    第一个测试:

    在使用以下命令开始四通道捕获后、我禁用 TVP5158的像素时钟输出。

    gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=-1! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! fakesink

    gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=-1! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! fakesink

    gst-launch-1.0 v4l2src device=/dev/video3 num-buffers=-1! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! fakesink

    gst-launch-1.0 v4l2src device=/dev/video4 num-buffers=-1! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! fakesink

    然后 、我启用 TVP5158的像素时钟输出。通过这种方式、我可以捕获四个通道。然后我终止一  个 GS-launch-1.0过程(四个中的一个),其他通道将无法正常工作。

    我想:  

    在所有通道上进行流式传输后、似乎需要让数据输入。

    2.如果我停止一个通道捕获,则数据 将被解除(vpdma 列表不能正常),则 VIP 无法获取数据(没有发生 IRQ)。

     第二 项测试:

    我使用两个 TVP5158模块、一个连接到 vin3a、一个连接到 vin4a。 第一个 tvp5158的四通道(/dev/video1、/dev/video2、/dev/video3、/dev/video4)。 第二个 TVP5158 (/dev/video5、/dev/video6、/dev/video7、/dev/video8)。 我运行命令来测试:

    gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=-1! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! fakesink

    gst-launch-1.0 v4l2src device=/dev/video5 num-buffers=-1! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! fakesink

    双通道捕获功能正常。

    完成两次测试后,我再次指出 VIP 驱动程序可能存在一些问题。

    存在相同的 VIN 支持 多通道的问题。 VIP 驱动程序不能  独立支持多通道。

    如果我启动第一个通道(VIP 已获得数据并且 IRQ 已发生)、则启动第二个通道、只有第二个通道工作正常。  

    2.不同的 VIN 端口(就像 vin3a 和 vin4a 一样)、通道捕获 是独立的。

    我不熟悉 vpdma。  尤其是 vpdma 列表。

    有什么建议吗?

    BR、

    Vefone

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

    为了简化调试、如果问题出在 VIP 驱动程序中、我想从测试方案中消除 gstreamer 的复杂性。 想知道您是否可以使用 Yavta 来测试多个通道。 此外、当您使用下面的内容生成调试日志时、这些日志将以 dmesg 格式收集、因此也请共享 dmesg 日志。
    echo 3 >/sys/class/video4linux/videoX/dev_debug

    此外,使用启用 VIP 日志
    echo 3 >/sys/module/ti_vip/parameters/debug

    您可以使用以下命令运行 Yavta。 在这里、W 和 H 是您要捕获的宽度和高度。
    yavta -C60 -fYUYV -F/dev/null -sWxH /dev/videoX
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    Manisha .I 使用 了 yavta 来测试它。情况与我之前描述的情况相同(使用 GST-LAUNCH-1.0)。

    我像以前一样进行两次测试。

    第一:

    启用 TVP5158的像素时钟、运行;μ s 以下的命令

    回波"\n"| yavta -C100 -p -F/home/root/1.yUV -skip 2 -t 1/30 -f YUYV -s 720x240 /dev/video1

    回波"\n"| yavta -C100 -p -F/home/root/2.yUV -skip 2 -t 1/30 -f YUYV -s 720x240 /dev/video2

    此处为日志:

    e2e.ti.com/.../ya_2D00_1.txt

    运行"echo '\n'| yavta -C100 -p -F/home/root/2.yUV --skip 2 -t 1/30 -f YUYV -s 720x240~/dev/video2以捕获第二个通道后、第一个通道捕获将停止、如 上图所示。

    第二:

    禁用 TVP5158的像素时钟、运行;μ s 以下的命令

    回波"\n"| yavta -C100 -p -F/home/root/1.yUV -skip 2 -t 1/30 -f YUYV -s 720x240 /dev/video1

    回波"\n"| yavta -C100 -p -F/home/root/2.yUV -skip 2 -t 1/30 -f YUYV -s 720x240 /dev/video2

    之后、我启用  TVP5158中的像素时钟。这样、我可以 完全捕获两个通道。

    此处为日志:

    e2e.ti.com/.../ya_2D00_0.txt

    感谢您对它的密切关注。

    BR、

    Vefone

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 vefone 使用 Yavta 运行测试案例并分享观察结果和日志。 我们将深入研究它、如果需要更多信息、我们将返回。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    Manisha,我将等待您的回复。 我再也不能调试了、太难了。

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

    由于感恩节假期,反应将会推迟。
    由此给您带来的不便、我们深表歉意。

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您从何处获取 TVP5158驱动程序? 您是否对收到的原始驱动程序进行了任何修改?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    Manisha,我正在通过以下链接使用:

    我 仅修改驱动程序 TVP5158_enum_frame_size 函数:

    fse->max_height = fse->min_height = std_list[std].height; fse->max_height = fse->min_height = std_list[std].height / 2;

    如果我不修改、图像不正常、 如下所述:

    BR,

    Vefone

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

    我们正在对此进行调查。 当我们取得进展时、我将向您提供最新信息。

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

    您好、Vefone、

    请尝试附加的补丁、并告诉我这是否可以解决您看到的问题。  

    e2e.ti.com/.../tiL4.9_2D00_AD_2D00_media_2D00_ti_2D00_vpe_2D00_vip_2D00_Fix_2D00_multichannel_2D00_subdevice_2D00_start_2D00_stop.patch

    此致、

    Manisha

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

    您好!

    Manisha、我已经在 Linux-4.9.41上测试了该补丁。 没关系。 我要 将其合并到 SDK03.01 linux4.4.19。

    非常感谢!

    Vefone

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

    您好!

    Manisha、我们应该在 vIP_stop_streaming 函数上做更多的事情。 如果不添加、停止一个通道、另一个通道将无法正常工作。

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

    您好!
    Manisha、
    我使用补丁、start_stream 操作正常、一个 VPORT 的多通道子器件独立启动操作、但如果我停止一个通道、另一个通道不正常。原因是 stop_dma 函数。

    我修改 VIP_STOP_STREGUSY、如下所示:  

    仅当最后一个通道停止时停止_DMA。 还可以、 但第二次运行捕获命令。内核不能正常运行。

    我使用的命令是"gst-launch-1.0 -v -e v4l2src device=/dev/video1 num-buffers=150 IO-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 'video/x-raw、format=(string) NV12、width=(int) 720、height=(int) 240'! 文件链接位置=/dev/null

    以下是日志:

    root@am57xx-EVM:~ gst-launch-1.0 -v -e v4l2src device=/dev/video1 num-buffers=150 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 'video/x-raw、format=(string) NV12、width=(int) 720、height=(int) 240'! 文件链接位置=/dev/null
    正在将管道设置为暂停...
    管道处于活动状态,不需要 PREROLL...
    正在将管道设置为正在播放...
    新时钟:GstSystemClock
    /GstPipeline0/GstV4l2Src:v4l2src0.GstPad:src:cap ="VIDEO/x-RAW\、\ format\\(string\) YUy2、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\格式\=(string\) 300ybape-baper=(trade-bacy\)、bapertip (framex) 1001)、ditertiertix (tradecess= 1)/tradecess-d/帧速率1)
    /GstPipeline0/GstCapsFilter:capsfilter0.GstPad:src:cap ="VIDEO/x-RAW\、\ format\=(string\) YUy2、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比= 1) 3001、色带1 (track/framex) 1001)
    /GstPipeline0/GstVpe:vpe0.GstPad:src:cap ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比\=(string\) 30000\(frame\)/frame\
    /GstPipeline0/GstCapsFilter:capsfilter1.GstPad:src:cap ="video/x-raw、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比=(00/分次) 1001"
    /GstPipeline0/GstFileSink:filesink0.GstPad:SINK:SINK:SINK:CAPS ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\像素纵横比\=(frame\) 1001)/frature\
    /GstPipeline0/GstCapsFilter:capsfilter1.GstPad:SINK:SINK:CAPs ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比=(00/分次) 1001"
    /GstPipeline0/GstVpe:vpe0.GstPad:SINK:SINK:SINK:CAPs ="VIDEO/x-RAW\、\ FORMAT\=(STRING\) Y2、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\像素纵横比\=(STRING\) 3001) 1001、色带隔1、色散1
    /GstPipeline0/GstCapsFilter:capsfilter0.GstPad:SINK:SINK:CAPs ="VIDEO/x-RAW\、\ FORMAT\=(STRING\) YUY2、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\像素纵横比=(1) 1001)、色带1 (渐变)/framet (track=) 3001)/tracketry (bapert)
    /GstPipeline0/GstVpe:vpe0.GstPad:src:cap ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比\=(string\) 30000\(frame\)/frame\
    /GstPipeline0/GstCapsFilter:capsfilter1.GstPad:SINK:SINK:CAPs ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比=(00/分次) 1001"
    从元件"流水线0"获得 EOS。
    0:00:03.408517975后结束执行
    正在将管道设置为暂停...
    正在将管道设置为就绪...
    正在将管道设置为 NULL ...
    正在释放管道...
    root@am57xx-EVM:~ gst-launch-1.0 -v -e v4l2src device=/dev/video1 num-buffers=150 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 720、height=(int) 240'! VPE num-input-buffers=8! 'video/x-raw、format=(string) NV12、width=(int) 720、height=(int) 240'! 文件链接位置=/dev/null
    正在将管道设置为暂停...
    管道处于活动状态,不需要 PREROLL...
    正在将管道设置为正在播放...
    新时钟:GstSystemClock
    /GstPipeline0/GstV4l2Src:v4l2src0.GstPad:src:cap ="VIDEO/x-RAW\、\ format\\(string\) YUy2、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\格式\=(string\) 300ybape-baper=(trade-bacy\)、bapertip (framex) 1001)、ditertiertix (tradecess= 1)/tradecess-d/帧速率1)
    /GstPipeline0/GstCapsFilter:capsfilter0.GstPad:src:cap ="VIDEO/x-RAW\、\ format\=(string\) YUy2、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比= 1) 3001、色带1 (track/framex) 1001)
    /GstPipeline0/GstVpe:vpe0.GstPad:src:cap ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比\=(string\) 30000\(frame\)/frame\
    /GstPipeline0/GstCapsFilter:capsfilter1.GstPad:src:cap ="video/x-raw、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比=(00/分次) 1001"
    /GstPipeline0/GstFileSink:filesink0.GstPad:SINK:SINK:SINK:CAPS ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\像素纵横比\=(frame\) 1001)/frature\
    /GstPipeline0/GstCapsFilter:capsfilter1.GstPad:SINK:SINK:CAPs ="VIDEO/x-RAW\、\ format\=(string\) NV12\、\ width\=(int\) 720\、\ height\=(int\) 240\、\像素纵横比=(00/分次) 1001"
    /GstPipeline0/GstVpe:vpe0.GstPad:SINK:SINK:SINK:CAPs ="VIDEO/x-RAW\、\ FORMAT\=(STRING\) Y2、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\像素纵横比\=(STRING\) 3001) 1001、色带隔1、色散1
    /GstPipeline0/GstCapsFilter:capsfilter0.GstPad:SINK:SINK:CAPs ="VIDEO/x-RAW\、\ FORMAT\=(STRING\) YUY2、\ width\=(int\) 720\、\ height\=(int\) 240\、\、\像素纵横比=(1) 1001)、色带1 (渐变)/framet (track=) 3001)/tracketry (bapert)
    069]-------- [在此处剪切]-----
    [67.242892]警告:CPU:0 PID:1150 at drivers/media/v4l2-core/video/buf2-core.c:1315 vb2_start_stream+0xe0/0x15c ()
    [67.253804]模块链接于: tvp5158 bc_example (O) rpmsg_proto rpmsg_pru xfrm_user xfrm4_tunnel ipcomp xfrm_ipcomp 支持4 ah4 af_key xfrm_algo 蓝牙 virti_rpsch_bus snd_simple_card soc snd_soc_tichti_pwm_rgp_remote_platform_proc v_proc texp_proc v_proc p_remote_mas rgoti_pr_pr_mas pote_tic vrgmcoti_pr_mas pv_mcote_p_mcote_mas p_pr_mcote_remoti_pr_pr_mas p_pr_mcote_p_mcote_p_mcote_p_mas p_mas pv_remote_pv_pr_pru_pru_pru_mas pote_pote_pote_p_remote_pote_platform_pr_pr_pr uio_module_drv (O) uio gdbserverproxy (O) cmemk (O)
    [67.310225] CPU:0 PID:1150 Comm:v4l2src0:src 被污染:G O 4.4.4.19+#4
    [67.317997]硬件名称:通用 DRA74X (平展器件树)
    [67.324110]回溯:
    [67.326579][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
    [67.334175] r7:c04ef944 R6:600f0013 R5:00000000 R4:c09aae4c
    [67.339885][ ](show_stack)从[ ](dump_stack+0x8c/0xa0)
    [67.347139][ ](dump_stack)从[ ](warn_slESpath_common+0x88/b8)
    [67.355259] r7:c04ef944 R6:00000523 R5:00000009 R4:00000000
    [67.360966][ ](warn_slowpath_common)、来自[ ](WARN_RASPEK_NULL_0x24/0x2C)
    [67.369783] R8:c09c9ae0 r7:fffffff0 R6:ec84dc68 R5:ec84debc R4:ec84ddc4
    [67.376546][ ](warn_slowpath_null)、来自[ ](vb2_start_stream+0xe0/0x15c)
    [67.385366][ ](vb2_start_streaming),来自[ ](vb2_core_streamon + 0x120/0x168)
    [67.394183] r7:c04dbfc0 r6:ee12c800 r5:ee0c3d80 r4:ec84dc68
    [67.399888][ ](vb2_core_streamon)、来自[ ](vb2_streamon/0x38/0x58)
    [67.407921] R5:ee0c3d80 R4:00000001
    [67.412151][ ](vb2_streamon)从[ ](vb2_ioctl_streamon/0x44/0x48)
    [67.419645][ ](vb2_ioctl_streamon)、从[ ](V4L_streamon/0x24/0x28)
    [67.427764] R5:40045612 R4:c04f33c4
    [67.431363][ ](V4L_streamon)、来自[ ](_VIDEO_DO _ioctl+0x298/0x30c)
    [67.439482] R5:40045612 R4:00000001
    [67.443083][ ](__VIDEO_DO _ioctl)从[ ](VIDEO_userccopy+0x21c/0x4c0)
    [67.451377] R10:ec5b7e30 R9:00159d24 R8:00000001 r7:00000000 R6:00000004 R5:00000004
    [67.459268] R4:40045612
    [67.461815][ ](视频_usercopy)、来自[ ](VIDEO_ioctl2+0x18/0x1c)
    [67.46985] R10:00000000 R9:ec5b6000 R8:ee0d3ecc r7:00159d24 R6:40045612 R5:ee0c3d80
    [67.477472] R4:ee12c800
    [67.480018][ ](video_ioctl2)、来自[ ](v4l2_ioctl+0xa8/0xe0)
    [67.487443][ ](v4l2_ioctl)从[ ](do_vfs_ioctl+0x454/0x60c)
    [67.495038] R9:ec5b6000 R8:00159d24 r7:0000000b R6:ee0c3d80 R5:ec4b2648 R4:00159d24
    [67.502841][ ](do _vfs_ioctl)、从[ ](sys_ioctl+0x3c/0x64)
    [67.510175] R10:00000000 R9:ec5b6000 R8:00159d24 r7:40045612 R6:ee0c3d80 R5:0000000b
    [67.518064] R4:ee0c3d81
    [67.5206111][ ](sys_ioctl)从[ ](RET_FAST_SYSCALL+0x0/0x34)
    [67.528207] R9:ec5b6000 R8:c000fc04 r7:00000036 R6:b6a593c8 R5:b4b061c0 R4:00000000
    [67.536100]--[结束线迹6af34e5df5bf2a76 ]--
    REROR:来自元素/GstPipeline:流水线0/GstV4l2Src:v4l2src0:cud 不从资源读取。
    其他调试信息:
    ./../../gst-plugins-good-1.6.3/sys/v4l2/gstv4l2bufferpool.c (1055):gst_v4l2_buffer_pool_poll ():/GstPipeline0/GstV4l2Src:v4l2src0:
    轮询错误1:设备或资源忙(16)
    EOS on shutdown enabled --等待 EOS After Error
    正在等待 EOS...
    错误:从元素/GstPipeline:流水 线0/GstV4l2Src:v4l2src0:分配缓冲区失败
    其他调试信息:
    ./../../gst-plugins-good-1.6.3/sys/v4l2/gstv4l2src.c (848):gst_v4l2src_create ():/GstPipeline:流水线0/GstV4l2Src:v4l2src0
    错误:来自元素/GstPipeline:流水 线0/GstV4l2Src:v4l2src0:内部数据流错误。
    其他调试信息:
    ./../../../gstreamer-1.6.3/libs/gst/base/gstbasesrc.c (2943):gst_base_src_loop ():/GstPipeline:流水线0/GstV4l2Src:v4l2src0:
    流任务暂停、原因错误(-5)

    有什么建议吗?

    BR、

    Vefone

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

    停止流处理的正确修复涉及到工作。 我们预计将于2018年第1季度在 Proc SDK 发行版中对此提供修复。