VTFrameSilo
An object that stores sample buffers from a multipass encoding 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; don’t expect to get identical object pointers back.
The sample buffers are ordered by decode timestamp.
Topics
Creating Frame Silos
Configuring Frame Silos
VTFrameSiloAddSampleBuffer(_:sampleBuffer:)VTFrameSiloSetTimeRangesForNextPass(_:timeRangeCount:timeRangeArray:)VTFrameSiloCallBlockForEachSampleBuffer(_:in:handler:)VTFrameSiloCallFunctionForEachSampleBuffer(_:in:refcon:callback:)