下载
中文
注册

mxpi_distributor

功能描述

向不同端口发送指定类别或通道的数据。用户可通过在配置文件中填写类别索引或通道索引,来选择发送需要输出的结果。

同步/异步(status)

异步

约束限制

目前只支持根据channel id或class id进行分发。

插件基类(factory)

mxpi_distributor

输入和输出

  • 静态输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”或“MxpiClassList”或“MxpiObject”或“MxpiClass”)。
  • 动态输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”或“MxpiClassList”或“MxpiObject”或“MxpiClass”)。

属性

请参见表1

表1 mxpi_distributor插件的属性

属性名

描述

是否为必填项

是否可修改

dataSource

输入数据对应索引,默认值为上游插件对应输出端口的元数据key。

classIds

指定需要输出的类别索引,以逗号隔开。此插件根据用户配置的类别,将不同类别的目标进行重组,以类别顺序通过不同输出端口分发给下游插件。下游插件依次通过目标分发插件名_id作为key来获取元数据(id为目标分发插件的输出端口号,从0开始,依次递增1)。

distributeAll

当某个端口没有目标数据时,是否往下发数据。支持配置“yes”“no”两种方式,默认值为“no”

根据class id分发进行配合使用。

channelIds

指定需要输出的通道索引,以逗号隔开。此插件根据用户配置的通道,buffer以通道索引的顺序通过不同输出端口分发给下游插件。

  • mxpi_distributor插件一般与queue插件配合使用,即mxpi_distributor插件的每个输出端口连接queue插件。
  • 当根据channel id来进行分发时,必须配置channelIds属性。当根据class id来进行分发时,必须配置classIds和dataSource属性。
  • 分发插件支持每个输出端口包含多种类别(或通道)的数据,每个输出端口中的索引采用竖线(|)进行区分。具体可参考示例

示例

  • 只配置classIds属性和dataSource属性,分发插件将按照目标索引(class id)的顺序,依次向下游插件发送带有该类别元数据的buffer。

    假定分发插件mxpi_distributor0接受到demoA插件的buffer,然后将以demoA作为key获取元数据,将元数据按照类别进行重组。
    • 以mxpi_distributor0_0为key挂载类别为45的元数据,并将buffer发送给demoA0插件。
    • 以mxpi_distributor0_1为key挂载类别为6的元数据,并将buffer发送给demoA1插件。
    • 以mxpi_distributor0_2为key挂载类别为7的元数据,并将buffer发送给demoA2插件。
  • 只配置channelIds属性,分发插件将按照通道标识(channel id)的顺序,依次向下游插件发送buffer。

    假定分发插件mxpi_distributor0接受到demoA插件的buffer。
    • 将通道索引为12的buffer发送给demoA0插件。
    • 将通道索引为3的buffer发送给demoA1插件。
    • 将通道索引为4的buffer发送给demoA2插件。