iOS AVVideoКомпозиция утечки памяти в NativeScript - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь воспроизвести локальное видео в приложении NativeScript на iOS, использую встроенные SDK AVFoundation для создания AVPlayer и т. Д. Я хочу, чтобы видео воспроизводилось с фильтром, чтобы сделать его черно-белым (настройка насыщенностидо 0). Я смог сделать это, используя AVVideoComposition, используя этот метод:

https://developer.apple.com/documentation/avfoundation/avvideocomposition/1389556-videocompositionwithasset?language=objc

Однако, как только я применяю композицию видео с моим фильтром ("CIColorControls" CIFilter), Я начинаю получать предупреждения памяти и иногда вылетает, даже для коротких видеороликов продолжительностью не более нескольких минут. Есть ли что-то в этой реализации, что может вызвать утечку памяти?

avPlayerItem.videoComposition = AVVideoComposition.videoCompositionWithAssetApplyingCIFiltersWithHandler(
    avPlayerItem.asset,
    (request) => {
        let filter = CIFilter.filterWithName('CIColorControls');
        filter.setValueForKey(request.sourceImage, kCIInputImageKey);
        filter.setDefaults();
        filter.setValueForKey(0.0, kCIInputSaturationKey);
        let output = filter.valueForKey(kCIOutputImageKey);
        if (!output) {
            let err = NSError.alloc().initWithDomainCodeUserInfo('Could not filter frame', 0, null);
            request.finishWithError(err);
        } else {
            request.finishWithImageContext(output, null);
        }
    }
);
...