Type Alias

PHLivePhotoFrameProcessingBlock

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

Declaration

typealias PHLivePhotoFrameProcessingBlock = (PHLivePhotoFrame, NSErrorPointer) -> CIImage?

Discussion

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 init(livePhotoEditingInput:) to prepare a preview-quality version of your edits for display, or the saveLivePhoto(to: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:

frame

A PHLivePhotoFrame object describing the frame image to be processed.

error

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

var frameProcessor: PHLivePhotoFrameProcessingBlock?

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

var audioVolume: Float

The audio gain to apply to the processed Live Photo.