Scope of Application
This SDK is used for remote device (e.g. cockpit), suitable for Linux and Windows 64-bit systems, and provides access in the form of so, dll dynamic link libraries.
Main Functions
This SDK provides low-latency audio, video and control/status data transmission for remote real-time operation scenarios. The main functions of SDK are given as follows:
Video Rendering
Render video in a window with a specified handle and automatically respond to window scaling events.
Video Decoding
Supports decoding of video formats such as H264, H265 and AV1 with hardware decoder support.
Video Transmission
Supports the transmission of encoded video streams such as H264, H265, and AV1, with anti-weak network and low-latency transmission capabilities.
Binary Data Transmission
Supports the transparent transmission of binary data from remote device to field device.
Stream Management
The SDK can dynamically manage the stream push status of the field device according to viewing requirements.
Video Latency and Link Status Reporting
The SDK can monitor video latency and link status, and report the corresponding status data through a callback interface.
Basic Concepts
Device ID
Divided into field device (e.g. vehicle) ID and remote device (e.g. cockpit) ID. The device ID is unique, and used to identify the device identity, . If there are two devices with the same device ID connected to the signal server, the server will kick out one device according to the login sequence and the force-login option.
Video Stream ID
Used to identify the video stream index of the field device, and the range of values is [0, size of the streams_config array). When the remote device pulls the video stream, it specifies the video stream to be pulled through the field device ID + video stream ID.
Receiver Handle ID (conn_fd)
Used to identify the video stream receiver of the remote device, and the range of values is [0, max_streams). The video stream receiver is linked with the field device video stream and the video rendering window. When pulling the video stream, you need to specify the corresponding video stream receiver to receive the stream; The following is the process of receiving the video stream.
field device video stream >> remote device video stream receiver >> video rendering window
Video Window Handle
Used to identify the video rendering window, which is a pointer to the video window, such as HWND for windows platform. Through the video window handle, the SDK can render the video image on the specified video window.
Operation Permisson
The permission is used to determinde whether the remote device can control the field device, e.g. send the control data and audio data to the field device. The operation permission is managed by the operation permission SDK API.
Session Permisson
The permission is used to determinde whether the remote device can watch the field device, and get the info/video/data from the field device. The session permission is managed by the cloud API or the cloud console.
Configuration File
It is a JSON format file (i.e. config.json), which contains the initialization configuration of the SDK.