VTFrameSilo

An object that stores a large number of sample buffers, as produced by a multipass compression session.

Overview

A frame silo object starts out empty and is populated by calls to VTFrameSiloAddSampleBuffer(_:sampleBuffer:) to add sample buffers in ascending decode order. After the first full pass, additional passes may be performed to replace sample buffers. Each such pass must begin with a call to VTFrameSiloSetTimeRangesForNextPass(_:timeRangeCount:timeRangeArray:), which takes a list of time ranges. Samples in these time ranges are deleted, and calls to VTFrameSiloAddSampleBuffer(_:sampleBuffer:) can then be made to provide replacements.

Call VTFrameSiloCallFunctionForEachSampleBuffer(_:in:refcon:callback:) or VTFrameSiloCallBlockForEachSampleBuffer(_:in:handler:) to retrieve sample buffers. The frame silo object may write sample buffers and data to the backing file between addition and retrieval; do not expect to get identical object pointers back.

The sample buffers are ordered by decode timestamp.

See Also

Multipass Compression

VTMultiPassStorage

An object used for the storage of multipass video encoding metadata.