mirror of
https://github.com/vector-im/element-call.git
synced 2026-11-07 00:52:28 +00:00
Blur runs through one pipeline, shared by the pre-join preview and the call: attached the first time an effect is wanted and switched in place after, never detached. The logic is BackgroundEffects in src/state; BackgroundEffectsContext only builds it, from the app's view model, so the standalone app and the component hand the same instance to every camera. Disabled drops the blur radius, so no effect costs no segmentation. The SDK gains fromLivekitProcessor beside the adapter, now toLivekitProcessor. Ported from spec/background-effects/2-pipeline (#4282):a91dab8fwith its review tidy-ups445e010c,bbc73d07,51729bcf,f52d2b79,813f1e6fand 584bbaa0. Left out as already solved here: OneStepPipeline (the SDK runs a processor's steps in turn) and the LiveKit-track sync helpers (the lobby's camera is an SDK track, synced by followProcessor). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
/*
|
|
Copyright 2026 Element Creations Ltd.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
Please see LICENSE in the repository root for full details.
|
|
*/
|
|
|
|
/**
|
|
* EXPERIMENTAL
|
|
*
|
|
* MatrixRTC sessions with LiveKit media, without Element Call's UI: the call
|
|
* model Element Call's own view model is built on, for hosts that want to
|
|
* build a different one. The design is in `SdkArchitecture.md` next to this
|
|
* file.
|
|
*/
|
|
|
|
export { type Behavior, constant } from "./src/reactive/Behavior";
|
|
export {
|
|
Epoch,
|
|
mapEpoch,
|
|
ObservableScope,
|
|
trackEpoch,
|
|
} from "./src/reactive/ObservableScope";
|
|
export {
|
|
filterBehavior,
|
|
finalizeValue,
|
|
generateItems,
|
|
generateItemsWithEpoch,
|
|
pauseWhen,
|
|
} from "./src/reactive/observable";
|
|
export { E2eeType, type EncryptionSystem } from "./src/encryption";
|
|
export {
|
|
defaultMediaQuality,
|
|
defaultSessionTimings,
|
|
type DelayedLeaveTimings,
|
|
MatrixRTCMode,
|
|
type MediaQuality,
|
|
type SessionTimings,
|
|
} from "./src/config";
|
|
export {
|
|
ErrorCategory,
|
|
ErrorCode,
|
|
FailToGetOpenIdToken,
|
|
FailToStartLivekitConnection,
|
|
InsufficientCapacityError,
|
|
LivekitConnectionError,
|
|
MatrixRTCTransportMissingError,
|
|
MembershipManagerError,
|
|
NoMatrix2AuthorizationService,
|
|
PeerConnectionTimeoutError,
|
|
SFURoomCreationRestrictedError,
|
|
UnknownRTCError,
|
|
} from "./src/errors";
|
|
|
|
export * from "./src/api";
|
|
export * from "./src/media-api";
|
|
export * from "./src/media-backend/api";
|
|
export { trackBySource$, type TrackOfSource } from "./src/utils/tracks";
|
|
export { createRTCSlot } from "./src/RTCSlot";
|
|
export {
|
|
createLivekitBackend,
|
|
type LivekitBackendOptions,
|
|
} from "./src/media-backend/livekit/LivekitBackend";
|
|
// Tracks for a lobby, captured ahead of the join and handed to it
|
|
export { createLocalMedia } from "./src/LocalMedia";
|
|
// For a host whose processor is a livekit-client one, such as @livekit/track-processors
|
|
export {
|
|
fromLivekitProcessor,
|
|
toLivekitProcessor,
|
|
} from "./src/media-backend/livekit/videoProcessor";
|
|
// For a developer panel to check a transport before using it
|
|
export {
|
|
getSFUConfig as authenticateWithTransport,
|
|
type GetSFUConfigParams as AuthenticateWithTransportParams,
|
|
} from "./src/media-backend/livekit/auth";
|