-
Notifications
You must be signed in to change notification settings - Fork 91
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
Add documentation of the Replit Audio messages #40
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, thanks. I've added some notes on things that I think could need clarification.
What's the status on this one, has all the comments been addressed? |
they have! |
Setting up a test environment is still on my todo so I can get a better picture of the latency feedback situation. |
you can use https://pulseaudio.luisreplit.repl.co/ as the most realistic test environment possible: a remote shared VM running halfway across the globe, running a JS game in Chrome. The source for that can be found at https://replit.com/@luisreplit/PulseAudio note that if you clone that and run a copy, you might get fewer resources on the VM than what I have since I'm a paid subscriber. when that's the case, the audio will be all choppy, since PA will be starved by the scheduler. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some cleanup from all the changes and we should be good to go.
information, the server can decide to drop audio frames if a client lags | ||
behind too much, by consuming the audio frames from the audio source and | ||
not advancing the encoder state. This way, the stream can still be | ||
decoded by the client. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you see a need for keeping this? I think it's enough that we've stated that the client should handle the synchronisation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, it's a good suggestion to give server implementers: since the client is responsible for synchronization, it's something that servers can do without issues.
the reference implementation also uses it, so i would prefer for that behavior to be present in the spec.
These messages are intended to allow clients to request the server to send compressed audio (with the Opus and MP3 codecs) in push model. The discussion is in https://groups.google.com/g/novnc/c/pQ6h2xLf3Kc Reference implementation (client-side): novnc/noVNC#1525 Reference implementation (server-side): https://github.com/replit/rfbproxy Signed-off-by: Luis Héctor Chávez <luis@repl.it>
edcfc51
to
2b26969
Compare
rebased and squashed the commits |
gentle ping. is there any chance this could be merged? |
I'm afraid I haven't had time to continue my testing. Since there was an issue there I'd like to hold off on merging this in case there is a protocol problem. It's still on my todo though and I hope to get back to it and get all of this resolved. |
is there anything i can help with? the protocol as is written has been running in production for a while with no issues. |
I think you wrote some suggestions on the noVNC PR. I just need to find time to try them out. |
Hello! I'm also interested in this, but I have a couple of questions.
|
These messages are intended to allow clients to request the server to
send compressed audio (with the Opus and MP3 codecs) in push and pull
models.
The discussion is in https://groups.google.com/g/novnc/c/pQ6h2xLf3Kc
Reference implementation (client-side): novnc/noVNC#1525
Reference implementation (server-side): https://github.com/replit/rfbproxy
Signed-off-by: Luis Héctor Chávez luis@replit.com