fix(voice): honour the codec preference in fallback selection (#2390)

This commit is contained in:
Hampus
2026-09-02 17:34:24 +02:00
committed by GitHub
parent f1734704ef
commit e73285060e
@@ -549,7 +549,11 @@ class ScreenShareCodecNegotiation {
selector: (preference: CodecPreference) => VideoCodec,
preference: CodecPreference,
): VideoCodec {
if (this.selectedCodec && this.canUseSelectedCodecForCurrentParticipants(this.selectedCodec)) {
if (
preference === 'auto' &&
this.selectedCodec &&
this.canUseSelectedCodecForCurrentParticipants(this.selectedCodec)
) {
return this.selectedCodec;
}
if (this.localCodecs.length === 0) this.localCodecs = buildLocalCodecAdvertisements();
@@ -560,7 +564,8 @@ class ScreenShareCodecNegotiation {
unknownParticipants,
getScreenShareCodecPreferenceOrder(preference),
);
return negotiated.codec ?? selector('auto');
if (getEncodeSet(this.localCodecs).has(negotiated.codec)) return negotiated.codec;
return selector(preference);
}
private getRemoteCodecInputs(room: Room | null = this.room): {