Skip to main content

AOQ Client SDK macOS API reference

This topic describes the Objective-C APIs, callbacks, and data types of AOQ Client SDK for macOS.

The SDK holds the engine instance as a global singleton, provides APIs through the AoqClientEngine class, and reports asynchronous events through the AoqEngineDelegate protocol.

API index

Engine lifecycle

APIDescription
createEngineCreate an engine instance (singleton)
destroyDestroy the engine instance
getVersionGet the SDK version
connectConnect to the Relay server
disconnectDisconnect from the server

Audio device management

APIDescription
startAudioCaptureOpen the audio capture device (microphone)
stopAudioCaptureClose the audio capture device
muteAudioCaptureMute or unmute audio capture
startAudioPlayerStart audio rendering (remote audio playback)
stopAudioPlayerStop audio rendering
pauseAudioPlayerPause audio rendering, with optional fade-out
resumeAudioPlayerResume audio rendering, with optional fade-in
interruptAudioPlayerInterrupt the current audio session

Audio encoding configuration

APIDescription
setAudioEncoderConfigSet audio encoding parameters
setAudioDecoderConfigSet audio decoding parameters

Audio file playback

APIDescription
startAudioFileStart playing and publishing a local audio file
stopAudioFileStop audio file playback
pauseAudioFilePause audio file playback
resumeAudioFileResume audio file playback
getAudioFileDurationGet the total duration of the audio file
getAudioFileCurrentPositionGet the current playback position of the audio file
setAudioFilePositionMillisSeek to a position in the audio file
setAudioFileVolumeSet the audio file volume
getAudioFileVolumeGet the current audio file volume

External audio streams

APIDescription
addAudioExternalStreamAdd an external audio stream
pushAudioExternalStreamDataPush external PCM audio data
setAudioExternalStreamVolumeSet the external audio stream volume
getAudioExternalStreamVolumeGet the external audio stream volume
clearAudioExternalStreamBufferClear the external audio stream buffer
removeAudioExternalStreamRemove an external audio stream

Audio frame callbacks

APIDescription
setAudioFrameObserverSet the audio frame callback delegate
enableAudioFrameObserverEnable or disable audio frame callbacks at a specified stage

Local audio volume indication

APIDescription
enableLocalAudioVolumeIndicationEnable or disable local capture volume indication

Video device management

APIDescription
startVideoCaptureOpen the video capture device (camera)
stopVideoCaptureClose the video capture device
setLocalViewSet or remove the local video rendering window
setRemoteViewSet or remove the remote video rendering window

Video encoding and external input

APIDescription
setVideoEncoderConfigSet video encoding parameters
setVideoDecoderConfigSet video decoding parameters
pushExternalVideoCapturedFramePush externally captured video frames
pushExternalVideoEncodedFramePush externally encoded video frames

Screen capture

APIDescription
getScreenSourceListGet the list of screen capture sources (Mac desktop only)
startScreenCaptureStart screen capture
stopScreenCaptureStop screen capture

Media stream transmission control

APIDescription
enableSendMediaStreamEnable or disable local media stream transmission

Video frame callbacks

APIDescription
setVideoFrameObserverSet the video frame callback delegate
enableVideoFrameObserverEnable or disable video frame callbacks at a specified stage

Real-time messages

APIDescription
sendDataMsgSend a real-time data message

AoqEngineDelegate

APIDescription
onErrorEngine error callback
onWarningEngine warning callback
onConnectionStatusChangeConnection status change callback
onStatsEngine statistics callback
onAudioDeviceStateChangedAudio device operation status change callback
onAudioDeviceRouteChangedAudio output route change callback
onAudioFileStateAudio file playback status callback
onLocalAudioVolumeIndicationLocal capture volume indication callback
onVideoDeviceStateChangedVideo device operation status change callback
onDataMsgReceived real-time data message callback

AoqAudioFrameDelegate

APIDescription
onCapturedAudioFrameCalled when a raw audio frame is captured. The frame contains unprocessed PCM data.
onProcessCapturedAudioFrameCalled for an audio frame after 3A processing, such as echo cancellation and noise suppression.
onPublishAudioFrameCalled for an audio frame before publishing, immediately before encoding and transmission.
onPlaybackAudioFrameCalled for a remote audio frame before playback, after decoding and mixing.

AoqVideoFrameDelegate

APIDescription
onCapturedVideoFrameCalled when a raw video frame is captured, before preprocessing. trackType distinguishes Video and Screen tracks.
onPreEncodeVideoFrameCalled for a video frame after preprocessing and before encoding.
onRemoteVideoFrameCalled for a remote video frame after decoding and before rendering.

API details

Engine lifecycle

createEngine:delegate:

Creates the engine instance. The SDK holds the engine as a global singleton, so calling this method again returns the existing instance.
+ (instancetype _Nonnull)createEngine:(AoqCreateConfig * _Nonnull)config
                             delegate:(id<AoqEngineDelegate> _Nonnull)delegate;
Parameters

Parameters

Type

Description

config

AoqCreateConfig *

Engine creation configuration. For more information, see AoqCreateConfig.

delegate

id<AoqEngineDelegate>

Engine event callback delegate. For more information, see AoqEngineDelegate.

Returns: The engine instance. nil is never returned.

destroy

Destroys the engine instance. After the engine is destroyed, you must call createEngine:delegate: again before you can continue to use it.
+ (int)destroy;
Returns: 0 on success; non-zero on failure.

getVersion

Gets the SDK version.
+ (NSString * _Nonnull)getVersion;
Returns: The version string.

connect:

Connects to the relay server. The application server obtains temporary AOQ connection parameters based on the protocol in use and sends them to the client. For more information, see Token authentication.
- (int)connect:(AoqConnectConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqConnectConfig *

Connection authentication configuration. For more information, see AoqConnectConfig.

Returns: 0 indicates that the call is dispatched and runs asynchronously; non-zero indicates that parameter validation failed.

disconnect

Disconnects from the server.
- (int)disconnect;
Returns: 0 indicates that the call is dispatched and runs asynchronously; non-zero indicates a failure.

Audio device management

startAudioCapture:

Opens the audio capture device (microphone).
- (int)startAudioCapture:(AoqAudioCaptureConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqAudioCaptureConfig *

Audio capture configuration. For more information, see AoqAudioCaptureConfig.

Returns: 0 on success; non-zero on failure.

stopAudioCapture

Closes the audio capture device.
- (int)stopAudioCapture;
Returns: 0 on success; non-zero on failure.

muteAudioCapture:

Mutes or unmutes audio capture.
- (int)muteAudioCapture:(BOOL)mute;
Parameters

Parameters

Type

Description

mute

BOOL

YES mutes; NO unmutes

Returns: 0 on success; non-zero on failure.

startAudioPlayer:

Starts audio rendering to play remote audio.
- (int)startAudioPlayer:(AoqAudioPlaybackConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqAudioPlaybackConfig *

Audio playback configuration. For more information, see AoqAudioPlaybackConfig.

Returns: 0 on success; non-zero on failure.

stopAudioPlayer

Stops audio rendering.
- (int)stopAudioPlayer;
Returns: 0 on success; non-zero on failure.

pauseAudioPlayer:

Pauses audio rendering, with fade-out supported.
- (int)pauseAudioPlayer:(NSInteger)fadeMs;
Parameters

Parameters

Type

Description

fadeMs

NSInteger

Fade-out duration, in milliseconds. 0 indicates immediate pause.

Returns: 0 on success; non-zero on failure.

resumeAudioPlayer:

Resumes audio rendering, with fade-in supported.
- (int)resumeAudioPlayer:(NSInteger)fadeMs;
Parameters

Parameters

Type

Description

fadeMs

NSInteger

Fade-in duration, in milliseconds. 0 indicates immediate resumption.

Returns: 0 on success; non-zero on failure.

interruptAudioPlayer:fadeMs:

Interrupts the current audio session and stops the audio that is currently playing.
- (int)interruptAudioPlayer:(AoqTrackType)trackType fadeMs:(NSInteger)fadeMs;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Track type. For more information, see AoqTrackType.

fadeMs

NSInteger

Fade-out duration, in milliseconds. 0 indicates immediate interruption.

Returns: 0 on success; non-zero on failure.

Audio encoding configuration

setAudioEncoderConfig:

Sets audio encoding parameters.
- (int)setAudioEncoderConfig:(AoqAudioCodecConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqAudioCodecConfig *

Audio codec configuration. For more information, see AoqAudioCodecConfig.

Returns: 0 on success; non-zero on failure.

setAudioDecoderConfig:

Sets audio decoding parameters.
- (int)setAudioDecoderConfig:(AoqAudioCodecConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqAudioCodecConfig *

Audio codec configuration. For more information, see AoqAudioCodecConfig.

Returns: 0 on success; non-zero on failure.

Audio file playback

startAudioFile:config:

Starts playing a local audio file to the publishing stream.
- (int)startAudioFile:(NSString * _Nonnull)fileId
               config:(AoqAudioFileMixConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID. The business layer must ensure that it is unique.

config

AoqAudioFileMixConfig *

Audio file mixing configuration. For more information, see AoqAudioFileMixConfig.

Returns: 0 on success; non-zero on failure.

stopAudioFile:

Stops audio file playback.
- (int)stopAudioFile:(NSString * _Nonnull)fileId;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

Returns: 0 on success; non-zero on failure.

pauseAudioFile:

Pauses audio file playback.
- (int)pauseAudioFile:(NSString * _Nonnull)fileId;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

Returns: 0 on success; non-zero on failure.

resumeAudioFile:

Resumes audio file playback.
- (int)resumeAudioFile:(NSString * _Nonnull)fileId;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

Returns: 0 on success; non-zero on failure.

getAudioFileDuration:

Gets the total duration of the audio file.
- (long long)getAudioFileDuration:(NSString * _Nonnull)fileId;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

Returns: A value greater than or equal to 0 indicates the duration of the audio file, in milliseconds; a value less than 0 indicates a failure.

getAudioFileCurrentPosition:

Gets the current playback position of the audio file.
- (long long)getAudioFileCurrentPosition:(NSString * _Nonnull)fileId;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

Returns: A value greater than or equal to 0 indicates the current playback position, in milliseconds; a value less than 0 indicates a failure.

setAudioFilePositionMillis:positionMillis:

Sets the playback position of the audio file (seek).
- (int)setAudioFilePositionMillis:(NSString * _Nonnull)fileId
                  positionMillis:(long long)positionMillis;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

positionMillis

long long

Playback position, in milliseconds

Returns: 0 on success; non-zero on failure.

setAudioFileVolume:type:volume:

Sets the volume of the audio file.
- (int)setAudioFileVolume:(NSString * _Nonnull)fileId
                     type:(AoqAudioStreamDirection)type
                   volume:(NSInteger)volume;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

type

AoqAudioStreamDirection

Audio stream direction. For more information, see AoqAudioStreamDirection.

volume

NSInteger

Volume value. Valid values: 0 to 100.

Returns: 0 on success; non-zero on failure.

getAudioFileVolume:type:

Gets the current volume of the audio file.
- (int)getAudioFileVolume:(NSString * _Nonnull)fileId
                     type:(AoqAudioStreamDirection)type;
Parameters

Parameters

Type

Description

fileId

NSString *

Audio file ID

type

AoqAudioStreamDirection

Audio stream direction. For more information, see AoqAudioStreamDirection.

Returns: A value from 0 to 100 indicates the volume; a value less than 0 indicates a failure.

External audio streams

addAudioExternalStream:config:

Adds an external audio stream.
- (int)addAudioExternalStream:(NSString * _Nonnull)streamId
                       config:(AoqAudioExternalStreamConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

streamId

NSString *

External audio stream ID. The business layer must ensure that it is unique.

config

AoqAudioExternalStreamConfig *

External audio stream configuration. For more information, see AoqAudioExternalStreamConfig.

Returns: 0 on success; non-zero on failure.

pushAudioExternalStreamData:data:

Feeds external audio PCM data. If AoqECAudioExternalBufferFull (110) is returned, the SDK buffer is full, and we recommend that you wait about 20 ms and then send the current data frame again.
- (int)pushAudioExternalStreamData:(NSString * _Nonnull)streamId
                              data:(AoqAudioFrameData * _Nonnull)data;
Parameters

Parameters

Type

Description

streamId

NSString *

External audio stream ID

data

AoqAudioFrameData *

Raw external audio data. For more information, see AoqAudioFrameData.

Returns: 0 on success; non-zero on failure.
Best practice: In real-time capture scenarios, push 10 ms of data at a time and push whenever data is available. When the data comes from a file, push 40 ms of data at a time at 30 ms intervals, and handle the AoqECAudioExternalBufferFull return value.

setAudioExternalStreamVolume:type:volume:

Sets the volume of an external audio stream.
- (int)setAudioExternalStreamVolume:(NSString * _Nonnull)streamId
                               type:(AoqAudioStreamDirection)type
                             volume:(NSInteger)volume;
Parameters

Parameters

Type

Description

streamId

NSString *

External audio stream ID

type

AoqAudioStreamDirection

External audio stream type. For more information, see AoqAudioStreamDirection.

volume

NSInteger

Volume value. Valid values: 0 to 100.

Returns: 0 on success; non-zero on failure.

getAudioExternalStreamVolume:type:

Gets the volume of an external audio stream.
- (int)getAudioExternalStreamVolume:(NSString * _Nonnull)streamId
                               type:(AoqAudioStreamDirection)type;
Parameters

Parameters

Type

Description

streamId

NSString *

External audio stream ID

type

AoqAudioStreamDirection

External audio stream type. For more information, see AoqAudioStreamDirection.

Returns: A value from 0 to 100 indicates the volume; a value less than 0 indicates a failure.

clearAudioExternalStreamBuffer:fadeoutMs:

Clears the buffer of an external audio stream.
- (void)clearAudioExternalStreamBuffer:(NSString * _Nonnull)streamId
                              fadeoutMs:(NSInteger)fadeoutMs;
Parameters

Parameters

Type

Description

streamId

NSString *

External audio stream ID

fadeoutMs

NSInteger

Fade-out duration. -1 uses the SDK's default fade-out, 0 clears everything without a fade-out, and a value greater than 0 keeps a fade-out of the specified number of milliseconds.

Returns: None.

removeAudioExternalStream:

Removes an external audio stream.
- (int)removeAudioExternalStream:(NSString * _Nonnull)streamId;
Parameters

Parameters

Type

Description

streamId

NSString *

External audio stream ID

Returns: 0 on success; non-zero on failure.

Audio frame callbacks

setAudioFrameObserver:

Sets the audio frame data callback delegate. Pass nil to stop callbacks. After you set the delegate, call enableAudioFrameObserver:audioSource:config: to enable the callback for the corresponding data source.
- (int)setAudioFrameObserver:(id<AoqAudioFrameDelegate> _Nullable)delegate;
Parameters

Parameters

Type

Description

delegate

id<AoqAudioFrameDelegate>

Audio frame callback delegate. For more information, see AoqAudioFrameDelegate. Pass nil to stop callbacks.

Returns: 0 on success; non-zero on failure.

enableAudioFrameObserver:audioSource:config:

Enables or disables the audio frame callback at a specified position.
- (int)enableAudioFrameObserver:(BOOL)enabled
                   audioSource:(AoqAudioSource)audioSource
                        config:(AoqAudioObserverConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

enabled

BOOL

Specifies whether to allow data callbacks

audioSource

AoqAudioSource

Type of the raw audio data source. For more information, see AoqAudioSource.

config

AoqAudioObserverConfig *

Callback parameter settings. For more information, see AoqAudioObserverConfig.

Returns: 0 on success; non-zero on failure.

Local audio volume indication

enableLocalAudioVolumeIndication:

Enables or disables local capture volume indication. After it is enabled, the onLocalAudioVolumeIndication: callback is triggered at the interval specified by config.interval. If config.interval <= 0, the callback is disabled. You must call this method after startAudioCapture: to obtain volume data.
- (int)enableLocalAudioVolumeIndication:(AoqAudioVolumeIndicationConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqAudioVolumeIndicationConfig *

Volume indication configuration. For more information, see AoqAudioVolumeIndicationConfig.

Returns: 0 on success; non-zero on failure.

Video device management

startVideoCapture:

Opens the video capture device (camera). When isExternal=YES is configured, the camera is not opened, and frames are fed by pushExternalVideoCapturedFrame:frame:.
- (int)startVideoCapture:(AoqVideoCaptureConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqVideoCaptureConfig *

Video capture configuration. For more information, see AoqVideoCaptureConfig.

Returns: 0 on success; non-zero on failure.

stopVideoCapture

Closes the video capture device.
- (int)stopVideoCapture;
Returns: 0 on success; non-zero on failure.

setLocalView:canvas:

Sets or removes the local video rendering window. If you pass nil for canvas or canvas.view is nil, the binding is removed.
- (int)setLocalView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Video track. Pass AoqTrackTypeVideo.

canvas

AoqVideoCanvas *

Rendering canvas. For more information, see AoqVideoCanvas. Pass nil to remove the binding.

Returns: 0 on success; non-zero on failure.

setRemoteView:canvas:

Sets or removes the remote video rendering window. If you pass nil for canvas or canvas.view is nil, the binding is removed.
- (int)setRemoteView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Video track. Pass AoqTrackTypeVideo.

canvas

AoqVideoCanvas *

Rendering canvas. For more information, see AoqVideoCanvas. Pass nil to remove the binding.

Returns: 0 on success; non-zero on failure.

Video encoding and external input

setVideoEncoderConfig:

Sets video encoding parameters and routes them based on config.trackType.
- (int)setVideoEncoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqVideoCodecConfig *

Video codec configuration. For more information, see AoqVideoCodecConfig.

Returns: 0 on success; non-zero on failure.

setVideoDecoderConfig:

Sets video decoding parameters (a codec proposal on the subscribing side, which must be called before connect:). The call is routed based on config.trackType.
- (int)setVideoDecoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

config

AoqVideoCodecConfig *

Video codec configuration. For more information, see AoqVideoCodecConfig.

Returns: 0 on success; non-zero on failure.

pushExternalVideoCapturedFrame:frame:

Pushes an external video frame. You must first call startVideoCapture: and configure isExternal=YES. If external video capture is not started or the format is not supported, AoqECParamInvalid is returned.
- (int)pushExternalVideoCapturedFrame:(AoqTrackType)trackType
                                frame:(AoqVideoFrame * _Nonnull)frame;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Routing target. Pass AoqTrackTypeVideo.

; AoqTrackTypeScreen is also supported

frame

AoqVideoFrame *

External video frame data. For more information, see AoqVideoFrame.

Returns: 0 on success; AoqECVideoExternalBufferFull (210) indicates that the buffer is full; a value less than 0 indicates another error.

pushExternalVideoEncodedFrame:frame:

Pushes an externally encoded video frame directly, bypassing the encoder. You must first call setVideoEncoderConfig: and configure isExternal=YES. Only JPEG is currently supported.
- (int)pushExternalVideoEncodedFrame:(AoqTrackType)trackType
                               frame:(AoqVideoEncodedFrame * _Nonnull)frame;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Routing target. Pass AoqTrackTypeVideo.

; AoqTrackTypeScreen is also supported

frame

AoqVideoEncodedFrame *

Externally encoded frame data. For more information, see AoqVideoEncodedFrame.

Returns: 0 on success; non-zero on failure.

Screen capture

- (int)startScreenCapture:(AoqScreenCaptureConfig * _Nonnull)config;
- (int)stopScreenCapture;
config specifies screen capture settings. Screen content is sent on the AoqTrackTypeScreen track. Returns 0 on success or a nonzero value on failure. These methods return synchronously and do not provide an onScreenCaptureStateChanged callback. Call getScreenSourceList to enumerate screens and windows, then pass the selected sourceId and sourceType in the capture configuration. For external raw frames, set isExternal=YES and supply raw Screen frames through pushExternalVideoCapturedFrame for SDK encoding. For external encoded frames, configure the Screen track for external encoding with setVideoEncoderConfig, then call pushExternalVideoEncodedFrame.

getScreenSourceList

- (AoqScreenSourceList * _Nullable)getScreenSourceList;
Returns a screen source list, or nil on failure.

Media stream transmission control

enableSendMediaStream:enable:

Enables or disables sending of a local media stream. We recommend that you disable sending after initialization and enable it only after the onConnectionStatusChange: callback reports AoqConnectionStatusConnected.
- (int)enableSendMediaStream:(AoqTrackType)trackType enable:(BOOL)enable;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Routing target. AoqTrackTypeAudio and AoqTrackTypeVideo are supported.

; also supports AoqTrackTypeScreen

enable

BOOL

YES enables sending; NO disables sending

Returns: 0 indicates that the call is dispatched and runs asynchronously; non-zero indicates a failure.

Video frame callbacks

setVideoFrameObserver:

Sets the video frame data callback delegate. Pass nil to stop callbacks. After you set the delegate, call enableVideoFrameObserver:videoSource:config: to enable the callback for the corresponding data source.
- (int)setVideoFrameObserver:(id<AoqVideoFrameDelegate> _Nullable)delegate;
Parameters

Parameters

Type

Description

delegate

id<AoqVideoFrameDelegate>

Video frame callback delegate. For more information, see AoqVideoFrameDelegate. Pass nil to stop callbacks.

Returns: 0 on success; non-zero on failure.

enableVideoFrameObserver:videoSource:config:

Enables or disables the video frame callback at a specified position.
- (int)enableVideoFrameObserver:(BOOL)enabled
                    videoSource:(AoqVideoSource)videoSource
                         config:(AoqVideoObserverConfig * _Nonnull)config;
Parameters

Parameters

Type

Description

enabled

BOOL

Specifies whether to enable data callbacks at a position

videoSource

AoqVideoSource

Data source of the video frame callback (position in the pipeline). For more information, see AoqVideoSource.

config

AoqVideoObserverConfig *

Callback parameter settings. For more information, see AoqVideoObserverConfig.

Returns: 0 on success; non-zero on failure.

Real-time messages

sendDataMsg:

Sends a real-time data message.
- (int)sendDataMsg:(AoqDataMsg * _Nonnull)msg;
Parameters

Parameters

Type

Description

msg

AoqDataMsg *

Message content. For more information, see AoqDataMsg.

Returns: 0 on success; non-zero on failure.

AoqEngineDelegate

AoqEngineDelegate is the unified entry point for all asynchronous event notifications from the SDK. It is passed in when you call createEngine:delegate:. All callback methods are @required. State transitions: Disconnected → Connecting → Connected/Failed → Disconnected.

onError:message:

Engine error callback.
- (void)onError:(NSInteger)code message:(NSString * _Nonnull)message;
Parameters

Parameters

Type

Description

code

NSInteger

Error code. For more information, see AoqErrorCode.

message

NSString *

Error description

onWarning:message:

Engine warning callback.
- (void)onWarning:(NSInteger)code message:(NSString * _Nonnull)message;
Parameters

Parameters

Type

Description

code

NSInteger

Warning code. For more information, see AoqWarningCode.

message

NSString *

Warning description

onConnectionStatusChange:

Engine connection status change callback.
- (void)onConnectionStatusChange:(AoqConnectionStatus)status;
Parameters

Parameters

Type

Description

status

AoqConnectionStatus

Connection status. For more information, see AoqConnectionStatus.

onStats:

Engine statistics callback.
- (void)onStats:(AoqStats * _Nonnull)stats;
Parameters

Parameters

Type

Description

stats

AoqStats *

Statistics data. For more information, see AoqStats.

onAudioDeviceStateChanged:

Callback for audio device capture and playback operation status changes.
- (void)onAudioDeviceStateChanged:(AoqAudioDeviceState * _Nonnull)state;
Parameters

Parameters

Type

Description

state

AoqAudioDeviceState *

Audio device state. For more information, see AoqAudioDeviceState.

onAudioDeviceRouteChanged:

Audio output route change callback.
- (void)onAudioDeviceRouteChanged:(NSInteger)routeType;
Parameters

Parameters

Type

Description

routeType

NSInteger

Route type. For the valid values, see AoqAudioDeviceRouteType.

onAudioFileState:

Callback for audio file playback status.
- (void)onAudioFileState:(AoqAudioFileState * _Nonnull)state;
Parameters

Parameters

Type

Description

state

AoqAudioFileState *

File playback state. For more information, see AoqAudioFileState.

onLocalAudioVolumeIndication:

Local capture volume indication callback. To enable it, call enableLocalAudioVolumeIndication:.
- (void)onLocalAudioVolumeIndication:(AoqAudioVolume * _Nonnull)volume;
Parameters

Parameters

Type

Description

volume

AoqAudioVolume *

Local volume information. For more information, see AoqAudioVolume.

onVideoDeviceStateChanged:

Callback for video device capture operation status changes.
- (void)onVideoDeviceStateChanged:(AoqVideoDeviceState * _Nonnull)state;
Parameters

Parameters

Type

Description

state

AoqVideoDeviceState *

Video device state. For more information, see AoqVideoDeviceState.

onDataMsg:

Callback for a received real-time data message.
- (void)onDataMsg:(AoqDataMsg * _Nonnull)msg;
Parameters

Parameters

Type

Description

msg

AoqDataMsg *

Data message. For more information, see AoqDataMsg.

AoqAudioFrameDelegate

Protocol for audio frame data callbacks. All methods are @optional. Do not perform any time-consuming operations in the callbacks. Otherwise, audio anomalies may occur.

onCapturedAudioFrame:

Callback for raw captured data. To enable it, call enableAudioFrameObserver: and set audioSource = AoqAudioSourceCaptured. You can set the sample rate and the number of channels, and read-write mode is supported.
- (void)onCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
Parameters

Parameters

Type

Description

frame

AoqAudioFrameData *

Raw captured audio data. For more information, see AoqAudioFrameData.

onProcessCapturedAudioFrame:

Callback for data after 3A processing. To enable it, call enableAudioFrameObserver: and set audioSource = AoqAudioSourceProcessCaptured. You can set the sample rate and the number of channels, and read-write mode is supported.
- (void)onProcessCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
Parameters

Parameters

Type

Description

frame

AoqAudioFrameData *

Raw audio data after 3A processing. For more information, see AoqAudioFrameData.

onPublishAudioFrame:frame:

Callback for publishing data. To enable it, call enableAudioFrameObserver: and set audioSource = AoqAudioSourcePublish. You can set the sample rate and the number of channels, and only read-only mode is supported.
- (void)onPublishAudioFrame:(AoqTrackType)trackType
                      frame:(AoqAudioFrameData * _Nonnull)frame;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Track type. For more information, see AoqTrackType.

frame

AoqAudioFrameData *

Raw audio data to be published. For more information, see AoqAudioFrameData.

onPlaybackAudioFrame:

Callback for playback data. To enable it, call enableAudioFrameObserver: and set audioSource = AoqAudioSourcePlayback. You can set the sample rate and the number of channels, and read-write mode is supported.
- (void)onPlaybackAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
Parameters

Parameters

Type

Description

frame

AoqAudioFrameData *

Raw audio data for playback. For more information, see AoqAudioFrameData.

AoqVideoFrameDelegate

Protocol for video frame data callbacks. All methods are @optional. Do not perform any time-consuming operations in the callbacks. Otherwise, video stuttering may occur. A return value of YES indicates that the data is modified and must be written back to the SDK. Writing back takes effect only for I420 and CVPixelBuffer. A return value of NO indicates read-only. The data in frame is valid only during the callback. To use it asynchronously, copy it yourself.

onCapturedVideoFrame:

Callback for local raw data after capture, before preprocessing. To enable it, call enableVideoFrameObserver: and set videoSource = AoqVideoSourceCaptured.
- (BOOL)onCapturedVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
Parameters

Parameters

Type

Description

frame

AoqVideoFrame *

Captured video frame data. For more information, see AoqVideoFrame.

trackTypeAoqTrackTypeVideo track type: Video or Screen.
Returns: YES indicates that the data is modified and must be written back to the SDK; NO indicates read-only.

onPreEncodeVideoFrame:frame:

Callback for local raw data before encoding, after preprocessing. To enable it, call enableVideoFrameObserver: and set videoSource = AoqVideoSourcePreEncode.
- (BOOL)onPreEncodeVideoFrame:(AoqTrackType)trackType
                        frame:(AoqVideoFrame * _Nonnull)frame;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Video track type. For more information, see AoqTrackType.

frame

AoqVideoFrame *

Video frame data before encoding. For more information, see AoqVideoFrame.

Returns: YES indicates that the data is modified and must be written back to the SDK; NO indicates read-only.

onRemoteVideoFrame:frame:

Callback for remote raw data after decoding and before rendering. To enable it, call enableVideoFrameObserver: and set videoSource = AoqVideoSourceRemote.
- (BOOL)onRemoteVideoFrame:(AoqTrackType)trackType
                     frame:(AoqVideoFrame * _Nonnull)frame;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Video track type. For more information, see AoqTrackType.

frame

AoqVideoFrame *

Remote video frame data. For more information, see AoqVideoFrame.

Returns: YES indicates that the data is modified and must be written back to the SDK; NO indicates read-only.

Data types and enumerations

Common types

AoqCreateConfig

Engine creation configuration.

Field

Type

Default value

Description

workDir

NSString *

""

SDK working directory

enableDumpAudio

BOOL

NO

Specifies whether to enable raw audio data dump (for debugging)

extras

NSString *

""

Extended parameters

maxEncodedVideoFrameBytesNSInteger190 × 1024Maximum encoded frame size in bytes. Applies only to the SDK internal JPEG encoder. A value of 0 disables the limit.
enableDropOversizedVideoFrameBOOLNOFor the SDK internal JPEG encoder, whether to drop a frame that remains oversized at the lowest quality.

AoqConnectConfig

Configuration for connecting to the relay server.

Field

Type

Description

token

NSString *

Connection authentication token

sid

NSString *

Session ID

certFingerprint

NSString *

Server certificate fingerprint

relayEndpoints

NSArray<AoqRelayEndpoint *> *

List of relay access points

workspaceIdHash

NSString *

Workspace hash ID

publishTracks

NSArray<AoqTrackParam *> *

Array of local publishing track attributes

subscribeTracks

NSArray<AoqTrackParam *> *

Array of local subscribing track attributes

AoqRelayEndpoint

A relay access point.

Field

Type

Default value

Description

routeIndex

NSInteger

-1

Path index

endpoint

NSString *

""

Server address (domain name or IP address)

port

NSInteger

0

Server port

tcpPortNSInteger0TCP fallback port. A value of 0 uses the SDK default port, 443.

AoqTrackParam

The track attribute.

Field

Type

Default value

Description

trackType

AoqTrackType

Audio

Track type

trackMode

AoqTrackMode

Segment

Streaming or non-streaming mode. Effective only for the audio downlink.

AoqDataMsg

Data structure of a real-time message.

Field

Type

Description

data

NSData *

Message content. It points to memory held by the caller.

Statistics types

AoqStats

Engine statistics.

Field

Type

Description

audioPublishStats

NSArray<AoqAudioPublishStats *> *

Array of publishing statistics for audio

videoPublishStats

NSArray<AoqVideoPublishStats *> *

Array of publishing statistics for video

dataMsgPublishStats

NSArray<AoqDataMsgPublishStats *> *

Array of publishing statistics for data messages

audioSubscribeStats

NSArray<AoqAudioSubscribeStats *> *

Array of subscribing statistics for audio

videoSubscribeStats

NSArray<AoqVideoSubscribeStats *> *

Array of subscribing statistics for video

dataMsgSubscribeStats

NSArray<AoqDataMsgSubscribeStats *> *

Array of subscribing statistics for data messages

networkStats

AoqNetworkStats *

Network statistics

AoqNetworkStats

Network statistics.

Field

Type

Description

sendBitrate

NSUInteger

Send bitrate, in bit/s

sendBytes

NSUInteger

Cumulative bytes sent

recvBitrate

NSUInteger

Receive bitrate, in bit/s

recvBytes

NSUInteger

Cumulative bytes received

loss

NSUInteger

Packet loss rate, from 0 to 100

rtt

NSUInteger

Round-trip latency, in ms

AoqAudioPublishStats

Publishing statistics for audio.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

NSUInteger

Bitrate, in bit/s

bytes

NSUInteger

Cumulative bytes

encodeVolume

NSUInteger

Encoding volume of the publishing stream

AoqVideoPublishStats

Publishing statistics for video.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

NSUInteger

Bitrate, in bit/s

bytes

NSUInteger

Cumulative bytes

encodeFps

NSUInteger

Encoding frame rate

AoqDataMsgPublishStats

Publishing statistics for data messages.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

NSUInteger

Bitrate, in bit/s

bytes

NSUInteger

Cumulative bytes

AoqAudioSubscribeStats

Subscribing statistics for audio.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

NSUInteger

Bitrate, in bit/s

bytes

NSUInteger

Cumulative bytes

playVolume

NSUInteger

Playback volume

AoqVideoSubscribeStats

Subscribing statistics for video.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

NSUInteger

Bitrate, in bit/s

bytes

NSUInteger

Cumulative bytes

decodeFps

NSUInteger

Decoding frame rate

renderFps

NSUInteger

Rendering frame rate

AoqDataMsgSubscribeStats

Subscribing statistics for data messages.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

NSUInteger

Bitrate, in bit/s

bytes

NSUInteger

Cumulative bytes

Enumerations

AoqErrorCode

Error code enumeration.

Enum value

Value

Description

AoqECOK

0

Success

AoqECParamInvalid

1

Invalid parameter

AoqECStateInvalid

2

Invalid state

AoqECUnSupport

3

The API is not supported

AoqECAudio

100

Generic audio error

AoqECAudioExternalBufferFull

110

External audio buffer is full

AoqECAudioDevice

120

Generic audio device error

AoqECAudioDeviceRecordingAuthFailed

121

Recording permission not granted

AoqECAudioDeviceRecordingOccupied

122

Recording device is in use

AoqECAudioDeviceRecordingBackgroundStart

123

Start recording in the background

AoqECAudioDeviceRecordingStartFail

124

Failed to start recording

AoqECAudioDevicePlayoutOccupied

125

Playback device is in use

AoqECAudioDevicePlayoutBackgroundStart

126

Start playback in the background

AoqECAudioDevicePlayoutStartFail

127

Failed to start playback

AoqECVideo

200

Generic video error

AoqECVideoExternalBufferFull

210

External video buffer is full

AoqECVideoExternalCaptureNotEnabled

211

External video capture is not enabled

AoqECVideoExternalEncoderNotEnabled

212

External video encoding is not enabled

AoqECVideoDevice

220

Generic video device error

AoqECVideoDeviceCameraOpenFail

221

Failed to open the camera

AoqECVideoDeviceCameraAuthFailed

222

Camera permission not granted

AoqECVideoDeviceCameraOccupied

223

Camera is in use

AoqECVideoDeviceCameraRunningError

224

Camera runtime error

AoqECVideoCodec

230

Generic video codec error

AoqECVideoCodecEncoderInitFail

231

Failed to initialize the encoder

AoqECVideoRender

240

Generic video rendering error

AoqECVideoRenderCreateFail

241

Failed to create the rendering view

AoqECVideoRenderDrawError

242

Rendering drawing error

AoqWarningCode

Warning code enumeration.

Enum value

Value

Description

AoqWCOK

0

No warning

AoqWCAudio

100

Generic audio warning

AoqWCAudioHowling

101

Audio howling detected

AoqWCAudioDevice

120

Generic audio device warning

AoqWCAudioDeviceMicEnumerateError

121

Microphone enumeration error

AoqWCAudioDeviceMicStartTimeout

122

Microphone startup timed out

AoqWCAudioDeviceRecordingError

123

Recording error

AoqWCAudioDeviceSpeakerEnumerateError

124

Speaker enumeration error

AoqWCAudioDeviceSpeakerStartTimeout

125

Speaker startup timed out

AoqWCAudioDevicePlayoutError

126

Playback error

AoqWCVideo

200

Generic video warning

AoqWCVideoCameraEnumerateError

201

Camera enumeration error

AoqWCVideoEncoderSwitched

202

Video encoder switched

AoqWCVideoRenderDowngrade

203

Video rendering downgraded

AoqTrackType

Track type.

Enum value

Value

Description

AoqTrackTypeAudio

0

Audio track

AoqTrackTypeVideo

1

Video track

AoqTrackTypeData

2

Data message track

AoqTrackTypeScreen3Screen sharing track. Supports uplink.

AoqEncoderType

Encoder type.

Enum value

Value

Description

AoqEncoderTypeUnknown

0

Unknown format

AoqEncoderTypeAudioPCM

1

Audio PCM

AoqEncoderTypeAudioOpus

2

Audio Opus

AoqEncoderTypeVideoH264

3

Video H.264

AoqEncoderTypeVideoJpeg

4

Video JPEG

AoqEncoderTypeDataText

5

Message text

AoqTrackMode

Streaming or non-streaming mode. Effective only for the audio downlink.

Enum value

Value

Description

AoqTrackModeSegment

0

Segmented: data is packaged and delivered in semantic segments, such as a sentence.

AoqTrackModeStream

1

Streaming: data is delivered continuously.

AoqConnectionStatus

Engine connection status.

Enum value

Value

Description

AoqConnectionStatusDisconnected

0

Disconnected

AoqConnectionStatusConnecting

1

Connecting

AoqConnectionStatusConnected

2

Connected

AoqConnectionStatusFailed

3

Connection failed

Audio types

AoqAudioCaptureConfig

Audio capture configuration.

Field

Type

Default value

Description

isExternal

BOOL

NO

Specifies whether to use external capture

channel

NSInteger

1

Number of audio capture channels. 1 and 2 are supported.

AoqAudioPlaybackConfig

Audio playback configuration.

Field

Type

Default value

Description

isExternal

BOOL

NO

Specifies whether to use external playback

channel

NSInteger

1

Number of audio playback channels. 1 and 2 are supported.

AoqAudioCodecConfig

Audio codec configuration.

Field

Type

Default value

Description

trackType

AoqTrackType

Audio

Track type

codecType

AoqEncoderType

AudioOpus

Codec format

sampleRate

NSInteger

48000

Sample rate, in Hz

channel

NSInteger

1

Number of channels

bitrate

NSInteger

32000

Bitrate, in bit/s

AoqAudioDeviceStateCode

Audio device state code.

Enum value

Value

Description

AoqAudioDeviceNone

0

No state

AoqAudioDeviceRecordStarting

1

Capture starting

AoqAudioDeviceRecordStarted

2

Capture started

AoqAudioDeviceRecordStopping

3

Capture stopping

AoqAudioDeviceRecordStopped

4

Capture stopped

AoqAudioDeviceRecordFail

5

Capture failed

AoqAudioDevicePlayStarting

6

Playback starting

AoqAudioDevicePlayStarted

7

Playback started

AoqAudioDevicePlayStopping

8

Playback stopping

AoqAudioDevicePlayStopped

9

Playback stopped

AoqAudioDevicePlayFail

10

Playback failed

AoqAudioDeviceState

Audio device state.

Field

Type

Description

state

AoqAudioDeviceStateCode

Status code

reason

NSInteger

Error code (AoqErrorCode)

AoqAudioDeviceRouteType

Audio device route type.

Enum value

Value

Description

AoqAudioDeviceRouteDefault

0

Default

AoqAudioDeviceRouteHeadset

1

Headphones

AoqAudioDeviceRouteEarpiece

2

Receiver

AoqAudioDeviceRouteHeadsetNoMic

3

Headphones without a microphone

AoqAudioDeviceRouteSpeakerPhone

4

Built-in speaker

AoqAudioDeviceRouteUsb

5

USB

AoqAudioDeviceRouteBluetooth

6

Bluetooth

AoqAudioDeviceRouteBluetoothA2dp

7

Bluetooth A2DP

Audio file types

AoqAudioFileMixConfig

Configuration for playing an audio file to the publishing stream.

Field

Type

Default value

Description

fileName

NSString *

-

File name (including the path). Required.

cycles

NSInteger

-1

Number of loops. -1 indicates unlimited looping.

startPosMs

NSInteger

0

Start playback position, in ms

publishVolume

NSInteger

100

Publishing volume. Valid values: 0 to 100.

playoutVolume

NSInteger

100

Playback volume. Valid values: 0 to 100.

AoqAudioFileStateCode

Audio file state code.

Enum value

Value

Description

AoqAudioFileNone

0

No state

AoqAudioFileStarted

1

Started

AoqAudioFileStopped

2

Stopped

AoqAudioFilePaused

3

Paused

AoqAudioFileResumed

4

Resumed

AoqAudioFileEnded

5

Playback completed

AoqAudioFileBuffering

6

Buffering

AoqAudioFileBufferingEnd

7

Buffering ended

AoqAudioFileFailed

8

Playback failed

AoqAudioFileErrorCode

Audio file playback error code.

Enum value

Value

Description

AoqAudioFileNoError

0

No error

AoqAudioFileOpenFailed

1

Failed to open the file

AoqAudioFileDecodeFailed

2

Failed to decode the file

AoqAudioFileState

Audio file state.

Field

Type

Description

fileId

NSString *

File ID

stateCode

AoqAudioFileStateCode

Status code

errorCode

AoqAudioFileErrorCode

Error code

External audio stream and volume types

AoqAudioStreamDirection

Direction of an external audio stream.

Enum value

Value

Description

AoqAudioStreamPublish

0

Publishing audio

AoqAudioStreamPlayout

1

Playback audio

AoqAudioExternalStreamToggle

External audio stream switching state.

Enum value

Value

Description

AoqAudioExternalStreamToggleNormal

0

Recovered

AoqAudioExternalStreamTogglePause

1

Paused

AoqAudioExternalStreamConfig

External audio stream configuration.

Field

Type

Default value

Description

trackType

AoqTrackType

Audio

Audio track type

codecType

AoqEncoderType

AudioPCM

Audio stream format. PCM is supported.

channels

NSInteger

1

Number of channels

sampleRate

NSInteger

48000

Sample rate, in Hz

playoutVolume

NSInteger

100

Playback volume. Valid values: 0 to 100.

publishVolume

NSInteger

100

Publishing volume. Valid values: 0 to 100.

maxBufferDuration

NSInteger

1000

Maximum buffer duration, in ms

enable3A

BOOL

NO

Specifies whether to apply 3A processing to the input PCM

AoqAudioFrameData

External audio data.

Field

Type

Description

dataPtr

void *

Pointer to the raw audio PCM data

dataSize

NSInteger

Number of bytes of the PCM data

numOfSamples

NSInteger

Number of samples (per channel)

bytesPerSample

NSInteger

Bytes per sample

numOfChannels

NSInteger

Number of channels

samplesPerSec

NSInteger

Number of samples per second

pushSequence

int32_t

PCM input round

timeStamp

int64_t

Timestamp

autoGenMute

BOOL

Valid in data callbacks. YES indicates silent data generated by the SDK.

AoqAudioSource

Data source of the audio frame callback.

Enum value

Value

Description

AoqAudioSourceCaptured

0

Captured audio data

AoqAudioSourceProcessCaptured

1

Audio data after 3A processing

AoqAudioSourcePublish

2

Audio data to be published (requires a successful Connect)

AoqAudioSourcePlayback

3

Audio data to be played

AoqAudioObserverMode

Audio frame callback mode.

Enum value

Value

Description

AoqAudioObserverModeReadOnly

0

Read-only

AoqAudioObserverModeReadWrite

1

Read-write

AoqAudioObserverConfig

Audio frame callback configuration.

Field

Type

Default value

Description

sampleRate

NSInteger

48000

Sample rate of the callback audio

channels

NSInteger

1

Number of audio channels in the callback

mode

AoqAudioObserverMode

ReadOnly

Read-write mode

AoqAudioVolumeIndicationConfig

Local volume indication configuration.
FieldTypeDefaultDescription
reportSpeechBOOLNOWhether to detect speech.
intervalNSInteger0Callback interval in milliseconds. Values of 0 or less disable callbacks; values between 0 and 10 use 10.
smoothNSInteger3Smoothing factor, from 0 to 10. Higher values produce smoother results.

AoqAudioVolume

Local volume information.
FieldTypeDefaultDescription
isSpeechBOOLNOWhether speech is detected.
volumeNSInteger0Smoothed instantaneous volume, from 0 to 255.

Video types

AoqVideoCaptureConfig

Video capture configuration.

Field

Type

Default value

Description

width

NSInteger

1280

Capture width, in pixels. This parameter is ineffective when isExternal=YES.

height

NSInteger

720

Capture height, in pixels. This parameter is ineffective when isExternal=YES.

fps

NSInteger

15

Capture frame rate. This parameter is ineffective when isExternal=YES (the pace is determined by frame delivery).

isExternal

BOOL

NO

Specifies whether to use external capture. If it is YES, the camera is not opened, and frames are fed by pushExternalVideoCapturedFrame:.

AoqVideoCanvas

Data structure for video rendering.

Field

Type

Default value

Description

view

NSView *

nil

Display view. Pass nil to remove the rendering binding.

renderMode

AoqRenderMode

Auto

Rendering mode

The caller must ensure that the lifecycle of view outlasts the period during which it is set by setLocalView: / setRemoteView:.

AoqRenderMode

Rendering display mode.

Enum value

Value

Description

AoqRenderModeAuto

0

Auto mode

AoqRenderModeStretch

1

Stretch-to-fill mode. When the aspect ratios do not match, the image is stretched to the target ratio and becomes distorted.

AoqRenderModeFill

2

Letterbox mode. When the aspect ratios do not match, black bars are added to the top and bottom or the left and right.

AoqRenderModeCrop

3

Crop mode. When the aspect ratios do not match, the width or height is cropped and part of the image is lost.

AoqRenderView

The rendering view control, which inherits from NSView and can be used as AoqVideoCanvas.view.

Attribute

Type

Description

engineDisplayView

NSView * (read-only)

Display view used internally by the engine

renderWidth

int (read-only)

Rendering width

renderHeight

int (read-only)

Rendering height

enableMetal

BOOL (read-only)

Specifies whether to enable Metal rendering

delegate

id<AoqRenderViewDelegate>

Event delegate of the rendering view

AoqRenderViewDelegate

The event delegate protocol of the rendering view.
- (void)onRenderViewSizeChanged:(AoqRenderView * _Nonnull)view;

Callback

Description

onRenderViewSizeChanged:

Callback for rendering view size changes

AoqVideoPixelFormat

Video pixel format.

Enum value

Value

Description

AoqVideoPixelFormatUnknown

0

Unknown format

AoqVideoPixelFormatI420

1

I420

AoqVideoPixelFormatNV12

2

NV12

AoqVideoPixelFormatNV21

3

NV21

AoqVideoPixelFormatBGRA

4

BGRA

AoqVideoPixelFormatRGBA

5

RGBA

AoqVideoPixelFormatCVPixelBuffer

6

Zero-copy path. Set the pixelBuffer field to CVPixelBufferRef.

AoqVideoFrame

External video data.

Field

Type

Description

format

AoqVideoPixelFormat

Pixel format

width

NSInteger

Width, in pixels

height

NSInteger

Height, in pixels

data

NSData *

Packed-format data (NV12/NV21/BGRA/RGBA)

dataY / dataU / dataV

NSData *

Data of the three I420 planes

strideY / strideU / strideV

NSInteger

Stride of the three I420 planes

pixelBuffer

CVPixelBufferRef

Zero-copy, which is used when format=AoqVideoPixelFormatCVPixelBuffer

timeStamp

int64_t

Timestamp, in ms. If it is 0, the SDK fills it in with the local clock.

AoqVideoCodecType

The codec type of the externally encoded frame.

Enum value

Value

Description

AoqVideoCodecTypeJPEG

0

JPEG

AoqVideoEncodedFrame

An externally encoded video frame. The caller performs the encoding, and the SDK packages and sends the frame directly without re-encoding.

Field

Type

Description

codec

AoqVideoCodecType

Codec format

data

NSData *

Encoded data

width

NSInteger

Width, in pixels

height

NSInteger

Height, in pixels

timeStamp

int64_t

Timestamp, in ms. If it is 0, the SDK fills it in with the local clock.

AoqVideoCodecConfig

Video codec parameters, which are shared by encoding and decoding. For decoding, only trackType / codecType / width / height / fps / bitrate take effect and participate in negotiation as a subscription proposal, whereas the other fields are used only for encoding.

Field

Type

Default value

Description

isExternal

BOOL

NO

External encoding mode. When it is YES, you push encoded frames, and the SDK does not perform capture or encoding.

trackType

AoqTrackType

Video

Track type

codecType

AoqEncoderType

VideoH264

Codec format

width

NSInteger

540

Resolution width

height

NSInteger

960

Resolution height

fps

NSInteger

5

Frame rate

bitrate

NSInteger

500000

Initial bitrate, in bit/s

minBitrate

NSInteger

128000

Minimum bitrate, in bit/s

keyframeInterval

NSInteger

2

Keyframe interval, in seconds

mirrorMode

AoqMirrorMode

Disabled

Mirror mode

orientationMode

AoqOrientationMode

Auto

Orientation mode

AoqMirrorMode

Mirror mode.

Enum value

Value

Description

AoqMirrorModeDisabled

0

Disable mirroring

AoqMirrorModeEnabled

1

Enable mirroring

AoqOrientationMode

Orientation mode.

Enum value

Value

Description

AoqOrientationModeAuto

0

Auto

AoqOrientationModePortrait

1

Portrait

AoqOrientationModeLandscape

2

Landscape

AoqVideoDeviceStateCode

Video device state code.

Enum value

Value

Description

AoqVideoDeviceNone

0

No state

AoqVideoDeviceCaptureStarting

1

Camera starting

AoqVideoDeviceCaptureStarted

2

Camera started

AoqVideoDeviceCaptureStopping

3

Camera stopping

AoqVideoDeviceCaptureStopped

4

Camera stopped

AoqVideoDeviceCaptureFail

5

Failed to start the camera

AoqVideoDeviceState

Video device state.

Field

Type

Description

state

AoqVideoDeviceStateCode

Status code

reason

NSInteger

Error code (AoqErrorCode)

AoqVideoSource

Data source of the video frame callback (position in the pipeline).

Enum value

Value

Description

AoqVideoSourceCaptured

0

Captured video data before preprocessing

AoqVideoSourcePreEncode

1

Video data before encoding, after preprocessing

AoqVideoSourceRemote

2

Remote video data after decoding and before rendering

AoqVideoObserverMode

Video frame callback mode.

Enum value

Value

Description

AoqVideoObserverModeReadOnly

0

Read-only

AoqVideoObserverModeReadWrite

1

Read-write

AoqVideoObserverAlignment

Width alignment method for video output.

Enum value

Value

Description

AoqVideoObserverAlignmentDefault

0

Default

AoqVideoObserverAlignmentEven

1

Even-number alignment

AoqVideoObserverAlignment4

2

4-byte alignment

AoqVideoObserverAlignment8

3

8-byte alignment

AoqVideoObserverAlignment16

4

16-byte alignment

AoqVideoObserverConfig

Video frame callback configuration.

Field

Type

Default value

Description

format

AoqVideoPixelFormat

I420

Expected pixel format of the callback data

alignment

AoqVideoObserverAlignment

Default

Width alignment policy

mode

AoqVideoObserverMode

ReadOnly

Read-write mode. ReadWrite is supported only for I420 / CVPixelBuffer.

mirrorApplied

BOOL

NO

Specifies whether to mirror the callback data

trackTypeAoqTrackTypeAoqTrackTypeVideoVideo track to observe. Supports Video and Screen only.

Screen capture types

AoqScreenShareSourceType

ValueNumberDescription
AoqScreenShareSourceTypeDesktop0Entire desktop
AoqScreenShareSourceTypeWindow1A specific window

AoqScreenSourceInfo

FieldTypeDefaultDescription
sourceTypeAoqScreenShareSourceTypeDesktopSource type
sourceIdint64_t0Source ID
sourceNameNSString *—Source name
sourceIsSelfBOOL—Whether the window belongs to the current process

AoqScreenSourceList

FieldTypeDescription
sourceListNSArray<AoqScreenSourceInfo *> *Array of screen sources

AoqScreenCaptureConfig

FieldTypeDefaultDescription
isExternalBOOLNOWhether the application supplies raw screen frames.
sourceIdint64_t0Screen source ID.
sourceTypeAoqScreenShareSourceTypeAoqScreenShareSourceTypeWindowScreen source type.
Text Generation
Image Generation
Video Generation
World models
Audio
  • Audio generation
Text Embedding
Decision Model
TokenPlan
Model Production