ADTF中“Unable to resolve substream”错误原因咨询
解决ADTF中"Unable to resolve substream"错误(Substream Assembler + Selector配置)
以下是针对该问题的排查和解决步骤:
检查Substream Assembler的子流映射配置
Substream Assembler的核心是将输入流绑定到唯一的子流标识(ID或名称)后打包输出。哪怕只用了一个dummy filter输入,也必须在Assembler的配置界面中找到Substream Mappings选项,给对应的输入Pin分配明确的子流ID或名称(比如ID=0、名称="RandomData")。如果没有配置这一步,输出流中不会包含有效的子流标识,Selector自然无法解析。确保Substream Selector的配置与Assembler完全匹配
Selector的Selected Substream参数必须和Assembler中设置的子流标识完全一致:- 如果Assembler用的是子流ID,Selector也要选择ID模式并填入对应数值
- 如果用的是子流名称,必须保证字符串大小写、字符完全匹配,且Selector切换到名称模式
混用ID和名称模式是常见的错误点。
验证数据流类型一致性
Assembler要求所有输入流的数据流类型完全相同,否则无法正常打包子流。右键点击Pin选择Stream Type,确认dummy filter的输出类型与Assembler输入Pin、Selector输入/输出Pin的类型完全兼容。检查连接链路的正确性
确保Assembler的输出Pin直接连接到Selector的输入Pin,中间不要插入会修改数据流结构的过滤器(比如非兼容的类型转换器)。任何破坏原始子流封装的处理都会导致Selector无法识别子流。清理缓存解决版本/配置缓存问题
部分旧版本ADTF存在配置缓存异常,可尝试:- 关闭ADTF Editor
- 删除项目目录下的所有
*.cache文件 - 重新打开项目并重新配置两个组件的参数
- 若为代码项目,清理并重新生成二进制文件
内容的提问来源于stack exchange,提问作者Andrei Kulagin
相关产品推荐
相关产品推荐

