mediasfu-shared 1.2.6 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/HEADLESS_GUIDE.md +12 -0
- package/README.md +14 -2
- package/dist/ProducerClient/producerClientEmits/roomVideoPolicy.d.ts +20 -0
- package/dist/ProducerClient/producerClientEmits/roomVideoPolicy.d.ts.map +1 -0
- package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts +9 -1
- package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts.map +1 -1
- package/dist/{getParticipantMedia-B8MFkrT1.js → getParticipantMedia-DTZg8n5U.js} +2 -2
- package/dist/{getParticipantMedia-B8MFkrT1.js.map → getParticipantMedia-DTZg8n5U.js.map} +1 -1
- package/dist/{getParticipantMedia-B6LsMxmS.cjs → getParticipantMedia-c2bbdT5f.cjs} +2 -2
- package/dist/{getParticipantMedia-B6LsMxmS.cjs.map → getParticipantMedia-c2bbdT5f.cjs.map} +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +3 -3
- package/dist/index.native.cjs +2 -2
- package/dist/index.native.js +2 -2
- package/dist/{joinLocalRoom-X3NXzGmE.js → joinLocalRoom-1dRd2PCN.js} +21 -20
- package/dist/joinLocalRoom-1dRd2PCN.js.map +1 -0
- package/dist/{joinLocalRoom-XjGmL1_k.cjs → joinLocalRoom-DwY-3ZsH.cjs} +21 -20
- package/dist/joinLocalRoom-DwY-3ZsH.cjs.map +1 -0
- package/dist/methods/index.cjs +1 -0
- package/dist/methods/index.cjs.map +1 -1
- package/dist/methods/index.js +1 -0
- package/dist/methods/index.js.map +1 -1
- package/dist/methods/utils/createResponseJoinRoom.d.ts.map +1 -1
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/shared-base-types.d.ts +4 -0
- package/dist/types/shared-base-types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ProducerClient/producerClientEmits/roomVideoPolicy.ts +41 -0
- package/src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts +15 -21
- package/src/methods/utils/createResponseJoinRoom.ts +2 -1
- package/src/types/shared-base-types.ts +4 -0
- package/dist/joinLocalRoom-X3NXzGmE.js.map +0 -1
- package/dist/joinLocalRoom-XjGmL1_k.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.2.7 — 2026-09-30
|
|
4
|
+
|
|
5
|
+
- Disable camera simulcast automatically for chat and capacity-two rooms, with an explicit `simulcastOff` opt-out for larger rooms and an optional `roomCapacity` hint.
|
|
6
|
+
- Preserve full-resolution encoder limits in single-encoding mode and restore the original preset for later room updates.
|
|
7
|
+
- Remove the recording-only 20% camera bitrate and initial-bitrate uplift; screen-sharing and audio presets are unchanged.
|
|
8
|
+
|
|
9
|
+
|
|
3
10
|
## 1.2.6 — 2026-09-30
|
|
4
11
|
|
|
5
12
|
- Prevent repeated room updates and resolution changes from compounding video bitrates. Each update now uses an isolated copy of the original host or participant preset, including custom encoding and codec options.
|
package/HEADLESS_GUIDE.md
CHANGED
|
@@ -154,3 +154,15 @@ Use a real two-participant room for media acceptance. Seeded or mocked UI proves
|
|
|
154
154
|
- [Secure backend proxy](https://mediasfu.com/docs/usage/secure-backend-proxy/)
|
|
155
155
|
- [MediaSFU Open](https://github.com/MediaSFU/MediaSFUOpen)
|
|
156
156
|
- [MediaSFU Sandbox](https://mediasfu.com/sandbox)
|
|
157
|
+
|
|
158
|
+
## Camera simulcast and recording bitrate
|
|
159
|
+
|
|
160
|
+
Camera simulcast is disabled automatically for `chat` rooms and rooms with a configured capacity of exactly two. This uses the room's configured capacity, not the number of participants currently connected. Larger rooms retain simulcast unless `simulcastOff: true` is supplied.
|
|
161
|
+
|
|
162
|
+
Single-encoding mode uses the full-resolution camera layer and preserves its bitrate and frame-rate limits. Screen-sharing and audio encodings are unchanged. Enabling recording no longer adds a 20% camera bitrate or initial-bitrate uplift.
|
|
163
|
+
|
|
164
|
+
The server's join-response `capacity` takes precedence. For servers that omit it, supply `roomCapacity: 2` as a client-side hint. Programmatic room creation also uses `noUIPreJoinOptions.capacity` as the hint. This option does not change server-side capacity or authorization.
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
updateRoomParametersClient({ parameters, simulcastOff: true, roomCapacity: 2 });
|
|
168
|
+
```
|
package/README.md
CHANGED
|
@@ -186,5 +186,17 @@ await leaveRoom({ parameters, endRoomOnHostExit: false });
|
|
|
186
186
|
The host can later rejoin with the normal room credentials. Never expose production API credentials in a client application; use your backend room proxy outside local development.
|
|
187
187
|
|
|
188
188
|
## License
|
|
189
|
-
|
|
190
|
-
MIT. See [LICENSE](LICENSE).
|
|
189
|
+
|
|
190
|
+
MIT. See [LICENSE](LICENSE).
|
|
191
|
+
|
|
192
|
+
## Camera simulcast and recording bitrate
|
|
193
|
+
|
|
194
|
+
Camera simulcast is disabled automatically for `chat` rooms and rooms with a configured capacity of exactly two. This uses the room's configured capacity, not the number of participants currently connected. Larger rooms retain simulcast unless `simulcastOff: true` is supplied.
|
|
195
|
+
|
|
196
|
+
Single-encoding mode uses the full-resolution camera layer and preserves its bitrate and frame-rate limits. Screen-sharing and audio encodings are unchanged. Enabling recording no longer adds a 20% camera bitrate or initial-bitrate uplift.
|
|
197
|
+
|
|
198
|
+
The server's join-response `capacity` takes precedence. For servers that omit it, supply `roomCapacity: 2` as a client-side hint. Programmatic room creation also uses `noUIPreJoinOptions.capacity` as the hint. This option does not change server-side capacity or authorization.
|
|
199
|
+
|
|
200
|
+
```ts
|
|
201
|
+
updateRoomParametersClient({ parameters, simulcastOff: true, roomCapacity: 2 });
|
|
202
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Camera-only policy. Screen-sharing and audio encodings are unchanged.
|
|
3
|
+
* Server capacity wins over a hint; recording does not increase camera bitrate.
|
|
4
|
+
*/
|
|
5
|
+
export interface CameraEncodingPolicy {
|
|
6
|
+
simulcastOff?: boolean;
|
|
7
|
+
roomCapacity?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function cameraSimulcastOff(eventType: string, capacity: number | undefined, options?: CameraEncodingPolicy): boolean;
|
|
10
|
+
type CameraEncoding = {
|
|
11
|
+
rid?: string;
|
|
12
|
+
scaleResolutionDownBy?: number;
|
|
13
|
+
scalabilityMode?: string;
|
|
14
|
+
};
|
|
15
|
+
/** Mutate only the fresh room preset, preserving its original-preset lineage. */
|
|
16
|
+
export declare function applyCameraEncodingPolicy<T extends {
|
|
17
|
+
encodings: CameraEncoding[];
|
|
18
|
+
}>(params: T, singleEncoding: boolean): T;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=roomVideoPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomVideoPolicy.d.ts","sourceRoot":"","sources":["../../../src/ProducerClient/producerClientEmits/roomVideoPolicy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAGT;AAED,KAAK,cAAc,GAAG;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,cAAc,EAAE,CAAA;CAAE,EACjF,MAAM,EAAE,CAAC,EACT,cAAc,EAAE,OAAO,GACtB,CAAC,CAYH"}
|
|
@@ -31,6 +31,10 @@ export interface UpdateRoomParametersClientParameters {
|
|
|
31
31
|
islevel: string;
|
|
32
32
|
showAlert?: ShowAlert;
|
|
33
33
|
data: ResponseJoinRoom;
|
|
34
|
+
/** Disable camera simulcast even in larger rooms. */
|
|
35
|
+
simulcastOff?: boolean;
|
|
36
|
+
/** Capacity hint used only when the server does not return capacity. */
|
|
37
|
+
roomCapacity?: number;
|
|
34
38
|
updateRtpCapabilities: (rtpCapabilities: RtpCapabilities | null) => void;
|
|
35
39
|
updateRoomRecvIPs: (roomRecvIPs: string[]) => void;
|
|
36
40
|
updateMeetingRoomParams: (meetingRoomParams: MeetingRoomParams | null) => void;
|
|
@@ -79,7 +83,11 @@ export interface UpdateRoomParametersClientParameters {
|
|
|
79
83
|
}
|
|
80
84
|
export type UpdateRoomParametersClientOptions = {
|
|
81
85
|
parameters: UpdateRoomParametersClientParameters;
|
|
86
|
+
/** Disable camera simulcast even in larger rooms. */
|
|
87
|
+
simulcastOff?: boolean;
|
|
88
|
+
/** Capacity hint used only when the server does not return capacity. */
|
|
89
|
+
roomCapacity?: number;
|
|
82
90
|
};
|
|
83
91
|
export type UpdateRoomParametersClientType = (options: UpdateRoomParametersClientOptions) => void;
|
|
84
|
-
export declare const updateRoomParametersClient: ({ parameters }: UpdateRoomParametersClientOptions) => void;
|
|
92
|
+
export declare const updateRoomParametersClient: ({ parameters, simulcastOff, roomCapacity }: UpdateRoomParametersClientOptions) => void;
|
|
85
93
|
//# sourceMappingURL=updateRoomParametersClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateRoomParametersClient.d.ts","sourceRoot":"","sources":["../../../src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"updateRoomParametersClient.d.ts","sourceRoot":"","sources":["../../../src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as modifySettings } from "./joinLocalRoom-
|
|
1
|
+
import { m as modifySettings } from "./joinLocalRoom-1dRd2PCN.js";
|
|
2
2
|
import { a as applyAudioProcessing } from "./audioProcessing-0z5KlcmO.js";
|
|
3
3
|
import { K as streamSuccessAudio, M as streamSuccessScreen, O as streamSuccessVideo, o as disconnectSendTransportAudio, p as disconnectSendTransportScreen, q as disconnectSendTransportVideo } from "./updateParticipantAudioDecibels-DiJ_LFfH.js";
|
|
4
4
|
const launchBackground = ({
|
|
@@ -3557,4 +3557,4 @@ export {
|
|
|
3557
3557
|
confirmRecording as y,
|
|
3558
3558
|
launchRecording as z
|
|
3559
3559
|
};
|
|
3560
|
-
//# sourceMappingURL=getParticipantMedia-
|
|
3560
|
+
//# sourceMappingURL=getParticipantMedia-DTZg8n5U.js.map
|