When removeTarget is called on a GPUImageFilter that contains a loop in the filter outputs (such as GPUImageLowPassFilter), an infinite loop is created while tearing down the filters. This loop comes from recursive calls to endProcess.
We can avoid this by adding a status flag in the GPUImageFilter and GPUImageFilterGroup to check if the filter has already started the endProcess method and do no work if it has already started.
This resolves issue: #793
Fixes infinite loops when call endProcess by adding a flag to check i…
…f the filter has already started the end process
Merge pull request #1295 from achambers16/fix-endprocess-loop
Fix infinite loops related to endProcess on GPUImageFilter
Seems to make sense. I seem to recall trying something similar elsewhere, but I can't find it now.