-
-
Notifications
You must be signed in to change notification settings - Fork 61
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
Improve streaming error handling #108
Comments
@nowrep have you made enough progress on this to add a patch towards this in the upcoming release or do you think any progress on this should wait for the next release (could make a bug fix release later for progress on this). |
This is what I have so far. Not perfect, but seems to behave a bit better so I'd say it's at least worth testing. |
What it does is simply re-submit last good frame on FEC error. But on its own it wouldn't work, because ffmpeg would error out on duplicate frame number / POC. So it also includes ffmpeg patch to deal with this, it could be done without patching ffmpeg but it's way more code so I did it the "lazy" way 😃 |
thanks for the explanation, I deleted my comment because it was based on an older state of the code, sorry about that. |
I get a lot of whole screen flashes on this fec-replay branch: nowrep@3b7dbf7 If anyone knows a good way to run a debugger like gdb with gamemode I'll give that a try to see which part is directly producing the missing frames. Tried locally building and running a debugger which crashed desktop mode so that didn't get me very far but if anyone has experience with remote debugging on Steam Deck then hopefully that would be useful. Using hw decoder of none + 90000 bitrate to produce more egregious data: |
@panthurrr you can follow this https://streetpea.github.io/chiaki4deck/diy/steamdeckdev/ for using gdb on steam deck builds.Install 23.08 not 22.08 though as it changed since the last release. You can use desktop mode for this if you follow those instructions. |
@Panthurr I would also suggest printing out the logs in stdout and stderr to a file like:
(I updated Chiaki4deck-hdr repo to add the fixing POC change) I also get a lot of white flashes with vaapi off and bitrate set to 90000 (log above). Using an older version of the code without the change is just as bad if not worse so at the very least this change doesn't seem to make things worse but there is still work to be done to eliminate the flashing. |
Alright, updated branch. Should be better now, it also survives the "settings->internet" test now. Use vaapi with this please. Also the ffmpeg patches are required, it won't work at all without it. |
@nowrep I tested this out and now it only has fixing duplicate POC and afterwards does not have the could not find ref with POC. There is also no more white flashing in these instances. I did encounter one white flash at the very beginning of one of the test streaming sessions but that was just could not find ref with POC with negative numbers like
and didn't have the fixing duplicate POC so I think that happened in a different error case. Anyway, the streaming errors are definitely much improved versus the current state so I will add this to the release. If there are any more advancements you can make on this @nowrep I can add them to a patch release afterwards. Otherwise, this seem like a great improvement. Thanks for all your contributions @nowrep! |
Hmm no idea how the negative numbers happened. But I guess if the very first frame is corrupted it could happen? Also offtopic here: you can get vulkan video on deck ( |
Improve handling of streaming errors such as corrupted frames that currently causes flashes sometimes and green or gray covering the screen other times.
The text was updated successfully, but these errors were encountered: