diff --git a/packages/web/src/components/voice/ScreenShareSettingsPopover.tsx b/packages/web/src/components/voice/ScreenShareSettingsPopover.tsx index 9b8d7764..25443eb5 100644 --- a/packages/web/src/components/voice/ScreenShareSettingsPopover.tsx +++ b/packages/web/src/components/voice/ScreenShareSettingsPopover.tsx @@ -20,9 +20,9 @@ const MODES: { value: ScreenShareConfig['mode']; label: string }[] = [ { value: 'text', label: 'Text' }, ]; -const CODECS: { value: ScreenShareConfig['codec']; label: string; desc: string }[] = [ - { value: 'vp9', label: 'VP9', desc: 'Less bandwidth, more CPU' }, - { value: 'h264', label: 'H.264', desc: 'Less CPU, more bandwidth' }, +const CODECS: { value: ScreenShareConfig['codec']; label: string }[] = [ + { value: 'vp9', label: 'VP9' }, + { value: 'h264', label: 'H.264' }, ]; function formatBitrate(bps: number): string { @@ -193,12 +193,9 @@ export function ScreenShareSettingsPopover({ open, onClose, anchorRef }: ScreenS ))} diff --git a/packages/web/src/stores/voiceStore.ts b/packages/web/src/stores/voiceStore.ts index a4471d93..449de192 100644 --- a/packages/web/src/stores/voiceStore.ts +++ b/packages/web/src/stores/voiceStore.ts @@ -146,7 +146,7 @@ export const useVoiceStore = create()( inputDeviceId: 'default', outputDeviceId: 'default', focusedParticipantId: null, - screenShareConfig: { height: 720, fps: 60, mode: 'gaming', codec: 'h264', customBitrateKbps: null, shareAudio: !isElectron() }, + screenShareConfig: { height: 720, fps: 60, mode: 'gaming', codec: 'vp9', customBitrateKbps: null, shareAudio: !isElectron() }, participantVolumes: new Map(), setParticipantVolume: (userId, volume) => { set((state) => { @@ -326,14 +326,9 @@ export const useVoiceStore = create()( toggleScreenShare: () => set((state) => ({ isScreenSharing: !state.isScreenSharing })), setFocusedParticipant: (id) => set({ focusedParticipantId: id }), - setScreenShareConfig: (config) => set((state) => { - const merged = { ...state.screenShareConfig, ...config }; - // When mode changes (without an explicit codec override), auto-set the smart default - if (config.mode && !config.codec) { - merged.codec = config.mode === 'gaming' ? 'h264' : 'vp9'; - } - return { screenShareConfig: merged }; - }), + setScreenShareConfig: (config) => set((state) => ({ + screenShareConfig: { ...state.screenShareConfig, ...config }, + })), noiseSuppression: true, echoCancellation: true, autoGainControl: true,