Instance Property


A Boolean value that indicates whether the input might perform multiple passes over appended media data.


@property(nonatomic, readonly) BOOL canPerformMultiplePasses;


When the value for this property is YES, your source for media data should be configured for random access. After appending all of the media data for the current pass, as specified by the currentPassDescription property, invoke markCurrentPassAsFinished to start the process of determining whether additional passes are needed. Note that it is still possible in this case for the input to perform only the initial pass, if it determines that there will be no benefit to performing multiple passes.

When the value for this property is NO, your source for media data only needs to support sequential access. In this case, append all of the source media once and call markAsFinished.

In the default configuration of AVAssetWriterInput, the value for this property will be NO. Currently the only way for this property to become YES is when performsMultiPassEncodingIfSupported has been set to YES. The final value will be available after startWriting is called, when a specific encoder has been chosen.

This property supports Key-value observing.

See Also

Performing Multiple-Pass Encoding


An object that describes the requirements, such as source time ranges to append or re-append, to the current pass.

- markCurrentPassAsFinished

Instructs the receiver to analyze the appended media data and determine whether to improve the results by re-encoding certain segments.


A Boolean value that indicates whether the input should attempt to encode the source media data using multiple passes.


The boundary, in bytes, for aligning media chunks.


The duration used for each chunk of sample data in the output file.

- respondToEachPassDescriptionOnQueue:usingBlock:

Instructs the receiver to invoke a client-supplied block whenever a new pass has begun.