<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Cinematic",
  "identifier" : "/documentation/Cinematic/CNAssetInfo-2ata2",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Cinematic"
    ],
    "preciseIdentifier" : "s:9Cinematic11CNAssetInfoC"
  },
  "title" : "CNAssetInfo"
}
-->

# CNAssetInfo

An object that provides Cinematic-specific information about an asset, including its tracks.

```
class CNAssetInfo
```

## Topics

### Initializers

[`init(asset: AVAsset) async throws`](/documentation/Cinematic/CNAssetInfo-2ata2/init(asset:))

Creates a Cinematic object from an asset.

### Instance Properties

[`var allCinematicTracks: [AVAssetTrack]`](/documentation/Cinematic/CNAssetInfo-2ata2/allCinematicTracks)

An array of the Cinematic asset tracks.

[`let asset: AVAsset`](/documentation/Cinematic/CNAssetInfo-2ata2/asset)

The original Cinematic source asset.

[`var cinematicCapability: CNCinematicCapability`](/documentation/Cinematic/CNAssetInfo-2ata2/cinematicCapability)

[`var cinematicDisparityTrack: AVAssetTrack`](/documentation/Cinematic/CNAssetInfo-2ata2/cinematicDisparityTrack)

The Cinematic disparity track.

[`var cinematicMetadataTrack: AVAssetTrack`](/documentation/Cinematic/CNAssetInfo-2ata2/cinematicMetadataTrack)

The Cinematic metadata track used.

[`var cinematicVideoTrack: AVAssetTrack`](/documentation/Cinematic/CNAssetInfo-2ata2/cinematicVideoTrack)

Track used for Cinematic video.

[`var frameTimingTrack: AVAssetTrack`](/documentation/Cinematic/CNAssetInfo-2ata2/frameTimingTrack)

The track used for Cinematic frame timing.

[`var isPreprocessed: Bool`](/documentation/Cinematic/CNAssetInfo-2ata2/isPreprocessed)

[`var naturalSize: CGSize`](/documentation/Cinematic/CNAssetInfo-2ata2/naturalSize)

The video size if rendered at its natural size.

[`var preferredSize: CGSize`](/documentation/Cinematic/CNAssetInfo-2ata2/preferredSize)

The video size if rendered at its natural size with the preferred transform applied.

[`var preferredTransform: CGAffineTransform`](/documentation/Cinematic/CNAssetInfo-2ata2/preferredTransform)

The preferred transform of the rendered image for display purposes.

[`var resourceStatus: CNResourceStatus`](/documentation/Cinematic/CNAssetInfo-2ata2/resourceStatus)

[`var sampleDataTrackIDs: [CMPersistentTrackID]`](/documentation/Cinematic/CNAssetInfo-2ata2/sampleDataTrackIDs)

The source metadata track IDs required to implement the video composition instruction protocol.

[`var timeRange: CMTimeRange`](/documentation/Cinematic/CNAssetInfo-2ata2/timeRange)

The time range over which all Cinematic tracks are valid.

[`var videoCompositionTrackIDs: [CMPersistentTrackID]`](/documentation/Cinematic/CNAssetInfo-2ata2/videoCompositionTrackIDs)

Source video track IDs required to implement the video composition instruction protocol.

[`var videoCompositionTracks: [AVAssetTrack]`](/documentation/Cinematic/CNAssetInfo-2ata2/videoCompositionTracks)

Tracks required to construct the video composition output.

### Instance Methods

[`func downloadResources(timeout: TimeInterval, subprogress: consuming Subprogress?) async throws -> CNAssetInfo`](/documentation/Cinematic/CNAssetInfo-2ata2/downloadResources(timeout:subprogress:))

Downloads the resources required to render cinematic effects for the given asset
Resources are device-wide and are cached once downloaded

[`func preprocessAsset(configuration: CNAssetPreprocessConfiguration, subprogress: consuming Subprogress?) async throws -> CNAssetInfo`](/documentation/Cinematic/CNAssetInfo-2ata2/preprocessAsset(configuration:subprogress:))

Preprocesses the asset by generating a disparity track, writing the result to the
URL specified in `configuration`. Required for assets whose `cinematicCapability`
is `.needsPreprocessing`; on success the returned `CNAssetInfo` will be `.renderable`.

### Type Properties

[`static var defaultResourceDownloadTimeout: TimeInterval`](/documentation/Cinematic/CNAssetInfo-2ata2/defaultResourceDownloadTimeout)

Default timeout value for resource download for:
`public static func downloadResources(versions: Set<CNCinematicResourceVersion> = [], timeout: TimeInterval = defaultResourceDownloadTimeout, subprogress: consuming Subprogress? = nil) async throws`
`public func downloadResources(timeout: TimeInterval = defaultResourceDownloadTimeout, subprogress: consuming Subprogress? = nil) async throws -> CNAssetInfo`

### Type Methods

[`class func cinematicCapability(for: AVAsset) async -> CNCinematicCapability`](/documentation/Cinematic/CNAssetInfo-2ata2/cinematicCapability(for:))

Asynchronously checks the cinematic capability of an asset.
Returns
CNCinematicCapability.none if a cinematic metadata track is not present.
CNCinematicCapability.renderable if the cinematic asset can be used without preprocessing
CNCinematicCapability.needsPreprocessing If cinematic asset needs preprocessing before it can be used
For assets that need preprocessing use `CNAssetInfo.preprocessAsset(configuration:subprogress:)` before using the asset

[`static func downloadResources(versions: Set<CNCinematicResourceVersion>, timeout: TimeInterval, subprogress: consuming Subprogress?) async throws`](/documentation/Cinematic/CNAssetInfo-2ata2/downloadResources(versions:timeout:subprogress:))

Downloads the resources required to render cinematic effects on assets
Resources are device-wide and are cached once downloaded

[`class func isCinematic(asset: AVAsset) async -> Bool`](/documentation/Cinematic/CNAssetInfo-2ata2/isCinematic(asset:))

Determines if the asset is Cinematic asynchronously.

[`static func resourceStatus(for: Set<CNCinematicResourceVersion>) -> CNResourceStatus`](/documentation/Cinematic/CNAssetInfo-2ata2/resourceStatus(for:))

Check status for a set of resources.

## Relationships

### Inherited By

[`CNCompositionInfo-7eunn`](/documentation/Cinematic/CNCompositionInfo-7eunn)

---

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)