---
title: MEVideoDecoderExtension
framework: MediaExtension
role: symbol
role_heading: Protocol
platforms: [macOS 14.0+]
path: mediaextension/mevideodecoderextension
---

# MEVideoDecoderExtension

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

## Declaration

```swift
protocol MEVideoDecoderExtension : NSObjectProtocol
```

## Discussion

Discussion This protocol provides a factory method to create a new MEVideoDecoder instance for a codecType implemented by the extension. A single MEVideoDecoderExtension is instantiated by the VideoToolbox, and will be called to create individual MEVideoDecoder instances as needed. If the codecType or FormatDescription passed to makeVideoDecoder(codecType:videoFormatDescription:videoDecoderSpecifications:pixelBufferManager:) is not compatible with the MEVideoDecoder implementation, the factory call should fail and return MEError.Code.unsupportedFeature.

## Topics

### Creating a video decoder

- [init()](mediaextension/mevideodecoderextension/init().md)
- [makeVideoDecoder(codecType:videoFormatDescription:videoDecoderSpecifications:pixelBufferManager:)](mediaextension/mevideodecoderextension/makevideodecoder(codectype:videoformatdescription:videodecoderspecifications:pixelbuffermanager:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Video decoders

- [Supporting custom media formats and decoders](mediaextension/supporting-custom-media-formats-and-decoders.md)
- [MEVideoDecoder](mediaextension/mevideodecoder.md)
- [MEDecodeFrameOptions](mediaextension/medecodeframeoptions.md)
- [MEVideoDecoderPixelBufferManager](mediaextension/mevideodecoderpixelbuffermanager.md)
- [Video decoder property list dictionary](mediaextension/video-decoder-property-list-dictionary.md)
- [Video decoder entitlement](mediaextension/video-decoder-entitlement.md)
