Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX(client): Prevent local muted users from triggering attenuation #6394

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jlallas384
Copy link
Contributor

@jlallas384 jlallas384 commented Apr 14, 2024

When 'while others users talk' attenuation is enabled, unmuted users still trigger attenuation even if they are locally muted.

The fix is don't add local muted users' audio source to the mixing for the audio output

Fixes #6247

Checks

@Hartmnt Hartmnt added client audio bug A bug (error) in the software labels Apr 14, 2024
Copy link
Member

@Krzmbrzl Krzmbrzl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this also changes the behavior in that audio samples for cases where user == nullptr are discarded whereas before they were still added to qlMix.
That's probably okay though 👀

src/mumble/AudioOutput.cpp Outdated Show resolved Hide resolved
@Hartmnt
Copy link
Member

Hartmnt commented Apr 16, 2024

Note that this also changes the behavior in that audio samples for cases where user == nullptr are discarded whereas before they were still added to qlMix. That's probably okay though 👀

This could be a problem for sound file samples... I would have first to look at the code again to confirm though

@Krzmbrzl
Copy link
Member

Oh indeed - totally missed that!

Copy link
Member

@Hartmnt Hartmnt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change does indeed prevent any sound files (audio cues and notification sounds) from playing.

You have to make sure that samples without a valid user pointer are also added to qlMix

When 'while others users talk' attenuation is enabled, unmuted users
still trigger attenuation even if they are locally muted.

The fix is don't add local muted users' audio source to the mixing
for the audio output

Fixes mumble-voip#6247
Copy link
Member

@Hartmnt Hartmnt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This almost works, but not quite.

Audio samples are now played correctly, and application attenuation is handled gracefully.
However, local muting a priority speaker has no effect now. Which means other users are still locally attenuated, if a locally muted PS speaks.

I think it should be enough to move the !localMute condition to the last else

@Hartmnt
Copy link
Member

Hartmnt commented Jun 2, 2024

@jlallas384 Do you still have the time and motivation to finish this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audio bug A bug (error) in the software client
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Local-muted users keying up triggers attenuation
3 participants