Repository navigation
feat: the U cell plays pushed UDP RTP on port 5600, first in decoding priority (#87, #94) - #111
Conversation
|
/review |
Code Review by Qodo
1. Active U streams lose planner priority
|
| quadCells = new QuadCell[CELL_COUNT]; | ||
| for (int i = 0; i < CELL_COUNT; i++) { | ||
| if (quadViews[i] == null) continue; | ||
| String url = mHosts[i]; | ||
| String url = i == U_CELL ? UDP_CELL_URL : mHosts[i]; | ||
| if (url == null || url.isEmpty() || url.equals(DEFAULT_URL)) continue; | ||
| quadCells[i] = new QuadCell(i, url, mTransports[i], quadViews[i], framePool, mUserAgent, | ||
| Transport.Mode mode = i == U_CELL ? Transport.Mode.UDP : mTransports[i]; | ||
| quadCells[i] = new QuadCell(i, url, mode, quadViews[i], framePool, mUserAgent, |
There was a problem hiding this comment.
1. Active u streams lose planner priority 📎 Requirement gap ➹ Performance
createQuadCells() always adds the U stream at index 8, while planDecoding() orders cells by index after the optional audio cell. When U receives frames, it follows every configured slot and any selected audio cell, so lower-priority streams can be promoted first.
Agent Prompt
## Issue description
The U stream is appended at index 8 and the decode planner still schedules cells by audio selection followed by index order, so an active U stream is not prioritized ahead of slots as required by PR Compliance ID 1.
## Fix Focus Areas
- android/app/src/main/java/com/openipc/decoder/Decoder.java[797-803]
- android/app/src/main/java/com/openipc/decoder/Decoder.java[984-1000]
## Recommended Fix
Build the planner order with an active, connected U cell first, then the audio-selected cell, then ordinary slots. Ensure the U cell is only treated as active when it is receiving and decoding data, while preserving the existing promotion and demotion behavior for all other cells.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
…nd full-screen; hint with every device address, kept current (#87)
7607ce8 to
66e2918
Compare
Closes #87, closes #94.
U_CELL= 8,CELL_COUNT= 9) that listens onudp://@:5600through the receiver of feat: receive plain RTP from Majestic outgoing over UDP, unicast and multicast (#68) #72. It decodes, gets corner text, takes part in the Multi-view: adaptive decoding — full rate or key frames per cell, learnt device capacity #85 planner (lowest priority until Decoding priority: the U stream first once data arrives #94) and in the debug page //stats.json(slot: "U") and snapshots.NetInfo.addresses()from feat: debug HTTP server on port 8085, LAN clients only (#96) #97), one per line;this device:5600if there is none. Refreshed once a second while shown, so a new DHCP lease or a cable/Wi‑Fi switch appears without restarting the grid.localIpv4()(first site-local address only) and the static hint view.udpHintTextwith zero / one / two addresses; U cell constants).Note: a slot with
udp://@:5600and the U cell would both bind port 5600; use another port in slots.Device check: Majestic
outgoingfrom a lab camera toudp://<box>:5600→ picture in the ninth cell and in the U view; hint with the box's address before the stream; debug page.Device check (Aceline-1, build 7607ce8): Majestic
outgoingon.165toudp://172.17.32.144:5600→ the ninth cell plays it (H.265 1920×1088),/stats.jsonlists it as slotU, transport UDP; Majestic reports the destinationlive.