Skip to content

Commit e5bada9

Browse files
authored
Merge pull request #1360 from nickgzzjr/master
Only apply filter if filter is set
2 parents b2aa8c4 + a4a0c8a commit e5bada9

File tree

1 file changed

+21
-31
lines changed

1 file changed

+21
-31
lines changed

ios/Video/RCTVideo.m

+21-31
Original file line numberDiff line numberDiff line change
@@ -1268,39 +1268,29 @@ - (void)videoPlayerViewControllerDidDismiss:(AVPlayerViewController *)playerView
12681268
}
12691269

12701270
- (void)setFilter:(NSString *)filterName {
1271-
12721271
_filterName = filterName;
1273-
12741272
AVAsset *asset = _playerItem.asset;
1275-
1276-
if (asset != nil) {
1277-
1278-
CIFilter *filter = [CIFilter filterWithName:filterName];
1279-
1280-
_playerItem.videoComposition = [AVVideoComposition
1281-
videoCompositionWithAsset:asset
1282-
applyingCIFiltersWithHandler:^(AVAsynchronousCIImageFilteringRequest *_Nonnull request) {
1283-
1284-
if (filter == nil) {
1285-
1286-
[request finishWithImage:request.sourceImage context:nil];
1287-
1288-
} else {
1289-
1290-
CIImage *image = request.sourceImage.imageByClampingToExtent;
1291-
1292-
[filter setValue:image forKey:kCIInputImageKey];
1293-
1294-
CIImage *output = [filter.outputImage imageByCroppingToRect:request.sourceImage.extent];
1295-
1296-
[request finishWithImage:output context:nil];
1297-
1298-
}
1299-
1300-
}];
1301-
1273+
1274+
if (!asset) {
1275+
return;
1276+
} else if (!_playerItem.videoComposition && (filterName == nil || [filterName isEqualToString:@""])) {
1277+
return; // Setting up an empty filter has a cost so avoid whenever possible
13021278
}
1303-
1279+
// TODO: filters don't work for HLS, check & return
1280+
1281+
CIFilter *filter = [CIFilter filterWithName:filterName];
1282+
_playerItem.videoComposition = [AVVideoComposition
1283+
videoCompositionWithAsset:asset
1284+
applyingCIFiltersWithHandler:^(AVAsynchronousCIImageFilteringRequest *_Nonnull request) {
1285+
if (filter == nil) {
1286+
[request finishWithImage:request.sourceImage context:nil];
1287+
} else {
1288+
CIImage *image = request.sourceImage.imageByClampingToExtent;
1289+
[filter setValue:image forKey:kCIInputImageKey];
1290+
CIImage *output = [filter.outputImage imageByCroppingToRect:request.sourceImage.extent];
1291+
[request finishWithImage:output context:nil];
1292+
}
1293+
}];
13041294
}
13051295

13061296
#pragma mark - React View Management
@@ -1463,4 +1453,4 @@ - (NSString *)cacheDirectoryPath {
14631453
return array[0];
14641454
}
14651455

1466-
@end
1456+
@end

0 commit comments

Comments
 (0)