Skip to content

Calls: fix screenshare audio on mic mute and add incoming volume control#30293

Open
paterkleomenis wants to merge 1 commit intotelegramdesktop:devfrom
paterkleomenis:calls-screenshare-audio-fixes
Open

Calls: fix screenshare audio on mic mute and add incoming volume control#30293
paterkleomenis wants to merge 1 commit intotelegramdesktop:devfrom
paterkleomenis:calls-screenshare-audio-fixes

Conversation

@paterkleomenis
Copy link
Contributor

@paterkleomenis paterkleomenis commented Feb 16, 2026

Summary

  • Fix screenshare audio stopping on mic mute: When the user mutes their microphone during a 1-to-1 call with screen audio sharing, the system audio no longer stops. Previously setMuteMicrophone() muted the entire outgoing audio channel, silencing both mic and system audio. Now when screen audio is active, the mic is muted at the ADM mixing level while the channel stays unmuted so system audio continues flowing.

  • Add right-click volume control for incoming audio: Right-clicking on the incoming video in a 1-to-1 call shows a popup menu with a volume slider and mute toggle, allowing local control of the remote user's audio volume. Reuses the existing MenuVolumeItem from group calls.

  • Always use MixingAudioDeviceModule wrapper: The ADM is now always wrapped with MixingAudioDeviceModule so playback volume control is available regardless of loopback capture support.

Depends on desktop-app/lib_webrtc#24

Testing

cmake --build out --config Debug --target Telegram
  • Start a 1-to-1 call with screen sharing + audio enabled
  • Mute microphone → system audio should continue playing for the remote
  • Right-click on the incoming video → volume slider should appear
  • Adjust slider / mute → incoming audio volume changes locally

@paterkleomenis paterkleomenis force-pushed the calls-screenshare-audio-fixes branch from a6ebc84 to 3116cd5 Compare February 23, 2026 01:57
@paterkleomenis paterkleomenis force-pushed the calls-screenshare-audio-fixes branch from ef08e31 to 3116cd5 Compare March 4, 2026 22:47
@ilya-fedin
Copy link
Contributor

The PR has conflicts

@paterkleomenis paterkleomenis force-pushed the calls-screenshare-audio-fixes branch from 3116cd5 to 900513b Compare March 5, 2026 11:41
Fix system audio stopping when microphone is muted during 1-to-1
screen sharing. Previously setMuteMicrophone() muted the entire
outgoing audio channel, killing both mic and system audio. Now when
screen audio is active, mic is muted at the ADM mixing level while
the channel stays unmuted so system audio continues flowing.

Add right-click context menu on the incoming video in 1-to-1 calls
with a volume slider and mute toggle for controlling the remote
user's audio volume locally. Implements setOutputVolume via the
WebRTC receive channel (same mechanism as group calls) so the slider
actually affects playback.

Always wrap the ADM with MixingAudioDeviceModule so playback volume
control is available regardless of loopback capture support.

Add separate controls for participant voice and screen-share audio
in group call member menus, and expose a dedicated screen-share
mute action when screen audio is available.

Add screencast-only fullscreen mode for group call screenshare.
When a screen endpoint is focused, fullscreen switches to a layout
that hides side panels. Controls auto-hide on inactivity and
reappear on mouse movement. Also disable speaking outline rendering
in fullscreen to avoid full-frame green highlighting.
@paterkleomenis paterkleomenis force-pushed the calls-screenshare-audio-fixes branch from 900513b to 8fc77e9 Compare March 5, 2026 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants