---
title: "process(with:parameters:)"
framework: videotoolbox
role: symbol
role_heading: Instance Method
path: "videotoolbox/vtframeprocessor/process(with:parameters:)"
---

# process(with:parameters:)

Asynchronously performs the video effect specified in the start session specifically for Metal.

## Declaration

```swift
func process(with commandBuffer: any MTLCommandBuffer, parameters: any VTFrameProcessorParameters)
```

## Parameters

- `commandBuffer`: An existing Metal command buffer where the frame processing will be inserted.
- `parameters`: A VTFrameProcessorParameters based object to specify additional frame based parameters to be used during processing. It needs to match the configuration type used during start session.

## Discussion

Discussion This function allows you to add the effect to an existing Metal command buffer. This can be used by clients that have an existing Metal pipeline and want to add this effect to it. note: This is an asynchronous call that waits until all previously inserted tasks in the command buffer finish before running. Tasks inserted after the buffer will run after the effect is applied.

## See Also

### Processing frames

- [startSession(configuration:)](videotoolbox/vtframeprocessor/startsession(configuration:).md)
- [process(parameters:)](videotoolbox/vtframeprocessor/process(parameters:).md)
- [process(parameters:completionHandler:)](videotoolbox/vtframeprocessor/process(parameters:completionhandler:).md)
- [endSession()](videotoolbox/vtframeprocessor/endsession().md)
