EyeQ Docs
Api reference

iOS API reference

Complete API reference for the Video Mobile SDK on iOS.

This reference documents all public classes and methods in the iOS Video Mobile SDK.

PFCDynamic

The main class for image and video processing.

public class PFCDynamic

Initialize the SDK

The SDK is initialized by creating a PFCDynamic instance with your license credentials.

init(apiKey:certificate:)

Creates a new instance with license credentials.

public init(apiKey: String, certificate: String)
ParameterTypeDescription
apiKeyStringYour API key from EyeQ
certificateStringYour certificate string

Initialization does not guarantee that the instance will work correctly. Use checkStatus() to ensure initialization was successful before processing images.

Use raw string literals (#"..."#) for certificates to avoid escaping special characters.

License verification

Always verify the SDK initialized correctly before processing images.

checkStatus()

Verifies the initialization and license status.

public func checkStatus() -> Int32

Returns: Status code indicating initialization result.

CodeDescription
0Success
-1Expired certificate
-2Wrong API key/certificate combination
-3Failed to initialize AI model
-4Failed to load model file PFCDynamicModel.pnnc from framework resources
-5Failed to create context

Image processing

The core method for applying Dynamic correction to images.

processImage(_:strength:)

Applies Dynamic correction to an image.

public func processImage(_ image: CGImage, strength: Float) throws -> CGImage
ParameterTypeDescription
imageCGImageSource image
strengthFloatCorrection intensity (0.0–1.0)

Returns: Processed CGImage with applied Dynamic effect.

Video parameters

Configure these settings before processing video or camera frames to ensure temporal consistency and reduce flickering.

setParams(deflickerCurve:deflickerImage:skip:)

Configures parameters for video processing. Setting parameters to any value other than 0 is recommended only when working with videos or camera feeds.

public func setParams(deflickerCurve: Float, deflickerImage: Float, skip: Int)
ParameterTypeDescriptionRecommended
deflickerCurveFloatTone curve temporal smoothing (0.0–1.0)0.08
deflickerImageFloatImage correction temporal smoothing (0.0–1.0)0.9
skipIntFrames to skip between inference calculations0–2

Deflickering has a cumulative effect. Call resetDeflicker() when switching videos or cameras to reset the state.

Skip parameter behavior:

ValueBehaviorUse case
0Process every frameHighest quality
1Process every other frameBalanced performance
2Process every third frameLower-end devices

resetDeflicker()

Resets the deflickering state. Call this to clear the cumulative deflicker effect.

public func resetDeflicker()

When to call:

ScenarioAction
Switching cameras (front/back)Call resetDeflicker()
Starting new video recordingCall resetDeflicker()
Seeking in video playerCall resetDeflicker()
Loading new video fileCall resetDeflicker()
Resuming from backgroundCall resetDeflicker()

API summary

Quick reference for all PFCDynamic methods:

MethodDescription
init(apiKey:certificate:)Initialize with license credentials
checkStatus() -> Int32Verify initialization (0 = success)
processImage(_:strength:) throws -> CGImageProcess an image
setParams(deflickerCurve:deflickerImage:skip:)Configure video parameters
resetDeflicker()Reset deflicker state

VIDEO-SDK Version 1.0.0.23 built from aa5eef97017e23db1d3051b079500606825ef474 on 5-6-2023.

Copyright © 2026 EyeQ Imaging Inc. All rights reserved.

On this page