Trimmed monorepo checkout (fluxer_desktop + packages/voice_engine_v2 + tools/ci) with a "Connect to a Different Server" menu item and popout that lets the desktop app switch to any self-hosted Fluxer instance, plus fixes for well-known discovery on single-domain self-hosted deployments and a false-positive ERR_ABORTED on same-origin client redirects during the switch. Defaults to chat.fluxr.chat and uses an isolated userData directory from the official build.
124 lines
4.7 KiB
JSON
124 lines
4.7 KiB
JSON
[
|
|
{
|
|
"name": "classifies all explicit local and remote publication ids",
|
|
"input": {
|
|
"tracks": [
|
|
{"direction": "send", "kind": "video", "trackIdentifier": "local-camera", "bitrateKbps": 500},
|
|
{"direction": "send", "kind": "audio", "trackIdentifier": "local-mic", "bitrateKbps": 48},
|
|
{"direction": "send", "kind": "video", "trackIdentifier": "local-screen", "bitrateKbps": 1200},
|
|
{"direction": "send", "kind": "audio", "trackIdentifier": "local-screen-audio", "bitrateKbps": 96},
|
|
{"direction": "recv", "kind": "audio", "trackIdentifier": "remote-mic", "bitrateKbps": 64},
|
|
{"direction": "recv", "kind": "video", "trackIdentifier": "remote-camera", "bitrateKbps": 900},
|
|
{"direction": "recv", "kind": "video", "trackIdentifier": "remote-screen", "bitrateKbps": 1800},
|
|
{"direction": "recv", "kind": "audio", "trackIdentifier": "remote-screen-audio", "bitrateKbps": 128}
|
|
],
|
|
"publications": {
|
|
"localCameraTrackId": "local-camera",
|
|
"localMicrophoneTrackId": "local-mic",
|
|
"localScreenShareTrackId": "local-screen",
|
|
"localScreenShareAudioTrackId": "local-screen-audio",
|
|
"remoteMicrophoneTrackIds": ["remote-mic"],
|
|
"remoteScreenShareTrackIds": ["remote-screen"],
|
|
"remoteScreenShareAudioTrackIds": ["remote-screen-audio"]
|
|
}
|
|
},
|
|
"expected": {
|
|
"localVideoTrackIndex": 0,
|
|
"localAudioTrackIndex": 1,
|
|
"localScreenShareTrackIndex": 2,
|
|
"localScreenShareAudioTrackIndex": 3,
|
|
"remoteVideoTrackIndex": 5,
|
|
"remoteAudioTrackIndex": 4,
|
|
"remoteScreenShareTrackIndex": 6,
|
|
"remoteScreenShareAudioTrackIndex": 7
|
|
}
|
|
},
|
|
{
|
|
"name": "falls back to rid screen-share and non-rid camera when local ids are missing",
|
|
"input": {
|
|
"tracks": [
|
|
{"direction": "send", "kind": "video", "trackIdentifier": "camera-fallback", "bitrateKbps": 700},
|
|
{"direction": "send", "kind": "video", "rid": "h", "trackIdentifier": "screen-fallback", "bitrateKbps": 1600},
|
|
{"direction": "send", "kind": "audio", "trackIdentifier": "local-mic", "bitrateKbps": 48}
|
|
],
|
|
"publications": {
|
|
"localCameraTrackId": null,
|
|
"localMicrophoneTrackId": null,
|
|
"localScreenShareTrackId": null,
|
|
"localScreenShareAudioTrackId": null,
|
|
"remoteMicrophoneTrackIds": [],
|
|
"remoteScreenShareTrackIds": [],
|
|
"remoteScreenShareAudioTrackIds": []
|
|
}
|
|
},
|
|
"expected": {
|
|
"localVideoTrackIndex": 0,
|
|
"localAudioTrackIndex": 2,
|
|
"localScreenShareTrackIndex": 1,
|
|
"localScreenShareAudioTrackIndex": null,
|
|
"remoteVideoTrackIndex": null,
|
|
"remoteAudioTrackIndex": null,
|
|
"remoteScreenShareTrackIndex": null,
|
|
"remoteScreenShareAudioTrackIndex": null
|
|
}
|
|
},
|
|
{
|
|
"name": "does not classify remote screen-share audio as remote microphone",
|
|
"input": {
|
|
"tracks": [
|
|
{"direction": "recv", "kind": "audio", "trackIdentifier": "remote-screen-audio", "bitrateKbps": 4},
|
|
{"direction": "recv", "kind": "video", "trackIdentifier": "remote-screen", "bitrateKbps": 1800}
|
|
],
|
|
"publications": {
|
|
"localCameraTrackId": null,
|
|
"localMicrophoneTrackId": null,
|
|
"localScreenShareTrackId": null,
|
|
"localScreenShareAudioTrackId": null,
|
|
"remoteMicrophoneTrackIds": [],
|
|
"remoteScreenShareTrackIds": ["remote-screen"],
|
|
"remoteScreenShareAudioTrackIds": ["remote-screen-audio"]
|
|
}
|
|
},
|
|
"expected": {
|
|
"localVideoTrackIndex": null,
|
|
"localAudioTrackIndex": null,
|
|
"localScreenShareTrackIndex": null,
|
|
"localScreenShareAudioTrackIndex": null,
|
|
"remoteVideoTrackIndex": null,
|
|
"remoteAudioTrackIndex": null,
|
|
"remoteScreenShareTrackIndex": 1,
|
|
"remoteScreenShareAudioTrackIndex": 0
|
|
}
|
|
},
|
|
{
|
|
"name": "chooses active remote screen-share and camera candidates over silent rows",
|
|
"input": {
|
|
"tracks": [
|
|
{"direction": "recv", "kind": "video", "trackIdentifier": "remote-camera-silent", "bitrateKbps": 0},
|
|
{"direction": "recv", "kind": "video", "trackIdentifier": "remote-camera-live", "bitrateKbps": 900},
|
|
{"direction": "recv", "kind": "video", "trackIdentifier": "remote-screen-silent", "bitrateKbps": 0},
|
|
{"direction": "recv", "kind": "video", "trackIdentifier": "remote-screen-live", "bitrateKbps": 1600}
|
|
],
|
|
"publications": {
|
|
"localCameraTrackId": null,
|
|
"localMicrophoneTrackId": null,
|
|
"localScreenShareTrackId": null,
|
|
"localScreenShareAudioTrackId": null,
|
|
"remoteMicrophoneTrackIds": [],
|
|
"remoteScreenShareTrackIds": ["remote-screen-silent", "remote-screen-live"],
|
|
"remoteScreenShareAudioTrackIds": []
|
|
}
|
|
},
|
|
"expected": {
|
|
"localVideoTrackIndex": null,
|
|
"localAudioTrackIndex": null,
|
|
"localScreenShareTrackIndex": null,
|
|
"localScreenShareAudioTrackIndex": null,
|
|
"remoteVideoTrackIndex": 1,
|
|
"remoteAudioTrackIndex": null,
|
|
"remoteScreenShareTrackIndex": 3,
|
|
"remoteScreenShareAudioTrackIndex": null
|
|
}
|
|
}
|
|
]
|