Comments (19)
You can get the commands from here:
pulseshitter/src/audio/pulse.rs
Lines 633 to 649 in 06670f9
from pulseshitter.
I think I see the issue already. Your output is in french. pulseshitter cannot properly detect the events if the output is in french. There might be an environment variable you can run to get it to output in english.
from pulseshitter.
I'll hopefully get around to updating pulseshitter later (currently don't have my setup) so I'll commit a fix by then. In the meantime, you'll have to run the binary with that environment variable.
from pulseshitter.
Pulseshitter has a mechanism in place to kill the stream as soon as the sink input is closed, because it is actually not pulseshitter changing to the microphone, but parec (the process recording your game). This is an issue with the original pulsecord (that this project was inspired by), that pulseshitter is supposed to fix.
This is not an issue me or my friend can reproduce. Can you give me some steps to reproduce the issue? It shouldn't be happening. Also tell me what audio devices you have, and the version of pulseaudio/pipewire on your system.
The yellow process means that the sink input is closed/gone. pulseshitter displays it in yellow and allows you to still select it so that once it comes back, it can continue the stream. This is to fix issues where for example seeking in a video or muting and unmuting will cause the sink input to change.
from pulseshitter.
Works fine for me on both Firefox and Henry Stickmin Collection, I suspect you have an outdated version of pipewire, or perhaps some quirk with pulseaudio?
What distro do you use? I have never run into this issue on popOS 22.04 or Fedora 38, both on pipewire.
It should look like this when you have closed the sink input that is currently streaming.
from pulseshitter.
Hi ! This is weird, then...
So, I'm on Fedora Silverblue 39, so, prolly not a pipewire version issue.
⯠pipewire --version
pipewire
Compiled with libpipewire 0.3.80
Linked with libpipewire 0.3.80
Can you give me some steps to reproduce the issue?
There isn't any difficult process to reproduce it from my side, really. I just finished playing with friends henry stickmin, and the issue is triggered after a few seconds without any sound from the game, but it could also be just the game closing the sink at that time.
Maybe some quirks with Silverblue ?
from pulseshitter.
So, a bit more testing, so, it's actually properly seeing that the sink is closed. The UI just "defocuses" all entries, but pulseshitter outputs my sound.
Here are some steps I did on Firefox:
- A video that was playing, but is paused (the sink is displayed).
- I click the entry, it is correctly waiting for audio without outputting anything.
- I replay the video, Firefox seems to close the old sink (?), what I selected defocuses in the UI, and pulseshitter outputs my voice.
Test 2:
- A video which was currently playing.
- I click the entry, it is correctly playing the video's audio.
- When stopping the audio, no issue.
- But when, replaying, it defocuses on the UI, and plays the microphone's sound.
With any other game I played, when I closed the game, it would begin to output my voice.
from pulseshitter.
Just to be sure, you're on the latest version of pulseshitter, correct?
If that is the case, can you run this command and tell me what you get?
pactl --version
I also checked with my friend, and they are on pipewire 0.3.83
not 0.3.80
so it's possible this is a Fedora regression. If possible, can you try upgrading to that version and see if that works?
Your steps to reproduce do not seem to work. pulseshitter stops outputting when the sink is closed as intended. So this has to be caused by a difference in your system and ours.
from pulseshitter.
This is the line that determines whether or not to clear the stream (aka, stop it). This assumes that the device stays the same, and that the stream has not moved (for example, to your microphone).
pulseshitter/src/audio/parec.rs
Line 65 in 06670f9
My suspicion so far is that you have a version of pipewire that does not properly send this event.
from pulseshitter.
I think I was on the latest pulseshitter, recompiled it just to be sure, and it didn't change anything.
For pactl :
⯠pactl --version
pactl 16.1
Compilé avec libpulse 16.1.0
Lié avec libpulse 16.1.0
I'll try to rebase to the testing repos of Fedora 39 for latest pipewire, as updates is currently in a freeze.
from pulseshitter.
Tested with 0.3.83
, it doesn't solve the problem :/...
from pulseshitter.
That is very strange. Could you try running the parec command that pulseshitter runs and see if it detects the sink input closing properly? It should start with "Stream moved to" and is outputted to stderr. Show me the logs of what that looks like after you have reproduced the issue. Just be sure to direct stdout to /dev/null as it will spam your console with raw audio if not.
pulseshitter/src/audio/parec.rs
Lines 74 to 91 in 06670f9
from pulseshitter.
How to get the device and source ids ?
from pulseshitter.
Okay, so tried to do it manually with Helvum:
- Opened parec
- Removed the automatic links to the microphone : first tip, there is no message when doing that
- Added a link from Firefox : there's a stream moved message
- Removed the Firefox links, either manually or automatically when the sink closes : no message
Ouverture dâun flux enregistrement avec une spĂ©cification dâĂ©chantillon «âŻs16le 2ch 44100HzâŻÂ» et un plan des canaux «âŻfront-left,front-rightâŻÂ».
Connexion Ă©tablie.
Création du flux réussie.
Mesures du tampon : maxlength=4194304, fragsize=352800
Utilisation de la spĂ©cification dâĂ©chantillon «âŻs16le 2ch 44100HzâŻÂ», plan des canaux «âŻfront-left,front-rightâŻÂ».
Connecté au périphérique alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_6__source (index : 52, suspendu : no).
Flux déplacé vers le périphérique Firefox (344, non suspendu).
^CSignal obtenu, fermeture.ce : 1788757 ”sec.
"Flux Déplacé" means Stream moved. That message appeared only when first connecting Firefox to parec at step 3, but not when closing the connection at step 4.
from pulseshitter.
Oh that would be hilarious if that's the issue.
from pulseshitter.
Try running pulseshitter with this environment variable: LANG=C
from pulseshitter.
Yup, that was the issue đ ! This is hilarious.
from pulseshitter.
Seems like a pretty trivial fix for me, and I have a setup ready, will try to send a pull request your way !
from pulseshitter.
Sure, go for it!
from pulseshitter.
Related Issues (16)
- Latency from Parec HOT 1
- Improve source restoration
- pactl can return a malformed json, resulting in a panic HOT 2
- Latency and Time elapsed not working HOT 12
- Allow seperate streams that have same name HOT 1
- Packaging Request for Arch Linux AUR HOT 2
- Guilded integration HOT 2
- Add status that shows the name of the current stream HOT 1
- Automatically stream application currently in focus
- PulseAudio 15 compatibility HOT 5
- Rust panicking at startup HOT 3
- Just wanted to say thanks HOT 2
- Strange Cutting Out When Streaming Spotify HOT 1
- Any way to reconfigure for a new bot? HOT 3
- Chromium 123 added support for soundsharing on linux. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. đđđ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google â€ïž Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pulseshitter.