This commit is contained in:
Nicolas Gonzalez 2018-12-13 19:59:29 -06:00
commit bba7e9ed07

View File

@ -1265,40 +1265,29 @@ static int const RCTVideoUnset = -1;
} }
- (void)setFilter:(NSString *)filterName { - (void)setFilter:(NSString *)filterName {
_filterName = filterName;
_filterName = filterName; AVAsset *asset = _playerItem.asset;
AVAsset *asset = _playerItem.asset; if (!asset) {
return;
if (asset != nil && filterName != nil) { } else if (!_playerItem.videoComposition && (filterName == nil || [filterName isEqualToString:@""])) {
return; // Setting up an empty filter has a cost so avoid whenever possible
}
// TODO: filters don't work for HLS, check & return
CIFilter *filter = [CIFilter filterWithName:filterName]; CIFilter *filter = [CIFilter filterWithName:filterName];
_playerItem.videoComposition = [AVVideoComposition _playerItem.videoComposition = [AVVideoComposition
videoCompositionWithAsset:asset videoCompositionWithAsset:asset
applyingCIFiltersWithHandler:^(AVAsynchronousCIImageFilteringRequest *_Nonnull request) { applyingCIFiltersWithHandler:^(AVAsynchronousCIImageFilteringRequest *_Nonnull request) {
if (filter == nil) {
if (filter == nil) { [request finishWithImage:request.sourceImage context:nil];
} else {
[request finishWithImage:request.sourceImage context:nil]; CIImage *image = request.sourceImage.imageByClampingToExtent;
[filter setValue:image forKey:kCIInputImageKey];
} else { CIImage *output = [filter.outputImage imageByCroppingToRect:request.sourceImage.extent];
[request finishWithImage:output context:nil];
CIImage *image = request.sourceImage.imageByClampingToExtent; }
}];
[filter setValue:image forKey:kCIInputImageKey];
CIImage *output = [filter.outputImage imageByCroppingToRect:request.sourceImage.extent];
[request finishWithImage:output context:nil];
}
}];
}
} }
#pragma mark - React View Management #pragma mark - React View Management