<!--
{
  "availability" : [
    "macCatalyst: 18.0 -",
    "macOS: 15.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MediaExtension",
  "identifier" : "/documentation/MediaExtension",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "MediaExtension"
    ],
    "preciseIdentifier" : "MediaExtension"
  },
  "title" : "MediaExtension"
}
-->

# MediaExtension

This framework provides a means for developers to create format readers, video decoders, and RAW processors for media that the system doesn’t natively support.

## Overview

MediaExtension format readers encapsulate media assets that the system doesn’t natively support so that the system can recognize them. MediaExtension video decoders decode video formats that the system doesn’t natively support. MediaExtension RAW processors work together with video decoders to allow direct control over the RAW decoding process. Developers need to build format readers, video decoders, and RAW processors as <doc://com.apple.documentation/documentation/ExtensionKit> bundles and embed them in a host app. Once a user installs and runs the host app, the embedded extensions become available to any app on the user’s system that opts in to using them.

## Topics

### Format readers

[`MEFormatReader`](/documentation/MediaExtension/MEFormatReader)

A protocol that defines the requirements for a format reader, which represents a single media asset.

[`MEFormatReaderExtension`](/documentation/MediaExtension/MEFormatReaderExtension)

A protocol that defines a factory to create a new format reader with a byte source.

[`MEFormatReaderInstantiationOptions`](/documentation/MediaExtension/MEFormatReaderInstantiationOptions)

An object that contains options to pass to a format reader extension.

[`MEFileInfo`](/documentation/MediaExtension/MEFileInfo)

An object that contains file properties from the media asset.

[Format reader property list dictionaries](/documentation/MediaExtension/format-reader-property-list-dictionaries)

Include property list dictionaries to describe a format reader and register the formats it supports.

[Format reader entitlement](/documentation/MediaExtension/format-reader-entitlement)

Include an entitlement to indicate your extension is a MediaExtension format reader.

### Track readers

[`METrackReader`](/documentation/MediaExtension/METrackReader)

A protocol that defines the information to provide about a track within a media asset.

[`METrackInfo`](/documentation/MediaExtension/METrackInfo)

An object that includes track properties parsed from the media asset.

### Sample cursors

[`MESampleCursor`](/documentation/MediaExtension/MESampleCursor)

A protocol that defines the information to provide about samples within a track of a media asset, and enables stepping through samples in the track in decode or presentation order.

[`MESampleLocation`](/documentation/MediaExtension/MESampleLocation)

An object that provides information about the sample location with the media.

[`MESampleCursorChunk`](/documentation/MediaExtension/MESampleCursorChunk)

An object that provides information about the chunk of media at the location of a sample.

[`MEEstimatedSampleLocation`](/documentation/MediaExtension/MEEstimatedSampleLocation)

An object that provides information about the estimated sample location with the media.

[`MEHEVCDependencyInfo`](/documentation/MediaExtension/MEHEVCDependencyInfo)

An object that provides information about the HEVC dependency attributes of a sample.

### Byte sources

[`MEByteSource`](/documentation/MediaExtension/MEByteSource)

Provides read access to the data in a media asset file.

### Video decoders

[`MEVideoDecoder`](/documentation/MediaExtension/MEVideoDecoder)

A protocol that defines the requirements for a video decoder.

[`MEVideoDecoderExtension`](/documentation/MediaExtension/MEVideoDecoderExtension)

A protocol that defines a factory to create new video decoders for a codec type that the extension implements.

[`MEDecodeFrameOptions`](/documentation/MediaExtension/MEDecodeFrameOptions)

An object that guides the video decoder operation on a per-frame basis.

[`MEVideoDecoderPixelBufferManager`](/documentation/MediaExtension/MEVideoDecoderPixelBufferManager)

Describes pixel buffer requirements and creates new pixel buffers.

[Video decoder property list dictionary](/documentation/MediaExtension/video-decoder-property-list-dictionary)

Include a property list dictionary to describe a video decoder.

[Video decoder entitlement](/documentation/MediaExtension/video-decoder-entitlement)

Include an entitlement to indicate your extension is a MediaExtension video decoder.

### RAW processors

[`MERAWProcessor`](/documentation/MediaExtension/MERAWProcessor)

A protocol that defines the requirements for a RAW processor.

[`MERAWProcessorExtension`](/documentation/MediaExtension/MERAWProcessorExtension)

A protocol that defines a factory to create RAW processors for a codec type that the extension implements.

[`MERAWProcessorPixelBufferManager`](/documentation/MediaExtension/MERAWProcessorPixelBufferManager)

Describes pixel buffer requirements and creates new pixel buffers.

[`MERAWProcessingParameter`](/documentation/MediaExtension/MERAWProcessingParameter)

An object for the RAW processor to describe each processing parameter the processor exposes.

[`MERAWProcessorNotification`](/documentation/MediaExtension/MERAWProcessorNotification)

Notifications that indicate a RAW processor state change.

[RAW processor property list dictionary](/documentation/MediaExtension/raw-processor-property-list-dictionary)

Include a property list dictionary to describe a RAW processor.

[RAW processor entitlement](/documentation/MediaExtension/raw-processor-entitlement)

Include an entitlement to indicate your extension is a MediaExtension RAW processor.

### Errors

[`MediaExtensionErrorDomain`](/documentation/MediaExtension/MediaExtensionErrorDomain)

The domain of the error.

[`MEError`](/documentation/MediaExtension/MEError-swift.struct)

A MediaExtension framework error.

[`MEError.Code`](/documentation/MediaExtension/MEError-swift.struct/Code)

An enumeration that models media extension error codes.



---

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)