From fcf4a4d112a06f8df330abb9486c6f9d33daa03a Mon Sep 17 00:00:00 2001 From: Eric Jensen Date: Tue, 26 Apr 2016 19:44:53 -0700 Subject: [PATCH] Prevent unnecessary locking when generating a placeholder image on a background thread --- AsyncDisplayKit/ASVideoNode.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AsyncDisplayKit/ASVideoNode.mm b/AsyncDisplayKit/ASVideoNode.mm index fcc11e1506..7133680f3c 100644 --- a/AsyncDisplayKit/ASVideoNode.mm +++ b/AsyncDisplayKit/ASVideoNode.mm @@ -173,16 +173,16 @@ static NSString * const kStatus = @"status"; - (void)imageAtTime:(CMTime)imageTime completionHandler:(void(^)(UIImage *image))completionHandler { ASPerformBlockOnBackgroundThread(^{ - ASDN::MutexLocker l(_videoLock); + AVAsset *asset = self.asset; // Skip the asset image generation if we don't have any tracks available that are capable of supporting it - NSArray* visualAssetArray = [_asset tracksWithMediaCharacteristic:AVMediaCharacteristicVisual]; + NSArray* visualAssetArray = [asset tracksWithMediaCharacteristic:AVMediaCharacteristicVisual]; if (visualAssetArray.count == 0) { completionHandler(nil); return; } - AVAssetImageGenerator *previewImageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:_asset]; + AVAssetImageGenerator *previewImageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset]; previewImageGenerator.appliesPreferredTrackTransform = YES; [previewImageGenerator generateCGImagesAsynchronouslyForTimes:@[[NSValue valueWithCMTime:imageTime]]