Skip to main content

AOQ Client SDK Windows API reference

This topic describes the C++ APIs, callbacks, and data types of AOQ Client SDK for Windows.

The SDK holds the engine instance as a global singleton, provides APIs through the AoqClientEngine class, and reports asynchronous events through the AoqEngineEventListener abstract class. All type definitions reside in the AoqClientSdk namespace, and the header file is AoqClientEngine.h.
The caller is responsible for the lifecycle of all const char* strings. They must remain valid at least until the corresponding call returns. The engine copies them internally as needed.

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
enableLocalAudioVolumeIndicationEnable or disable local capture volume indication

Audio encoding configuration

APIDescription
setAudioEncoderConfigSet audio encoding parameters
setAudioDecoderConfigSet audio decoding parameters

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 (desktop only)
startScreenCaptureStart screen capture
stopScreenCaptureStop screen capture

Media stream transmission control

APIDescription
enableSendMediaStreamEnable or disable local media stream transmission

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

Real-time messages

APIDescription
sendDataMsgSend a real-time data message

Audio frame callbacks

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

Video frame callbacks

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

AoqEngineEventListener

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

IAudioFrameObserver

APIDescription
onCapturedAudioFrameCallback for raw captured audio. Enable it with enableAudioFrameObserver and audioSource = AoqAudioSourceCaptured. Supports configurable sample rate and channel count, and read/write access.
onProcessCapturedAudioFrameCallback for audio after 3A processing. Enable it with enableAudioFrameObserver and audioSource = AoqAudioSourceProcessCaptured. Supports configurable sample rate and channel count, and read/write access.
onPublishAudioFrameCallback for audio before publishing. Enable it with enableAudioFrameObserver and audioSource = AoqAudioSourcePublish. Supports configurable sample rate and channel count. Read-only access only.
onPlaybackAudioFrameCallback for playback audio. Enable it with enableAudioFrameObserver and audioSource = AoqAudioSourcePlayback. Supports configurable sample rate and channel count, and read/write access.

IVideoFrameObserver

APIDescription
onCapturedVideoFrameCallback for locally captured raw video before preprocessing. Enable it with enableVideoFrameObserver and videoSource = AoqVideoSourceCaptured.
onPreEncodeVideoFrameCallback for local raw video after preprocessing and before encoding. Enable it with enableVideoFrameObserver and videoSource = AoqVideoSourcePreEncode.
onRemoteVideoFrameCallback for remote raw video after decoding and before rendering. Enable it with enableVideoFrameObserver and videoSource = AoqVideoSourceRemote.

API details

Engine lifecycle

createEngine

Creates the engine instance. The SDK holds the engine as a global singleton, so calling this method again returns the existing instance.
static AoqClientEngine* createEngine(const AoqCreateConfig& config,
                                     AoqEngineEventListener* listener);
Parameters

Parameters

Type

Description

config

const AoqCreateConfig&

Engine creation configuration. For more information, see AoqCreateConfig.

listener

AoqEngineEventListener*

Event callback listener. For more information, see AoqEngineEventListener.

Returns: A pointer to the engine instance. nullptr is returned on failure.

destroy

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

getVersion

Gets the SDK version.
static const char* 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.
virtual int connect(const AoqConnectConfig& config);
Parameters

Parameters

Type

Description

config

const 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.
virtual 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).
virtual int startAudioCapture(const AoqAudioCaptureConfig& config);
Parameters

Parameters

Type

Description

config

const AoqAudioCaptureConfig&

Audio capture configuration. For more information, see AoqAudioCaptureConfig.

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

stopAudioCapture

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

muteAudioCapture

Mutes or unmutes audio capture.
virtual int muteAudioCapture(bool mute);
Parameters

Parameters

Type

Description

mute

bool

true mutes; false unmutes

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

startAudioPlayer

Starts audio rendering to play remote audio.
virtual int startAudioPlayer(const AoqAudioPlaybackConfig& config);
Parameters

Parameters

Type

Description

config

const AoqAudioPlaybackConfig&

Audio playback configuration. For more information, see AoqAudioPlaybackConfig.

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

stopAudioPlayer

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

pauseAudioPlayer

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

Parameters

Type

Description

fadeMs

int

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.
virtual int resumeAudioPlayer(int fadeMs);
Parameters

Parameters

Type

Description

fadeMs

int

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

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

interruptAudioPlayer

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

Parameters

Type

Description

trackType

AoqTrackType

Track type. For more information, see AoqTrackType.

fadeMs

int

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

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

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.
virtual int enableLocalAudioVolumeIndication(const AoqAudioVolumeIndicationConfig& config);
Parameters

Parameters

Type

Description

config

const AoqAudioVolumeIndicationConfig&

Volume indication configuration. For more information, see AoqAudioVolumeIndicationConfig.

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

Audio encoding configuration

setAudioEncoderConfig

Sets audio encoding parameters.
virtual int setAudioEncoderConfig(const AoqAudioCodecConfig& config);
Parameters

Parameters

Type

Description

config

const AoqAudioCodecConfig&

Audio codec configuration. For more information, see AoqAudioCodecConfig.

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

setAudioDecoderConfig

Sets audio decoding parameters.
virtual int setAudioDecoderConfig(const AoqAudioCodecConfig& config);
Parameters

Parameters

Type

Description

config

const AoqAudioCodecConfig&

Audio codec configuration. For more information, see AoqAudioCodecConfig.

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

Video device management

startVideoCapture

Opens the video capture device (camera). When isExternal=true is configured, the camera is not opened, and frames are fed by pushExternalVideoCapturedFrame.
virtual int startVideoCapture(const AoqVideoCaptureConfig& config);
Parameters

Parameters

Type

Description

config

const AoqVideoCaptureConfig&

Video capture configuration. For more information, see AoqVideoCaptureConfig.

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

stopVideoCapture

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

setLocalView

Sets or removes the local video rendering window. If canvas.view == nullptr, the binding is removed.
virtual int setLocalView(AoqTrackType trackType, const AoqVideoCanvas& canvas);
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Video track. Pass AoqTrackTypeVideo.

canvas

const AoqVideoCanvas&

Rendering canvas. For more information, see AoqVideoCanvas. If view is nullptr, the binding is removed.

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

setRemoteView

Sets or removes the remote video rendering window. If canvas.view == nullptr, the binding is removed.
virtual int setRemoteView(AoqTrackType trackType, const AoqVideoCanvas& canvas);
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Video track. Pass AoqTrackTypeVideo.

canvas

const AoqVideoCanvas&

Rendering canvas. For more information, see AoqVideoCanvas. If view is nullptr, the binding is removed.

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.
virtual int setVideoEncoderConfig(const AoqVideoCodecConfig& config);
Parameters

Parameters

Type

Description

config

const 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.
virtual int setVideoDecoderConfig(const AoqVideoCodecConfig& config);
Parameters

Parameters

Type

Description

config

const AoqVideoCodecConfig&

Video codec configuration. For more information, see AoqVideoCodecConfig.

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

pushExternalVideoCapturedFrame

Pushes an external video frame. You must first call startVideoCapture and configure isExternal=true. If external video capture is not started, AoqECVideoExternalCaptureNotEnabled (211) is returned. If the frame format is not supported, AoqECParamInvalid is returned.
virtual int pushExternalVideoCapturedFrame(AoqTrackType trackType, const AoqVideoFrame& frame);
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Routing target. Pass AoqTrackTypeVideo.

; AoqTrackTypeScreen is also supported

frame

const AoqVideoFrame&

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

Returns: 0 on success; AoqECVideoExternalBufferFull (210) indicates that the buffer is full; AoqECVideoExternalCaptureNotEnabled (211) indicates that external video capture is not enabled; AoqECParamInvalid indicates an unsupported frame format; other non-zero values indicate other errors.

pushExternalVideoEncodedFrame

Pushes an externally encoded video frame directly, bypassing the encoder. You must first call setVideoEncoderConfig and configure isExternal=true. Only JPEG is currently supported.
virtual int pushExternalVideoEncodedFrame(AoqTrackType trackType, const AoqVideoEncodedFrame& frame);
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Routing target. Pass AoqTrackTypeVideo.

; AoqTrackTypeScreen is also supported

frame

const AoqVideoEncodedFrame&

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

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

Screen capture

virtual int startScreenCapture(const AoqScreenCaptureConfig& config);
virtual 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=true 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

virtual AoqScreenSourceList getScreenSourceList();
Returns a screen source list. Call AoqScreenSourceList::screenSourceListFree(list) after use to release its memory.

Media stream transmission control

enableSendMediaStream

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.
virtual int enableSendMediaStream(AoqTrackType trackType, bool enable);
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Routing target. AoqTrackTypeAudio and AoqTrackTypeVideo are supported.

; also supports AoqTrackTypeScreen

enable

bool

true enables sending; false disables sending

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

Audio file playback

startAudioFile

Starts playing a local audio file to the publishing stream.
virtual int startAudioFile(const char* fileId, const AoqAudioFileMixConfig& config);
Parameters

Parameters

Type

Description

fileId

const char*

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

config

const AoqAudioFileMixConfig&

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

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

stopAudioFile

Stops audio file playback.
virtual int stopAudioFile(const char* fileId);
Parameters

Parameters

Type

Description

fileId

const char*

Audio file ID

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

pauseAudioFile

Pauses audio file playback.
virtual int pauseAudioFile(const char* fileId);
Parameters

Parameters

Type

Description

fileId

const char*

Audio file ID

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

resumeAudioFile

Resumes audio file playback.
virtual int resumeAudioFile(const char* fileId);
Parameters

Parameters

Type

Description

fileId

const char*

Audio file ID

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

getAudioFileDuration

Gets the total duration of the audio file.
virtual int64_t getAudioFileDuration(const char* fileId);
Parameters

Parameters

Type

Description

fileId

const char*

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 (-AoqErrorCode).

getAudioFileCurrentPosition

Gets the current playback position of the audio file.
virtual int64_t getAudioFileCurrentPosition(const char* fileId);
Parameters

Parameters

Type

Description

fileId

const char*

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 (-AoqErrorCode).

setAudioFilePositionMillis

Sets the playback position of the audio file (seek).
virtual int setAudioFilePositionMillis(const char* fileId, int64_t positionMillis);
Parameters

Parameters

Type

Description

fileId

const char*

Audio file ID

positionMillis

int64_t

Playback position, in milliseconds

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

setAudioFileVolume

Sets the volume of the audio file.
virtual int setAudioFileVolume(const char* fileId, AoqAudioStreamDirection type, int volume);
Parameters

Parameters

Type

Description

fileId

const char*

Audio file ID

type

AoqAudioStreamDirection

Audio stream direction. For more information, see AoqAudioStreamDirection.

volume

int

Volume value. Valid values: 0 to 100.

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

getAudioFileVolume

Gets the current volume of the audio file.
virtual int getAudioFileVolume(const char* fileId, AoqAudioStreamDirection type);
Parameters

Parameters

Type

Description

fileId

const char*

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 (-AoqErrorCode).

External audio streams

addAudioExternalStream

Adds an external audio stream.
virtual int addAudioExternalStream(const char* streamId, const AoqAudioExternalStreamConfig& config);
Parameters

Parameters

Type

Description

streamId

const char*

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

config

const AoqAudioExternalStreamConfig&

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

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

pushAudioExternalStreamData

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.
virtual int pushAudioExternalStreamData(const char* streamId, AoqAudioFrameData& data);
Parameters

Parameters

Type

Description

streamId

const char*

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

Sets the volume of an external audio stream.
virtual int setAudioExternalStreamVolume(const char* streamId, AoqAudioStreamDirection type, int vol);
Parameters

Parameters

Type

Description

streamId

const char*

External audio stream ID

type

AoqAudioStreamDirection

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

vol

int

Volume value. Valid values: 0 to 100.

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

getAudioExternalStreamVolume

Gets the volume of an external audio stream.
virtual int getAudioExternalStreamVolume(const char* streamId, AoqAudioStreamDirection type);
Parameters

Parameters

Type

Description

streamId

const char*

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 (-AoqErrorCode).

clearAudioExternalStreamBuffer

Clears the buffer of an external audio stream.
virtual void clearAudioExternalStreamBuffer(const char* streamId, int fadeoutMs);
Parameters

Parameters

Type

Description

streamId

const char*

External audio stream ID

fadeoutMs

int

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.
virtual int removeAudioExternalStream(const char* streamId);
Parameters

Parameters

Type

Description

streamId

const char*

External audio stream ID

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

Real-time messages

sendDataMsg

Sends a real-time data message.
virtual int sendDataMsg(const AoqDataMsg& msg);
Parameters

Parameters

Type

Description

msg

const AoqDataMsg&

Message content. For more information, see AoqDataMsg.

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

Audio frame callbacks

setAudioFrameObserver

Sets the audio frame data callback listener. Pass nullptr to stop callbacks. After you set the listener, call enableAudioFrameObserver to enable the callback for the corresponding data source.
virtual int setAudioFrameObserver(IAudioFrameObserver* observer) = 0;
Parameters

Parameters

Type

Description

observer

IAudioFrameObserver*

Audio frame callback listener. For more information, see IAudioFrameObserver. Pass nullptr to stop callbacks.

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

enableAudioFrameObserver

Enables or disables the audio frame callback at a specified position.
virtual int enableAudioFrameObserver(bool enabled, AoqAudioSource audioSource,
                                     const AoqAudioObserverConfig& config) = 0;
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

const AoqAudioObserverConfig&

Callback parameter settings. For more information, see AoqAudioObserverConfig.

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

Video frame callbacks

setVideoFrameObserver

Sets the video frame data callback listener. Pass nullptr to stop callbacks. After you set the listener, call enableVideoFrameObserver to enable the callback for the corresponding data source.
virtual int setVideoFrameObserver(IVideoFrameObserver* observer) = 0;
Parameters

Parameters

Type

Description

observer

IVideoFrameObserver*

Video frame callback listener. For more information, see IVideoFrameObserver. Pass nullptr to stop callbacks.

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

enableVideoFrameObserver

Enables or disables the video frame callback at a specified position.
virtual int enableVideoFrameObserver(bool enabled, AoqVideoSource videoSource,
                                     const AoqVideoObserverConfig& config) = 0;
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

const AoqVideoObserverConfig&

Callback parameter settings. For more information, see AoqVideoObserverConfig.

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

AoqEngineEventListener

AoqEngineEventListener is the unified entry point for all asynchronous event notifications from the SDK. It is an abstract class that you inherit and implement, and then pass in when you call createEngine. All callbacks may be triggered on internal threads, so you must handle thread safety yourself. State transitions: Disconnected → Connecting → Connected/Failed → Disconnected.

onError

Engine error callback.
virtual void onError(int code, const char* message) = 0;
Parameters

Parameters

Type

Description

code

int

Error code. For more information, see AoqErrorCode.

message

const char*

Error description

onWarning

Engine warning callback.
virtual void onWarning(int code, const char* message) = 0;
Parameters

Parameters

Type

Description

code

int

Warning code. For more information, see AoqWarningCode.

message

const char*

Warning description

onConnectionStatusChange

Engine connection status change callback.
virtual void onConnectionStatusChange(AoqConnectionStatus status) = 0;
Parameters

Parameters

Type

Description

status

AoqConnectionStatus

Connection status. For more information, see AoqConnectionStatus.

onStats

Engine statistics callback.
virtual void onStats(const AoqStats& stats) = 0;
Parameters

Parameters

Type

Description

stats

const AoqStats&

Statistics data. For more information, see AoqStats.

onAudioDeviceStateChanged

Callback for audio device capture and playback operation status changes.
virtual void onAudioDeviceStateChanged(const AoqAudioDeviceState& state) = 0;
Parameters

Parameters

Type

Description

state

const AoqAudioDeviceState&

Audio device state. For more information, see AoqAudioDeviceState.

onAudioDeviceRouteChanged

Audio output route change callback.
virtual void onAudioDeviceRouteChanged(int routeType) = 0;
Parameters

Parameters

Type

Description

routeType

int

Route type. For the valid values, see AoqAudioDeviceRouteType.

onAudioFileState

Callback for audio file playback status.
virtual void onAudioFileState(const AoqAudioFileState& state) = 0;
Parameters

Parameters

Type

Description

state

const AoqAudioFileState&

File playback state. For more information, see AoqAudioFileState.

onLocalAudioVolumeIndication

Local capture volume indication callback. To enable it, call enableLocalAudioVolumeIndication.
virtual void onLocalAudioVolumeIndication(const AoqAudioVolume& volume) = 0;
Parameters

Parameters

Type

Description

volume

const AoqAudioVolume&

Local volume information. For more information, see AoqAudioVolume.

onVideoDeviceStateChanged

Callback for video device capture operation status changes.
virtual void onVideoDeviceStateChanged(const AoqVideoDeviceState& state) = 0;
Parameters

Parameters

Type

Description

state

const AoqVideoDeviceState&

Video device state. For more information, see AoqVideoDeviceState.

onDataMsg

Callback for a received real-time data message.
virtual void onDataMsg(const AoqDataMsg& msg) = 0;
Parameters

Parameters

Type

Description

msg

const AoqDataMsg&

Data message. For more information, see AoqDataMsg.

IAudioFrameObserver

Interface for audio frame data callbacks, which the caller implements by inheritance. 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.
virtual void onCapturedAudioFrame(const AoqAudioFrameData& data) = 0;
Parameters

Parameters

Type

Description

data

const 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.
virtual void onProcessCapturedAudioFrame(const AoqAudioFrameData& data) = 0;
Parameters

Parameters

Type

Description

data

const AoqAudioFrameData&

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

onPublishAudioFrame

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.
virtual void onPublishAudioFrame(AoqTrackType trackType, const AoqAudioFrameData& data) = 0;
Parameters

Parameters

Type

Description

trackType

AoqTrackType

Track type. For more information, see AoqTrackType.

data

const 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.
virtual void onPlaybackAudioFrame(const AoqAudioFrameData& data) = 0;
Parameters

Parameters

Type

Description

data

const AoqAudioFrameData&

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

IVideoFrameObserver

Interface for video frame data callbacks, which the caller implements by inheritance. Do not perform any time-consuming operations in the callbacks. Otherwise, video stuttering may occur. A return value of true indicates that the data is modified and must be written back to the SDK. Writing back takes effect only for I420. A return value of false 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.
virtual bool onCapturedVideoFrame(AoqTrackType trackType, AoqVideoFrame& frame) = 0;
Parameters

Parameters

Type

Description

frame

AoqVideoFrame&

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

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

onPreEncodeVideoFrame

Callback for local raw data before encoding, after preprocessing. To enable it, call enableVideoFrameObserver and set videoSource = AoqVideoSourcePreEncode.
virtual bool onPreEncodeVideoFrame(AoqTrackType trackType, AoqVideoFrame& frame) = 0;
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: true indicates that the data is modified and must be written back to the SDK; false indicates read-only.

onRemoteVideoFrame

Callback for remote raw data after decoding and before rendering. To enable it, call enableVideoFrameObserver and set videoSource = AoqVideoSourceRemote.
virtual bool onRemoteVideoFrame(AoqTrackType trackType, AoqVideoFrame& frame) = 0;
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: true indicates that the data is modified and must be written back to the SDK; false indicates read-only.

Data types and enumerations

Common types

AoqCreateConfig

Engine creation configuration.

Field

Type

Default value

Description

workDir

const char*

nullptr

SDK working directory

enableDumpAudio

bool

false

Specifies whether to save audio data (for debugging)

extras

const char*

nullptr

Extended parameters (a JSON string)

maxEncodedVideoFrameBytesint190 × 1024Maximum encoded frame size in bytes. Applies only to the SDK internal JPEG encoder. A value of 0 disables the limit.
enableDropOversizedVideoFrameboolfalseFor 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. relayEndpoints / publishTracks / subscribeTracks are C-style arrays with a length. The array memory is held by the caller and needs to remain valid only during the connect call.

Field

Type

Description

token

const char*

Connection authentication token

sid

const char*

Session ID

certFingerprint

const char*

Server certificate fingerprint

workspaceIdHash

const char*

Workspace hash ID

relayEndpoints

const AoqRelayEndpoint*

Array of relay access points

relayEndpointsCount

size_t

Number of relay access points

publishTracks

const AoqTrackParam*

Array of local publishing track attributes

publishTracksCount

size_t

Number of publishing tracks

subscribeTracks

const AoqTrackParam*

Array of local subscribing track attributes

subscribeTracksCount

size_t

Number of subscribing tracks

AoqRelayEndpoint

A relay access point.

Field

Type

Default value

Description

route_index

int

-1

Path index

endpoint

const char*

nullptr

Server address (domain name or IP address)

port

int

0

Server port

tcp_portint0TCP 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

The message data structure. When it is used in a callback, it is guaranteed to be valid only during the callback. If you need to use it asynchronously, copy it yourself.

Field

Type

Description

data

const uint8_t*

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

dataSize

size_t

Number of bytes

Statistics types

AoqStats

Engine statistics. Each statistics array is provided as a pointer and a count.

Field

Type

Description

audioPublishStats / audioPublishStatsCount

const AoqAudioPublishStats* / unsigned int

Array of publishing statistics for audio and the number of entries

videoPublishStats / videoPublishStatsCount

const AoqVideoPublishStats* / unsigned int

Array of publishing statistics for video and the number of entries

dataMsgPublishStats / dataMsgPublishStatsCount

const AoqDataMsgPublishStats* / unsigned int

Array of publishing statistics for data messages and the number of entries

audioSubscribeStats / audioSubscribeStatsCount

const AoqAudioSubscribeStats* / unsigned int

Array of subscribing statistics for audio and the number of entries

videoSubscribeStats / videoSubscribeStatsCount

const AoqVideoSubscribeStats* / unsigned int

Array of subscribing statistics for video and the number of entries

dataMsgSubscribeStats / dataMsgSubscribeStatsCount

const AoqDataMsgSubscribeStats* / unsigned int

Array of subscribing statistics for data messages and the number of entries

networkStats

const AoqNetworkStats*

Network statistics

AoqNetworkStats

Network statistics.

Field

Type

Description

sendBitrate

unsigned int

Send bitrate, in bit/s

sendBytes

uint64_t

Cumulative bytes sent

recvBitrate

unsigned int

Receive bitrate, in bit/s

recvBytes

uint64_t

Cumulative bytes received

loss

unsigned int

Packet loss rate, from 0 to 100

rtt

unsigned int

Round-trip latency, in ms

AoqAudioPublishStats

Publishing statistics for audio.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

unsigned int

Bitrate, in bit/s

bytes

uint64_t

Cumulative bytes

encodeVolume

unsigned int

Encoding volume of the publishing stream

AoqVideoPublishStats

Publishing statistics for video.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

unsigned int

Bitrate, in bit/s

bytes

uint64_t

Cumulative bytes

encodeFps

unsigned int

Encoding frame rate

AoqDataMsgPublishStats

Publishing statistics for data messages.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

unsigned int

Bitrate, in bit/s

bytes

uint64_t

Cumulative bytes

AoqAudioSubscribeStats

Subscribing statistics for audio.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

unsigned int

Bitrate, in bit/s

bytes

uint64_t

Cumulative bytes

playVolume

unsigned int

Playback volume

AoqVideoSubscribeStats

Subscribing statistics for video.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

unsigned int

Bitrate, in bit/s

bytes

uint64_t

Cumulative bytes

decodeFps

unsigned int

Decoding frame rate

renderFps

unsigned int

Rendering frame rate

AoqDataMsgSubscribeStats

Subscribing statistics for data messages.

Field

Type

Description

trackType

AoqTrackType

Track type

bitrate

unsigned int

Bitrate, in bit/s

bytes

uint64_t

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 called but is not implemented on the current platform or in the current mode

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

AoqECAudioDeviceEarpieceRequiresVoipMode

128

Receiver mode requires VoIP to be enabled

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

AoqECScreen300General screen sharing error
AoqECScreenAuthFailed310Screen sharing permission denied
AoqECScreenStartFailed311Failed to start screen sharing

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. Uplink only.

AoqEncoderType

Encoder type.

Enum value

Value

Description

AoqEncoderTypeUnknown

0

Unknown format

AoqEncoderTypeAudioPCM

1

Audio PCM

AoqEncoderTypeAudioOpus

2

Audio Opus (plug-in based; contact the SDK team to have it built in or dynamically downloaded to the app)

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

false

Specifies whether to use external capture

channel

int

1

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

AoqAudioPlaybackConfig

Audio playback configuration.

Field

Type

Default value

Description

isExternal

bool

false

Specifies whether to use external playback

channel

int

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

int

48000

Sample rate, in Hz. For encoding, Opus 8/16/48K and PCM 8/16/32/48K are supported. For decoding, 24K is additionally supported, but 24K is limited to Segment mode. Stream mode does not support 24K, and an invalid combination triggers the onError callback with AoqECParamInvalid during connect.

channel

int

1

Number of channels. 1 and 2 are supported.

bitrate

int

32000

Bitrate, in bit/s

AoqAudioDeviceState

Audio device state.

Field

Type

Description

state

AoqAudioDeviceStateCode

Status code

reason

int

Error code (AoqErrorCode)

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

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

AoqAudioFileMixConfig

Configuration for playing an audio file to the publishing stream.

Field

Type

Default value

Description

fileName

const char*

nullptr

File name (including the path). Required.

cycles

int

-1

Number of loops. -1 indicates unlimited looping.

startPosMs

long

0

Start playback position, in ms

publishVolume

int

100

Publishing volume. Valid values: 0 to 100.

playoutVolume

int

100

Playback volume. Valid values: 0 to 100.

AoqAudioFileState

Audio file state.

Field

Type

Description

fileId

const char*

File ID

stateCode

AoqAudioFileStateCode

Status code

errorCode

AoqAudioFileErrorCode

Error code

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

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

int

1

Number of channels. It is limited by the audio codec of the publishing stream, which supports 1 and 2. Additional channels are ignored.

sampleRate

int

48000

Sample rate, in Hz. 8, 12, 16, 24, 32, 44.1, 48, 64, 88.2, 96, 176.4, and 192K are supported.

playoutVolume

int

100

Playback volume. Valid values: 0 to 100.

publishVolume

int

100

Publishing volume. Valid values: 0 to 100.

maxBufferDuration

int

600000

Maximum buffer duration, in ms. Valid values: 100 and above. If the buffered duration in the SDK exceeds this value, Push fails.

enable3A

bool

false

Specifies whether to apply 3A processing to the input PCM

AoqAudioFrameData

Audio data.

Field

Type

Description

dataPtr

void*

Pointer to the audio data

numOfSamples

int

Number of samples (per channel)

bytesPerSample

int

Bytes per sample

numOfChannels

int

Number of channels

samplesPerSec

int

Number of samples per second

pushSequence

int

PCM input round (used for the consumption completion notification of pushAudioExternalStreamData)

timeStamp

int64_t

Timestamp

dataSize

int

Data length

autoGenMute

bool

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

AoqAudioStreamDirection

Audio stream direction.

Enum value

Value

Description

AoqAudioStreamPublish

0

Publishing audio

AoqAudioStreamPlayout

1

Playback audio

AoqAudioExternalStreamToggle

External audio stream control.

Enum value

Value

Description

AoqAudioExternalStreamToggleNormal

0

Recovered

AoqAudioExternalStreamTogglePause

1

Paused

AoqAudioSource

Type of the audio data source.

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

Parameter settings for audio data callbacks.

Field

Type

Default value

Description

sampleRate

int

48000

Sample rate of the callback audio. It is limited by the source. Resampling is performed if the rates do not match. 8, 12, 16, 24, 32, 44.1, 48, 64, 88.2, 96, 176.4, and 192K are supported.

channels

int

1

Number of audio channels in the callback. 1 and 2 are supported. This parameter is limited by the codec parameters of the subscribing stream.

mode

AoqAudioObserverMode

ReadOnly

Callback mode

AoqAudioVolumeIndicationConfig

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

AoqAudioVolume

Local volume information.
FieldTypeDefaultDescription
isSpeechboolfalseWhether speech is detected.
volumeint0Smoothed instantaneous volume, from 0 to 255.

Video types

AoqVideoCaptureConfig

Video capture configuration.

Field

Type

Default value

Description

width

int

1280

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

height

int

720

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

fps

int

15

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

isExternal

bool

false

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

AoqVideoCanvas

Data structure for video rendering. view is an opaque pointer to the platform-native view handle. On Windows, pass the window handle HWND. The caller must ensure that the lifecycle of view outlasts the period during which it is set by setLocalView / setRemoteView.

Field

Type

Default value

Description

view

void*

nullptr

Handle of the display view (HWND). Pass nullptr to remove the rendering binding.

renderMode

AoqRenderMode

Auto

Rendering mode

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.

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

AoqVideoFrame

External video data.

Field

Type

Description

format

AoqVideoPixelFormat

Pixel format

width

int

Width, in pixels

height

int

Height, in pixels

dataPtr

void*

Pointer to packed-format data (NV12/NV21/BGRA/RGBA)

dataSize

int

Number of bytes of packed data

dataY / dataU / dataV

void*

Pointers to the data of the three I420 planes

strideY / strideU / strideV

int

Stride of the three I420 planes

timeStamp

int64_t

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

nativePixelBuffervoid*Cross-platform field. Not used on Windows.
textureIdintCross-platform field. Not used on Windows.
transformMatrixfloat[16]Cross-platform field. Not used on Windows.

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

void*

Pointer to the encoded data

dataSize

int

Number of bytes of the encoded data

width

int

Width, in pixels

height

int

Height, in pixels

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

AoqVideoDeviceState

Video device state.

Field

Type

Description

state

AoqVideoDeviceStateCode

Status code

reason

int

Error code (AoqErrorCode)

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 (for example, permission denied or the device is unavailable)

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

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 minBitrate / keyframeInterval / mirrorMode / orientationMode / isExternal are used only for encoding.

Field

Type

Default value

Description

isExternal

bool

false

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

trackType

AoqTrackType

Video

Track type

codecType

AoqEncoderType

VideoH264

Codec format

width

int

540

Resolution width

height

int

960

Resolution height

fps

int

5

Frame rate

bitrate

int

500000

Initial bitrate, in bit/s

minBitrate

int

128000

Minimum bitrate, in bit/s

keyframeInterval

int

2

Keyframe interval, in seconds

mirrorMode

AoqMirrorMode

Disabled

Mirror mode

orientationMode

AoqOrientationMode

Auto

Orientation mode

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

Parameter settings for video data callbacks.

Field

Type

Default value

Description

format

AoqVideoPixelFormat

I420

Expected pixel format of the callback data

alignment

AoqVideoObserverAlignment

Default

Width alignment policy

mode

AoqVideoObserverMode

ReadOnly

Callback mode. ReadWrite is supported only for I420.

mirrorApplied

bool

false

Specifies whether to mirror the callback data

trackTypeAoqTrackTypeAoqTrackTypeVideoVideo track to observe. Supports Video and Screen only.

Screen capture types

AoqScreenCaptureStateCode

Screen capture state enumeration. The type is defined, but the current SDK does not provide a corresponding state callback.
Enum valueValueDescription
AoqScreenCaptureNone0None
AoqScreenCaptureStarting1Starting
AoqScreenCaptureStarted2Started
AoqScreenCaptureStopping3Stopping
AoqScreenCaptureStopped4Stopped
AoqScreenCaptureFail5Failed

AoqScreenCaptureState

FieldTypeDescription
stateAoqScreenCaptureStateCodeScreen capture state code.
reasonintError code from AoqErrorCode. 0 indicates a normal state.

AoqScreenSourceList

Field/MethodTypeDescription
sourceCountintNumber of sources
sourceListconst AoqScreenSourceInfo*Source array. Release with screenSourceListFree(list) after use.
screenSourceListFree(list)static voidFrees the list memory. The caller must call this method to avoid a memory leak.

AoqScreenSourceInfo

FieldTypeDefaultDescription
sourceTypeAoqScreenShareSourceTypeDesktopSource type
sourceIdint64_t0Source ID
sourceNameconst char*nullptrSource name
sourceIsSelfboolfalseWhether the window belongs to the current process

AoqScreenShareSourceType

ValueNumberDescription
AoqScreenShareSourceTypeDesktop0Entire desktop
AoqScreenShareSourceTypeWindow1A specific window

AoqScreenCaptureConfig

FieldTypeDefaultDescription
isExternalboolfalseWhether the application supplies raw screen frames.
sourceIdint64_t0Screen source ID.
sourceTypeAoqScreenShareSourceTypeAoqScreenShareSourceTypeDesktopScreen source type.
appGroupconst char*nullptrFor iOS only. Not used on this platform.
Text Generation
Image Generation
Video Generation
World models
Audio
  • Audio generation
Text Embedding
Decision Model
TokenPlan
Model Production
AOQ Client SDK Windows API reference - Alibaba Cloud Model Studio