-
Notifications
You must be signed in to change notification settings - Fork 413
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
Decoders not running continously #728
Comments
@c0d3z3r0 |
Oh sorry, I forgot to mention the version. I tried v1.3.1 on both Windows and Linux and see the same problem |
Here is a demonstration of the problem simplescreenrecorder-2024-01-22_09.07.17.mp4 |
@c0d3z3r0 |
Why does the maximum acquisition time slow down the decoding process? In my video you see that decoding happens instantly when clicking the settings button. Shouldn't the decoder be triggered each time any of the signals change? Update: You were right about the decoder itself. I have added some debug print statements and the decoder continuously is being fed with new data and sends it to DSView through putx. That means, there is a problem in the GUI not updating the decoded data table continuously. |
Another update: I found the source of the problem. The table (protocol dock) only gets updated in 10% steps: https://github.com/DreamSourceLab/DSView/blob/master/DSView/pv/dock/protocoldock.cpp#L480 Probably it would be better to bind update_model() to the signal decode_done. I tried to do it, but I'm not familiar with Qt signals... |
@c0d3z3r0 |
You can clearly see in the video that it's just a view update issue. Did you even read my previous comment? The problem is that binding decoding to the percentage update signal (each 10%) does not make any sense. That is the reason why it's "slower". However, not decoding is slower but only updating the view. To fix this, update_model() should be bound to decode_done() instead. I just don't know how to do it bc I'm not an Qt expert. |
Currently, the decoded data table only gets updated on 10% steps of the overall capture time. This slows down updating of the table on long running sessions, making realtime inspection of e.g. I2C communication impossible. Instead of relying on the capture progress, bind the table update to the annotation generation. Fixes: DreamSourceLab#728 Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
I managed to fix this... Previous behaviour: 298507295-37801f22-8a5e-419c-848e-dec77adf72ed.mp4New behaviour: simplescreenrecorder-2024-01-24_14.46.57.mp4 |
@c0d3z3r0 |
Maybe it would be possible to check the amount of data and limit refresh rate based on that. This way, slow communication via e.g. I2C can still be seen in more-or-less real-time. |
I would expect a decoder (e.g. I2C) to run continuosly during capturing. However, decoding only takes place when either a) stopping the capture or b) hit the decoder settings button (not changing anything!).
The text was updated successfully, but these errors were encountered: