Type Alias


The signature for a block Photos calls to process Live Photo frames.


typedef CIImage * _Nullable (^PHLivePhotoFrameProcessingBlock)(id<PHLivePhotoFrame> frame, NSError * _Nullable *error);


To apply edits to a Live Photo, define a block with this signature and assign it to the frameProcessor property of a Live Photo editing context. Then call the initWithLivePhotoEditingInput: to prepare a preview-quality version of your edits for display, or the saveLivePhotoToOutput:options:completionHandler: method to produce full-quality final output. When you call one of those methods, Photos calls your frame processor block repeatedly—processing each frame of the Live Photo’s video content as well as its still photo content—to render the output.

This block takes the following parameters:


A PHLivePhotoFrame object describing the frame image to be processed.


If your block cannot successfully process the frame, set this pointer to an error object describing the failure.

Your block should return a CIImage object representing the result of your edits, or nil to indicate that your image processing has failed and the Live Photo edit should be aborted. Use the frame parameter’s image property to access the image to be edited.

See Also

Preparing an Editing Context for Processing


A block to be called by Photos for processing each frame of the Live Photo’s visual content.


The audio gain to apply to the processed Live Photo.