Я пытаюсь несколько раз добавлять фильтры в сохраненное видео с помощью GPUImage2, но при применении второго фильтра выдается следующее сообщение об ошибке:
Предупреждение: попытка добавить цель за пределы входной мощности цели -> Конвейер.swift: addTarget (_: atTargetIndex :): 43
, и выбранный фильтр не применяется.Я пытался удалить цели из filter и movieInput перед применением любого нового фильтра, но ничего не работает.
Вот мой код:
var renderView = RenderView()
var movieInput:MovieInput!
var selectedFilter:ImageProcessingOperation!
func startVideoWithFilter(filter:ImageProcessingOperation){
let bundleURL = Bundle.main.resourceURL!
let movieURL = URL(string:"fileName.mp4", relativeTo:bundleURL)!
filter.removeAllTargets()
selectedFilter.removeAllTargets()
if movieInput != nil{
movieInput.removeAllTargets()
}
do {
movieInput = try MovieInput(asset: AVAsset(url: movieURL), playAtActualSpeed: true, loop: true)
movieInput.addTarget(filter)
filter.addTarget(renderView)
movieInput.runBenchmark = true
movieInput.start()
} catch {
print("Couldn't process movie with error: \(error)")
}
}