<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/Photos/PHContentEditingInput",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Photos"
    ],
    "preciseIdentifier" : "c:objc(cs)PHContentEditingInput"
  },
  "title" : "PHContentEditingInput"
}
-->

# PHContentEditingInput

A container that provides information about and access to the image, video, or Live Photo content of an asset to be edited.

```
class PHContentEditingInput
```

## Overview

To edit an asset’s photo or video content:

1. Fetch a [`PHAsset`](/documentation/Photos/PHAsset) object that represents the photo or video to be edited.
2. Call the asset’s [`requestContentEditingInput(with:completionHandler:)`](/documentation/Photos/PHAsset/requestContentEditingInput(with:completionHandler:)) method to retrieve a [`PHContentEditingInput`](/documentation/Photos/PHContentEditingInput) object.
3. Apply your edits to the asset. To allow a user to continue working with the edit later (for example, to adjust the parameters of a photo filter), create a [`PHAdjustmentData`](/documentation/Photos/PHAdjustmentData) object describing the changes.
4. Initialize a [`PHContentEditingOutput`](/documentation/Photos/PHContentEditingOutput) object. For photo- or video-only assets, use the editing output’s properties to provide edited asset data. For Live Photo assets, create a [`PHLivePhotoEditingContext`](/documentation/Photos/PHLivePhotoEditingContext) object to edit the Live Photo content.
5. Use a photo library change block to commit the edit. In the block, create a [`PHAssetChangeRequest`](/documentation/Photos/PHAssetChangeRequest) object and set its [`contentEditingOutput`](/documentation/Photos/PHAssetChangeRequest/contentEditingOutput) property to the editing output that you created. For more details, see [`PHPhotoLibrary`](/documentation/Photos/PHPhotoLibrary).

You can also edit assets from photo editing extensions. In this case, instead of working with a [`PHAsset`](/documentation/Photos/PHAsset) object, you implement methods in the [`PHContentEditingController`](/documentation/PhotosUI/PHContentEditingController) protocol. Photos provides a [`PHContentEditingInput`](/documentation/Photos/PHContentEditingInput) object when your extension begins editing. When editing is complete, Photos requests a [`PHContentEditingOutput`](/documentation/Photos/PHContentEditingOutput) object that contains the edited asset content.

## Topics

### Getting Information About the Asset

[`mediaType`](/documentation/Photos/PHContentEditingInput/mediaType)

The type of the asset, such as video or audio.

[`PHAssetMediaType`](/documentation/Photos/PHAssetMediaType)

Identifies the general type of an asset, such as image or video.

[`mediaSubtypes`](/documentation/Photos/PHContentEditingInput/mediaSubtypes)

The subtypes of the asset, identifying special kinds of assets such as a panoramic photo or a high-frame-rate video.

[`PHAssetMediaSubtype`](/documentation/Photos/PHAssetMediaSubtype)

Constants identifying specific variations of asset media, such as panorama or screenshot photos, and time-lapse or high-frame-rate video.

[`creationDate`](/documentation/Photos/PHContentEditingInput/creationDate)

The date and time when the asset was originally created.

[`location`](/documentation/Photos/PHContentEditingInput/location)

The location information that was saved with the asset.

[`uniformTypeIdentifier`](/documentation/Photos/PHContentEditingInput/uniformTypeIdentifier)

The uniform type identifier for the asset’s image or video data.

### Working with Previous Edits

[`adjustmentData`](/documentation/Photos/PHContentEditingInput/adjustmentData)

An object that describes the most recent edit to the asset’s content.

### Working with Photo Assets

[`displaySizeImage`](/documentation/Photos/PHContentEditingInput/displaySizeImage)

An image of the asset’s contents, appropriately sized for display.

[`fullSizeImageOrientation`](/documentation/Photos/PHContentEditingInput/fullSizeImageOrientation)

The Exif display orientation of the full-size image file.

[`fullSizeImageURL`](/documentation/Photos/PHContentEditingInput/fullSizeImageURL)

The URL to a file that contains the full-sized image data.

### Working with Video Assets

[`audiovisualAsset`](/documentation/Photos/PHContentEditingInput/audiovisualAsset)

The video asset, as an `AVAsset` object.

[`avAsset`](/documentation/Photos/PHContentEditingInput/avAsset)

The video asset, as an `AVAsset` object.

### Working with Live Photo Assets

[`livePhoto`](/documentation/Photos/PHContentEditingInput/livePhoto)

The unedited Live Photo content of the editing input.

[`playbackStyle`](/documentation/Photos/PHContentEditingInput/playbackStyle)

The style in which to present this content to the user.

[`PlaybackStyle`](/documentation/Photos/PHAsset/PlaybackStyle-swift.enum)

An enumeration of asset playback styles that dictate how to present an asset to the user.

## Relationships

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

### Conforms To

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)