mirror of
https://github.com/n0mjs710/ipsc2hbpc.git
synced 2026-11-08 04:18:24 +00:00
Port of the Python fix (ipsc2hbp fix/ta-ghost-streams). Current XPR8400 firmware,
when a radio transmits with Talker Alias enabled, emits a new IPSC stream every
superframe for one OTA call: the call-seq (byte 5) increments per superframe and
the TA superframes carry the alias text in the common-header src/dst (non-GVCU
FLCO at burst-E byte 56). RTP timestamp stays continuous — it is one call. Read
on the wire: 1 PTT -> 30 IPSC streams (half a phantom 'N0MJS' identity) = the
ghost traffic.
Re-anchor the IPSC->HBP path in translator_ipsc_voice_received:
- Stop treating an IPSC call-seq (byte 5) change as a call boundary; detect a
new call by RTP-timestamp discontinuity (out_call_continues, OUT_RTP_MAX_FWD).
- Late entry anchors identity only to a GVCU (FLCO 0x00) burst E; a Talker
Alias / GPS burst E is skipped (its header src/dst are alias bytes).
- Forward every frame under the LOCKED identity (out_lc) and one stable HBP
stream ID, ignoring per-frame header relabels.
- Relabel the start/end pairing token ipsc_id -> int_seq_id (no longer a stable
IPSC id; it is just a token to pair the log lines).
VOICE_HEAD stays byte-5 anchored (HEAD/TERM carry no usable RTP; a new byte 5 at
a header = new stream). New ipsc_const.h: GV_RTP_TS_OFF, GV_BE_FLAG,
GV_BE_LC_FLCO_OFF, FLCO_GROUP. Parity goldens regenerated from the fixed Python:
make test passes byte-for-byte (DSP 83/83, parity IPSC->HBP 16/16, HBP->IPSC 2/2).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
17 lines
1.7 KiB
Plaintext
17 lines
1.7 KiB
Plaintext
444d5244002f9b8100005b002f9b80210000000003f40d981fb418884d003f80046dff57d75df5de310c0b0033700be01b81af03b30000
|
|
444d5244012f9b8100005b002f9b80100000000032003310662140217094a4d126b755fd7df75f78673efeb41c266819929f5835fb0000
|
|
444d5244022f9b8100005b002f9b80010000000081450c6ef167c9ee0f96cf8dd5d13060f0f0591c5805a996b05edd93175262ce6a0000
|
|
444d5244032f9b8100005b002f9b8002000000005665a2b3626dc93aba9e1c2644f170c09000574ab017dcf4bbc54be228689f60670000
|
|
444d5244042f9b8100005b002f9b800300000000e703af8b936f52c5e19c943eb91170c12270374431da6b5751f9f886a2934802a70000
|
|
444d5244052f9b8100005b002f9b800400000000120f5a22246d12d398989fa16a315173f28390750ca0d6fde2162d84afef756e900000
|
|
444d5244062f9b8100005b002f9b800500000000812fb21895839f9ae33637ddfb71100000000e23e433c5dba92c98ca1a448e40940000
|
|
444d5244072f9b8100005b002f9b802200000000039b0d4c1f0418f04d703f2004adff57d75df5d964180838341007a01381b603800000
|
|
444d5244082f9be5000009002f9b80210000000003d90dfe0e901cf8042075e0846dff57d75df5de31a80e20321001c03101c381d30000
|
|
444d5244092f9be5000009002f9b8010000000003002103204005106726fd8c704e755fd7df75f71361370edfc662a74367a9ef8310000
|
|
444d52440a2f9be5000009002f9b80010000000009ec46dd7bee4150470f227c9301306060f0691f6fc98947eeadb5f86926abd2690000
|
|
444d52440b2f9be5000009002f9b800200000000bdf53de389f3737170025b402261706090006744b5bcd6a1729546873dcd14b08a0000
|
|
444d52440c2f9be5000009002f9b800300000000085dc11e5e1d328f0cae4bc91da170c030c0a74ab808e70a096ad32de1f56d0f9e0000
|
|
444d52440d2f9be5000009002f9b800400000000dd15ec42c97fe0be93f5d7d1cae15060f0303072cae71c6a93544423ac6872edcc0000
|
|
444d52440e2f9be5000009002f9b800500000000429adaef1a50f50ee23ffe6c1ef1100000000e23529b2cdde599d70230160bca590000
|
|
444d52440f2f9be5000009002f9b80220000000003b60d2a0e201c800450754084adff57d75df5d964bc0d1835700d803901da81e00000
|