代码之家  ›  专栏  ›  技术社区  ›  user339946

动态切换GPUImageFilter链

  •  1
  • user339946  · 技术社区  · 9 年前

    我正在视频流上运行一组过滤器(不使用 GPUImageVideoCamera ,但正在处理示例缓冲区) GPUImageFilterPipeline .

    要更改过滤器,我只需使用:

    [self.filterPipeline replaceAllFilters:self.warmFilterArray];
    

    [self.filterPipeline replaceAllFilters:self.coolFilterArray];

    [self.filterPipeline removeAllFilters];

    每当我更换过滤器时,我都会遇到崩溃的问题。崩溃是不一致的,但如果我过快地更改过滤器,我更有可能崩溃。

    我怀疑这与过滤器链中的目标突然被移除有关。关于如何安全地移除过滤器,有什么想法吗?谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   user339946    9 年前

    我通过使用具有多个输入的多个管道解决了这个问题。我将要处理的样本缓冲区发送到任何合适的输入,这样我就可以避免在处理时从链中删除过滤器!