---
title: VTDecompressionSession
framework: videotoolbox
role: collectionGroup
role_heading: API Collection
path: videotoolbox/vtdecompressionsession-api-collection
---

# VTDecompressionSession

An object that decompresses video data.

## Overview

Overview A decompression session supports the decompression of a sequence of video frames. Here’s the basic workflow: Create a decompression session by calling VTDecompressionSessionCreate(allocator:formatDescription:decoderSpecification:imageBufferAttributes:outputCallback:decompressionSessionOut:). Optionally, configure the session with your desired Decompression Properties by calling VTSessionSetProperty(_:key:value:) or VTSessionSetProperties(_:propertyDictionary:). Decode video frames using VTDecompressionSessionDecodeFrame(_:sampleBuffer:flags:frameRefcon:infoFlagsOut:). When you finish with the decompression session, call VTDecompressionSessionInvalidate(_:) to tear it down, and call CFRelease to free its memory.

## Topics

### Creating a Session

- [VTDecompressionSessionCreate(allocator:formatDescription:decoderSpecification:imageBufferAttributes:decompressionSessionOut:)](videotoolbox/vtdecompressionsessioncreate(allocator:formatdescription:decoderspecification:imagebufferattributes:decompressionsessionout:).md)
- [VTDecompressionSessionCreate(allocator:formatDescription:decoderSpecification:imageBufferAttributes:outputCallback:decompressionSessionOut:)](videotoolbox/vtdecompressionsessioncreate(allocator:formatdescription:decoderspecification:imagebufferattributes:outputcallback:decompressionsessionout:).md)

### Configuring a Session

- [Decompression Properties](videotoolbox/decompression-properties.md)
- [VTVideoDecoderExtensionProperties(_:)](videotoolbox/vtvideodecoderextensionproperties(_:).md)

### Decoding Frames

- [VTDecompressionSessionCanAcceptFormatDescription(_:formatDescription:)](videotoolbox/vtdecompressionsessioncanacceptformatdescription(_:formatdescription:).md)
- [VTDecompressionSessionDecodeFrame(_:sampleBuffer:flags:frameRefcon:infoFlagsOut:)](videotoolbox/vtdecompressionsessiondecodeframe(_:samplebuffer:flags:framerefcon:infoflagsout:).md)
- [VTDecompressionSessionDecodeFrame(_:sampleBuffer:flags:frameOptions:frameRefcon:infoFlagsOut:)](videotoolbox/vtdecompressionsessiondecodeframe(_:samplebuffer:flags:frameoptions:framerefcon:infoflagsout:).md)
- [VTDecompressionSessionDecodeFrame(_:sampleBuffer:flags:infoFlagsOut:outputHandler:)](videotoolbox/vtdecompressionsessiondecodeframe(_:samplebuffer:flags:infoflagsout:outputhandler:).md)
- [VTDecompressionSessionDecodeFrame(_:sampleBuffer:flags:frameOptions:infoFlagsOut:outputHandler:)](videotoolbox/vtdecompressionsessiondecodeframe(_:samplebuffer:flags:frameoptions:infoflagsout:outputhandler:).md)
- [VTDecompressionSessionDecodeFrame(_:sampleBuffer:flags:infoFlagsOut:completionHandler:)](videotoolbox/vtdecompressionsessiondecodeframe(_:samplebuffer:flags:infoflagsout:completionhandler:).md)
- [VTDecompressionSessionFinishDelayedFrames(_:)](videotoolbox/vtdecompressionsessionfinishdelayedframes(_:).md)
- [VTDecompressionSessionWaitForAsynchronousFrames(_:)](videotoolbox/vtdecompressionsessionwaitforasynchronousframes(_:).md)
- [VTDecompressionSessionCopyBlackPixelBuffer(_:pixelBufferOut:)](videotoolbox/vtdecompressionsessioncopyblackpixelbuffer(_:pixelbufferout:).md)

### Decoding Multi-Image Frames

- [VTIsStereoMVHEVCDecodeSupported()](videotoolbox/vtisstereomvhevcdecodesupported().md)
- [VTDecompressionMultiImageCapableOutputHandler](videotoolbox/vtdecompressionmultiimagecapableoutputhandler.md)

### Invalidating a Session

- [VTDecompressionSessionInvalidate(_:)](videotoolbox/vtdecompressionsessioninvalidate(_:).md)

### Accessing the Type Identifier

- [VTDecompressionSessionGetTypeID()](videotoolbox/vtdecompressionsessiongettypeid().md)

### Data Types

- [VTDecompressionSession](videotoolbox/vtdecompressionsession.md)
- [VTDecodeFrameFlags](videotoolbox/vtdecodeframeflags.md)
- [VTDecodeInfoFlags](videotoolbox/vtdecodeinfoflags.md)
- [VTDecompressionOutputCallback](videotoolbox/vtdecompressionoutputcallback.md)
- [VTDecompressionOutputCallbackRecord](videotoolbox/vtdecompressionoutputcallbackrecord.md)
- [VTDecompressionOutputHandler](videotoolbox/vtdecompressionoutputhandler.md)

## See Also

### Compression

- [Encoding video for low-latency conferencing](videotoolbox/encoding-video-for-low-latency-conferencing.md)
- [Encoding video for live streaming](videotoolbox/encoding-video-for-live-streaming.md)
- [Encoding video for offline transcoding](videotoolbox/encoding-video-for-offline-transcoding.md)
- [VTCompressionSession](videotoolbox/vtcompressionsession-api-collection.md)
- [VTFrameSilo](videotoolbox/vtframesilo-api-collection.md)
- [VTMultiPassStorage](videotoolbox/vtmultipassstorage-api-collection.md)
