Package-level declarations

Types

Link copied to clipboard
class AndroidVirtualVideoSource(nativeVideoSource: VideoSource, nativeVideoTrack: VideoTrack, val stream: MediaStream, width: Int, height: Int) : VirtualVideoSource

Android implementation of VirtualVideoSource. Allows feeding processed Bitmap frames into a WebRTC video track.

Link copied to clipboard

Android implementation of the WebRTC device backed by mediasoup-client.

Link copied to clipboard
data class AudioInboundStats(val packetsReceived: Long, val packetsLost: Long, val audioLevel: Double?, val totalAudioEnergy: Double?, val totalSamplesDuration: Double?, val concealedSamples: Double?, val jitter: Double?, val bytesReceived: Long? = null, val lastPacketReceivedTimestamp: Double? = null, val ssrc: Long? = null, val jitterBufferDelay: Double? = null, val jitterBufferEmittedCount: Long? = null, val framesDecoded: Long? = null, val trackIdentifier: String? = null, val mid: String? = null)

Snapshot of inbound audio statistics for a consumer.

Link copied to clipboard

Optional capability for providing inbound audio statistics from a consumer.

Link copied to clipboard
data class ConnectData(val dtlsParameters: DtlsParameters, val callback: () -> Unit, val errback: (Throwable) -> Unit)

Data passed to connect event handler.

Link copied to clipboard
Link copied to clipboard
@Serializable
data class DtlsFingerprint(val algorithm: String, val value: String)

DTLS fingerprint.

Link copied to clipboard
@Serializable
data class DtlsParameters(val role: DtlsRole = DtlsRole.AUTO, val fingerprints: List<DtlsFingerprint> = emptyList())

DTLS parameters for transport connection.

Link copied to clipboard
@Serializable
enum DtlsRole : Enum<DtlsRole>

DTLS role.

Link copied to clipboard
data class MediaDeviceInfo(val deviceId: String, val kind: String, val label: String? = null, val groupId: String? = null)

Representation of a media input or output device.

Link copied to clipboard
@Serializable
enum MediaKind : Enum<MediaKind>

Media kinds.

Link copied to clipboard
interface MediaStream

Platform-agnostic media stream interface. Platform implementations will provide concrete implementations.

Link copied to clipboard

Platform-agnostic media stream track interface.

Link copied to clipboard
data class ProduceData(val kind: MediaKind, val rtpParameters: RtpParameters, val appData: Map<String, Any?>?, val callback: (String?) -> Unit, val errback: (Throwable) -> Unit)

Data passed to produce event handler.

Link copied to clipboard
Link copied to clipboard
@Serializable
enum ProducerSource : Enum<ProducerSource>

Producer sources.

Link copied to clipboard
@Serializable
data class RtcpFeedback(val type: String, val parameter: String? = null)

RTCP feedback parameters.

Link copied to clipboard
@Serializable
data class RtcpParameters(val cname: String? = null, val reducedSize: Boolean? = null, val mux: Boolean? = null)

RTCP parameters block.

Link copied to clipboard
@Serializable
data class RtpCapabilities(val codecs: List<RtpCodecCapability> = emptyList(), val headerExtensions: List<RtpHeaderExtension> = emptyList(), val fecMechanisms: List<String> = emptyList())

RTP capabilities for device loading.

Link copied to clipboard
@Serializable
data class RtpCodecCapability(val kind: MediaKind, val mimeType: String, val preferredPayloadType: Int? = null, val clockRate: Int, val channels: Int? = null, val parameters: Map<String, String> = emptyMap(), val rtcpFeedback: List<RtcpFeedback> = emptyList())

RTP codec capability.

Link copied to clipboard
@Serializable
data class RtpCodecParameters(val mimeType: String, val payloadType: Int, val clockRate: Int, val channels: Int? = null, val parameters: Map<String, String> = emptyMap(), val rtcpFeedback: List<RtcpFeedback> = emptyList())

RTP codec parameters.

Link copied to clipboard
@Serializable
data class RtpEncodingParameters(val ssrc: Long? = null, val rid: String? = null, val active: Boolean = true, val maxBitrate: Int? = null, val minBitrate: Int? = null, val maxFramerate: Double? = null, val scalabilityMode: String? = null, val scaleResolutionDownBy: Double? = null, val dtx: Boolean? = null, val networkPriority: String? = null)

RTP encoding parameters.

Link copied to clipboard

RTP header extension direction.

Link copied to clipboard
@Serializable
data class RtpHeaderExtension(val kind: MediaKind? = null, val uri: String, val preferredId: Int, val preferredEncrypt: Boolean = false, val direction: RtpHeaderDirection? = null)

RTP header extension.

Link copied to clipboard
@Serializable
data class RtpHeaderExtensionParameters(val uri: String, val id: Int, val encrypt: Boolean = false, val parameters: Map<String, String> = emptyMap())

RTP header extension parameters.

Link copied to clipboard
@Serializable
data class RtpParameters(val mid: String? = null, val codecs: List<RtpCodecParameters> = emptyList(), val headerExtensions: List<RtpHeaderExtensionParameters> = emptyList(), val encodings: List<RtpEncodingParameters> = emptyList(), val rtcp: RtcpParameters? = null)

RTP parameters for media production.

Link copied to clipboard

Helper utilities for screen capture permission flow.

Link copied to clipboard
data class ScreenCapturePermissionData(val resultCode: Int, val data: Intent)

Data class holding the MediaProjection permission result.

Link copied to clipboard

Exception thrown when the user denies screen capture permission.

Link copied to clipboard

Singleton holder for the shared EGL context used across the WebRTC stack.

Link copied to clipboard

Transport connection states.

Link copied to clipboard
@Serializable
enum TransportType : Enum<TransportType>

Transport types.

Link copied to clipboard

Virtual video source for feeding processed frames into WebRTC. Used for virtual backgrounds where ML Kit processed frames need to be sent to remote participants.

Link copied to clipboard
interface WebRtcConsumer

Basic WebRTC consumer abstraction.

Link copied to clipboard
interface WebRtcDevice

Basic WebRTC device abstraction.

Link copied to clipboard
actual object WebRtcFactory

Android-specific implementation of WebRtcFactory.

expect object WebRtcFactory

Common declaration for platform-specific WebRTC factory implementations.

Link copied to clipboard
interface WebRtcProducer

Basic WebRTC producer abstraction.

Link copied to clipboard
interface WebRtcTransport

Basic WebRTC transport abstraction.

Link copied to clipboard
class WhiteboardVideoCapturer(context: Context, shapesProvider: () -> List<WhiteboardShape>, useImageBackgroundProvider: () -> Boolean = { false }) : VideoCapturer

WhiteboardVideoCapturer - Captures the whiteboard canvas as a video stream.

Functions

Link copied to clipboard

Emits a JSON payload for deeper parity investigations.

Link copied to clipboard
fun RtpCapabilities.debugSummary(label: String = "RTP Caps"): String

Produces a compact, stable summary of the codecs/header extensions for logging and parity checks.