meet

This file contains MediaApiClientInterface.

Summary

It is designed to utilize the PeerConnection interface.

It demonstrates "how-to", and establishes the required configurations and SCTP/SRTP connections with Meet servers. These connections enable the streaming of conference metadata, video, and audio streams from Google Meet conferences to the client.

All conference media streams are "receive-only". Currently, the Meet Media API does not support sending of media from MediaApiClientInterface into a conference.

API requests from the client intended to affect application state of a conference or received media (e.g. change video resolution), are transmitted via SCTP data channels. This is in contrast to typical API requests over HTTP or RPC.

The following steps are needed to set up a typical Meet Media API session:

  1. Create an implementation of the MediaApiClientObserverInterface.
  2. Create a MediaApiClientInterface using an implementation of the MediaApiClientFactoryInterface.
  3. Call MediaApiClientInterface::ConnectActiveConference with the appropriate parameters. This initiates the connection with Meet servers.
  4. Wait for the MediaApiClientObserverInterface::OnJoined callback to be invoked.
  5. If video was enabled, send a meet::SetVideoAssignmentRequest via MediaApiClientInterface::SendRequest. No video will be transmitted from Meet servers to the client until a successful request has been sent. Check video_assignment_resource.h for more information.

Classes

meet::MediaApiClientFactoryInterface

Interface for instantiating MediaApiClientInterface.

meet::MediaApiClientInterface

Interface for the Meet Media API client.

meet::MediaApiClientObserverInterface

Interface for observing client events.

Structs

meet::AnonymousUser

Anonymous user.

meet::AudioFrame
meet::CanvasDimensions

Required dimensions of the canvas.

meet::LayoutModel
meet::LeaveRequest

Tells the server that the client is about to disconnect.

meet::LeaveResponse
meet::MediaApiClientConfiguration
meet::MediaEntriesChannelToClient

The top-level transport container for messages sent from server to client in the media-entries data channel.

meet::MediaEntriesDeletedResource
meet::MediaEntriesResourceSnapshot
meet::MediaEntry
meet::MediaStatsChannelFromClient

The top-level transport container for messages sent from client to server in the media-stats data channel.

meet::MediaStatsChannelToClient

The top-level transport container for messages sent from server to client in the media-stats data channel.

meet::MediaStatsConfiguration

The configuration for the media stats upload.

meet::MediaStatsRequest
meet::MediaStatsResourceSnapshot

A resource snapshot managed by the server and replicated to the client.

meet::MediaStatsResponse
meet::MediaStatsSection

This type represents an RTCStats-derived dictionary which is returned by calling RTCPeerConnection::getStats.

meet::Participant
meet::ParticipantDeletedResource
meet::ParticipantResourceSnapshot

A resource snapshot managed by the server and replicated to the client.

meet::ParticipantsChannelToClient

The top-level transport container for messages converted from proto to C++ struct.

meet::PhoneUser

Phone user, always has a display name.

meet::SessionControlChannelFromClient

The top-level transport container for messages sent from client to server in the session-control data channel.

meet::SessionControlChannelToClient

The top-level transport container for messages sent from server to client in the session-control data channel.

meet::SessionControlRequest
meet::SessionControlResourceSnapshot
meet::SessionControlResponse

An optional response from Meet servers to an incoming request.

meet::SessionStatus

This is a singleton resource containing the status of the media session.

meet::SetVideoAssignmentRequest
meet::SignedInUser

Signed in user type. Always has a unique ID and display name.

meet::UploadMediaStatsRequest

Uploads media stats from the client to the server.

meet::VideoAssignment
meet::VideoAssignmentChannelFromClient

The top-level transport container for messages sent from client to server in the video-assignment data channel.

meet::VideoAssignmentChannelToClient

The top-level transport container for messages sent from server to client in the video-assignment data channel.

meet::VideoAssignmentRequest
meet::VideoAssignmentResourceSnapshot

A resource snapshot managed by the server and replicated to the client.

meet::VideoAssignmentResponse
meet::VideoCanvas
meet::VideoCanvasAssignment
meet::VideoFrame
meet::VideoResolution

Typedefs

ResourceRequest

std::variant< SessionControlChannelFromClient, VideoAssignmentChannelFromClient, MediaStatsChannelFromClient > ResourceRequest

Requests that can be sent to Meet servers.

Requests can expect a corresponding response via the MediaApiClientObserverInterface.

ResourceUpdate

std::variant< SessionControlChannelToClient, VideoAssignmentChannelToClient, MediaEntriesChannelToClient, ParticipantsChannelToClient, MediaStatsChannelToClient > ResourceUpdate

Updates that can be received from Meet servers.

Updates can be received in response to a request sent via MediaApiClientInterface::SendRequest or from a push from Meet servers.