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.

[参考译文] AM62A7:GStreamer 输入选择器在多次切换后冻结

Guru**** 2576215 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1568279/am62a7-gstreamer-input-selector-freezes-after-several-switches

器件型号:AM62A7


工具/软件:

版本 10_00_00_08

在初始测试期间、我发现 tiovxmultiscaler 元素无法动态设置 ROI 参数、 我尝试添加  输入选择器以在两个 ROI 摄像头视图之间切换。 引用 GStreamer 官员的 switch_timer 函数input-selector-test.c并在演示环境中验证其功能后、我将输入选择器集成到实际工程中。 从切sink_0换到时、视频流正常工作sink_1、但从切换回时sink_1sink_0、图像冻结。 -我尝试设置 GST_DEBUG 级别,在输出中没有出现相关的异常。 下面是 switch_timer 函数的实现方式和发生冻结的流水线图。

static gboolean switch_timer(GstElement *video_switch)
{
    gint nb_sources;
    GstPad *active_pad, *new_pad;
    gchar *active_name;

    g_message("switching");
    g_object_get(G_OBJECT(video_switch), "n-pads", &nb_sources, NULL);
    g_object_get(G_OBJECT(video_switch), "active-pad", &active_pad, NULL);

    active_name = gst_pad_get_name(active_pad);
    if (strcmp(active_name, "sink_0") == 0)
    {
        new_pad = gst_element_get_static_pad(video_switch, "sink_1");
    }
    else
    {
        new_pad = gst_element_get_static_pad(video_switch, "sink_0");
    }
    g_object_set(G_OBJECT(video_switch), "active-pad", new_pad, NULL);
    g_free(active_name);
    gst_object_unref(new_pad);

    g_message("current number of sources : %d, active source %s",
              nb_sources, gst_pad_get_name(active_pad));

    return (GST_STATE(GST_ELEMENT(video_switch)) == GST_STATE_PLAYING);
}

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

    尊敬的 Jason:

    您使用什么摄像头进行测试? 这是您可以在 11.01 SDK 上进行验证的吗?

    此致、

    Suren

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

    您好、Suren

    我正在使用我们公司制造的 GMSL2 相机 (1920x1080@60fps)、它可以在另一台显示器上正确显示。 目前,我们公司的所有项目都基于 10.00.00.08 版本。


    BR

    Jason

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

    尊敬的 Jason:

    您是否尝试在摄像头捕获后使用 TEE 元素、并使用具有不同 ROI 参数的 tiovxmulitiscaler 元素、看看您是否能够进行验证。

    此致、

    Suren

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

    您好、Suren

    我只是尝试使用 TEE 的两个 msc 实例,但它仍然不起作用。 它甚至在第一次尝试输入开关时卡住。

    BR

    Jason

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

    尊敬的 Jason:

    png 文件/点图图形 模糊、能否发布 gstreamer 流水线?

    此致、

    Suren

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

    尊敬的 Jason:

    对延误表示歉意。 我正忙于其他升级,想给它一个尝试,对你已经报告的 timultiscaler 问题.  

    在我尝试一些实验之前、我想了解您是否尝试过为捕获的输入创建一个 T 形元件并使用阀在两个多标量之间切换? 这有什么用吗?

    此致、

    Suren

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

    您好、Suren

    我尝试将视频流拆分为 2 msc 节点、但不起作用。

    src -> tee -> queue -> msc0 ----> caps_1 ----> queue ---> mosaic ----> kmssink
            +               +                                   ^
            |               |                                   |
            |               +--> caps_0_small -> queue -> input_selector
            |                                                   ^
            +---> queue ----> msc1 -----> caps0_big ----> queue |

    如果我需要添加一个阀以在 2 毫秒之间切换、我应该在哪里添加该阀?

    BR、

    Jason

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

    尊敬的 Jason:

    我连接了两个示例应用程序,我尝试了输入选择器,并更改了合成器的 xpos 和 ypos。 我还没有在 EVM 上尝试这些器件。

    e2e.ti.com/.../input_2D00_selector_2D00_videobox.py

    e2e.ti.com/.../dynamic_2D00_compositor.py

    这些是实验应用、仅供您参考、这将允许您针对您的应用进行扩展。

    希望这些帮助:-)

    此致、

    Suren