-
Notifications
You must be signed in to change notification settings - Fork 51
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
Ensure that PulseAudio doesn't send samples upstream too quickly. #789
Conversation
Using this branch has not affected the reporter issues discussed on IRC. |
Does the audio quality sound okay, at least? Haven't heard back from @Tyrbiter yet.
Yep, normal. |
I have not found any real problems with this latest commit, the problems I saw before have not returned. However I probably need to check some more and listen to some more transmissions. For info here are some debug output lines from my current console window: 18:57:16 INFO /home/bdm/git/freedv-gui-v2.0-ms-pulseaudio-divide-samples/src/pipeline/rade_text.c:210: mean amplitude: 1.524844 As you can see there are few people sending EOO text yet, but occasionally things get as far as an rxCRC which usually fails when compared with calcCRC Here's another one: 17:18:42 INFO /home/bdm/git/freedv-gui-v2.0-ms-pulseaudio-divide-samples/src/pipeline/rade_text.c:210: mean amplitude: 0.240837 It's certainly looking hopeful though, I will report if anything obviously bad happens. |
BTW the previous merge shouldn't have any impact on this PR; those changes were basically Windows-only and to hopefully make things easier when it's time to merge v2.0-dev into master. |
I have seen no further issues with FIFO handling so as far as I can see this is good to merge. Not sure if any other audio sub-systems behave like pipewire, but maybe these code changes are generic. |
Sounds good.
These changes are actually pipewire-specific. I sent out Windows/macOS builds from v2.0-dev last night for testing (which use PortAudio) and hopefully no further changes are needed there. |
@Tyrbiter reported in #778 that he's occasionally getting "RX FIFO full" logging messages. Additional investigation indicated that this was because libpulse was queueing up huge boluses of samples in between long periods of being idle. This PR adds some additional logic to space out the incoming samples to prevent samples from being inappropriately dropped.