Skip to main content
Version: 0.0.x

Concept - C++

The C++ SDK provides tools and APIs for enabling real-time communication directly through native C++ applications on Linux and embedded devices (such as Raspberry Pi, NVIDIA Jetson Nano, and Arduino Uno Q). It allows users to join meetings, share and receive audio/video streams, and interact with other participants in real time.

1. Meeting / Room

Meeting or Room object in the VideoSDK provides a virtual place for participants to interact and engage in real-time audio and video sessions. The object is in charge of handling media streams and participant communication.

2. Participant

  • A participant represents a user in the meeting and can share or receive audio/video streams via the C++ SDK.

  • 2.1 Local Participant:

    • The local participant represents the user on the device using the C++ SDK.
    • The user controls their own audio and video streams and can also receive media from others in real time.
  • 2.2 Remote Participant:

    • A remote participant is any other participant in the meeting apart from the user.
    • The user can receive the audio and video streams of the remote participant.
  • Each participant is uniquely identified by a ParticipantId in the meeting.

3. Session

  • A Session is the instance of an ongoing meeting/room which has one or more participants in it. A single room or meeting can have multiple sessions.
  • Each session can be uniquely identified by sessionId.

img.png

4. MediaStream

  • A media stream is a continuous flow of audio or video data transmitted in real time, allowing participants to hear, see, and communicate instantly in a meeting.
  • Send Stream
    • The user captures audio/video (e.g., from V4L2 cameras and PulseAudio) through the device and shares it with other participants in real time.
  • Receive Stream
    • The user receives audio/video from other participants and plays it through the device (e.g., rendering with SDL2).

Got a Question? Ask us on discord