Repository navigation
feat: debug page keeps the grid in single view, with short stream checks (#100) - #163
Conversation
…cks of the other slots (#100) In single view (and the U view) the page, the snapshot and stats.json (under 'slots') show the whole grid: the camera on screen framed, every other configured slot checked about every 45 s while the page is in use - an RTSP or HTTP MJPEG session without audio, ~3 s of packets counted (frames, key frames, bitrate; size for MJPEG), then closed. No decoder. At most two checks at a time, never two to one camera, never the camera on screen (XM cameras take one client), no udp:// slots; checks stop in multi-view, on pause, and 60 s after the last debug request.
e6f558c to
e58286a
Compare
|
/review |
Code Review by Qodo
1. Debug builds fail before stream checks run
|
…nd non-JPEG parts are no video, a cancel closes the check's socket at once, transport in slots, threads stopped with the activity
e58286a to
eef7025
Compare
|
Qodo findings, all fixed in 4234ae4 (version bump stays last, eef7025):
Tests added for 1, 3 and 4. /review |
I can’t rerun the Qodo review from this thread because the review action isn’t available here. The published report currently shows findings 1–6 resolved; you can push another commit or trigger |
|
/review |
| long firstMs = -1; | ||
| long lastFrameMs = -1; | ||
| long firstFrameMs = -1; |
There was a problem hiding this comment.
1. Debug builds fail before stream checks run 📎 Requirement gap ≡ Correctness
StreamProbe.Counter declares firstFrameMs twice, so the Java compiler rejects the new probe implementation. The application cannot build or execute the grid and stream-check behavior covered by this change until the duplicate field is removed.
Agent Prompt
## Issue description
`StreamProbe.Counter` declares `firstFrameMs` twice, which causes Java compilation to fail and prevents the debug grid stream checks from being shipped.
## Fix Focus Areas
- android/app/src/main/java/com/openipc/decoder/StreamProbe.java[94-96]
## Recommended Fix
Remove the duplicate `firstFrameMs` declaration and keep a single field initialized to `-1`, then run the Android build and probe unit tests.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
Code review by qodo was updated up to the latest commit eef7025 |
eef7025 to
038cbdc
Compare
…ith a wrong password), the slot on screen beyond 4 gets the 3×3 grid
038cbdc to
27e2372
Compare
|
Qodo on 038cbdc:
Also 3edae3b: an empty slot shows grey, not red. Checked on Aceline-1 (.144, 8 cameras incl. XM .53, single view on slot 4): all 7 other slots got |
Thanks for the update. Based on your report:
The published review is now stale relative to those commits; I can’t regenerate it from this thread, but no further action is indicated from the results you reported. |
…nd non-JPEG parts are no video, a cancel closes the check's socket at once, transport in slots, threads stopped with the activity
…ith a wrong password), the slot on screen beyond 4 gets the 3×3 grid
feat: debug page keeps the grid in single view, with short stream checks (#100)
Closes #100 (option 2 with a short probe, agreed with the maintainer).
In single view (and the U view) the debug page,
/snapshot.jpgand/stats.jsonshow the whole grid (2×2 / 3×3 by the configured slots, the U view 3×3):RtspSession(or HTTP MJPEG request) without audio, ~3 s of packets counted (frames by marker bit, key frames, bitrate; size for MJPEG), then closed. No decoder is used. The cell shows e.g.Stream OK · H.265 · 25 fps · 3.1 Mbit/s · checked 12 s agoor the error (No answer from camera, Wrong login or password, PLAY OK but no video …), in green or red;/stats.jsongetsslots(withon_screenand aprobeobject per cell);singleandcellsstay as they were.Limits:
udp://slots and the U cell are not checked in single view (the port);New:
StreamProbe(one check),StreamProbes(scheduling),StreamProbeTest. README EN/RU/ZH: one bullet in the debug page section.Version 2.03 (versionCode 28).