<!--
{
  "availability" : [
    "macCatalyst: -",
    "macOS: 15.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "VideoToolbox",
  "identifier" : "/documentation/VideoToolbox/VTRAWProcessingSessionProcessFrame",
  "metadataVersion" : "0.1.0",
  "role" : "Function",
  "symbol" : {
    "kind" : "Function",
    "modules" : [
      "Video Toolbox"
    ],
    "preciseIdentifier" : "c:@F@VTRAWProcessingSessionProcessFrame"
  },
  "title" : "VTRAWProcessingSessionProcessFrame"
}
-->

# VTRAWProcessingSessionProcessFrame

Submits RAW frames for format-specific processing using sequence and frame level parameters.

```
extern OSStatus VTRAWProcessingSessionProcessFrame(VTRAWProcessingSessionRef session, CVPixelBufferRef inputPixelBuffer, CFDictionaryRef frameOptions, VTRAWProcessingOutputHandler outputHandler);
```

## Parameters

`session`

The RAW processing session.

`inputPixelBuffer`

A pixel buffer that contains an input video frame to process.

`frameOptions`

Contains key/value pairs specifying additional properties for processing this frame. No keys currently. Pass `NULL`.

`outputHandler`

A [`VTRAWProcessingOutputHandler`](/documentation/VideoToolbox/VTRAWProcessingOutputHandler) block which will be called once when processing is complete.

## Discussion

Processed frames may or may not be output before the function returns. The client should not modify the input pixel data after making this call. The RAW Processor will retain the input pixel buffer as long as necessary.

For any RAW processor, there is a finite number of frames that can be  presented to [`VTRAWProcessingSessionProcessFrame`](/documentation/VideoToolbox/VTRAWProcessingSessionProcessFrame) before the function will block until the output callback is invoked.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)