tirtc-device-builder 0.11.3 → 0.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tirtc-device-builder",
3
- "version": "0.11.3",
3
+ "version": "0.11.4",
4
4
  "description": "Codex workflows for building and validating TiRTC device firmware across supported chip platforms.",
5
5
  "author": {
6
6
  "name": "TangeAI",
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  This project follows Semantic Versioning.
4
4
 
5
+ ## 0.11.4
6
+
7
+ - Add artifact-bound BK7258 H5, AI and WeChat VoIP media lessons: directional
8
+ capability reporting, 10/11 versus 14/15 STREAM routing, VoIP stream 0,
9
+ AI stream 1 with 16 kHz Opus, negative-on-failure SDK return semantics and
10
+ mode-specific uplink readiness gates.
11
+ - Require PCM-domain AEC from the real post-volume DAC reference for all
12
+ speakerphone full-duplex modes, plus routing/AEC diagnostics, double-talk HIL,
13
+ reference FIFO health and measured codec-task stack headroom.
14
+ - Update the validated BK7258 identity to the TiRTC-Nano 2.5.0 artifact and add
15
+ package validation that prevents these media invariants disappearing.
16
+
5
17
  ## 0.11.3
6
18
 
7
19
  - Add a complete Beken onboarding path to the public README: Skill installation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tirtc-device-builder",
3
- "version": "0.11.3",
3
+ "version": "0.11.4",
4
4
  "description": "Install and run TiRTC device-development Agent Skills across popular coding clients.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -1 +1 @@
1
- 0.11.3
1
+ 0.11.4
@@ -1,7 +1,7 @@
1
1
  # LCKFB BK7258 XiaoTai lessons
2
2
 
3
3
  Use this case study for BK7258 XiaoTai/TiRTC ports and reviews. It distils the
4
- failures fixed in `lckfb-bk7258-xiaotai` through source commit `8a156ff`. These
4
+ failures fixed in `lckfb-bk7258-xiaotai` through source commit `05d3180`. These
5
5
  are gates, not a generic board profile: retain the decisions, but use the exact
6
6
  numbers only when the target matches the identity below.
7
7
 
@@ -14,9 +14,11 @@ The reproducible public SDK baseline is:
14
14
  `release/v3.1.1.8`, commit
15
15
  `1cfd56af09a3cb6470f35f1e0c604035ed1b6ee7`;
16
16
  - GCC Arm None EABI 10.3.1, Cortex-M33, hard-float;
17
- - TiRTC-Nano 2.3.0 `mini`, BK7258 hard-float archive;
18
- - TiRTC build metadata reporting Mbed TLS 2.25.0, linked with the project's
19
- BK7258 Mbed TLS 2.28.5 compatibility archive;
17
+ - TiRTC-Nano 2.5.0 `mini`, BK7258 hard-float archive, SHA-256
18
+ `47e26827ca2419084163e3656dca4d6e508e433381784e9c03f232d3dbaa4171`;
19
+ - TiRTC SSL and DTLS disabled for the validated deployment, with remaining
20
+ crypto references resolved by the SDK PSA Mbed TLS 3.5.2 component and no
21
+ application-vendored compatibility archive;
20
22
  - AP + CP + bootloader package and 16 MiB PSRAM.
21
23
 
22
24
  The locally delivered folder named `bk_avdk_smp_v3.1.1.8_20260605` contains a
@@ -25,11 +27,13 @@ project configuration. It is useful only as implementation and fault-history
25
27
  evidence. Do not identify it as the public tag, use it for SDK checksums, or make
26
28
  it the default Kit source.
27
29
 
28
- Hash the TiRTC and compatibility archives and record the SDK commit, compiler,
30
+ Hash every TiRTC or compatibility archive actually linked and record the SDK commit, compiler,
29
31
  float ABI, libc/RTOS and partition maps. AP-only or CP-only output is diagnostic;
30
32
  the deliverable is the combined package. A different value makes a new artifact
31
- that must pass link, DTLS/WHIP and hardware validation again. Disable the SMP
32
- SDK's ABI-incompatible PSA Mbed TLS 3 path when using this TiRTC package.
33
+ that must pass link, signaling/WHIP and hardware validation again. Do not infer
34
+ a TLS recipe from the version name: the older 2.3.0 artifact required a separate
35
+ compatibility choice, while this validated 2.5.0 artifact uses the SDK PSA path
36
+ with TiRTC SSL/DTLS disabled.
33
37
  Treat the AP and CP CMake caches as part of the SDK identity: both the cached
34
38
  toolchain path and `beken-armino_SOURCE_DIR` must point inside the selected
35
39
  official checkout. Reject or clean a cache created by the local modified SDK;
@@ -91,8 +95,8 @@ hardware:
91
95
  `webclient_post(..., NULL, 0)` also requires explicit response handling;
92
96
  - configure the send buffer before `TiRtcInit`, initialize/start one TiRTC
93
97
  process, and pass SDK option string lengths with the exact convention used by
94
- the matching headers/reference. For TiRTC 2.3.0 here, string lengths exclude
95
- the trailing NUL;
98
+ the matching headers/reference; lock the convention with the selected archive
99
+ instead of carrying a value from an older delivery;
96
100
  - treat a positive `TIRTC_OPT_TGTRP_POLL_TIMEOUT` return as the applied timeout,
97
101
  not a failure. A false retry loop repeatedly initialized/uninitialized SDK
98
102
  task state;
@@ -110,10 +114,51 @@ it. Do not generalize this case study into a universal plain-transport rule.
110
114
 
111
115
  ## Media and capability gate
112
116
 
113
- The demonstrated audio contract is 8 kHz, 16-bit mono PCM with 20 ms TiRTC
114
- G.711 A-law packets; the board path may capture/play in larger chunks. SDK
115
- callbacks enqueue bounded copies and return. A camera-start failure degrades
116
- video while leaving an otherwise valid audio session active.
117
+ Build an explicit matrix per product mode. The 2026-09-29 validated BK7258
118
+ contract is:
119
+
120
+ | Mode | Device uplink | Device downlink/subscription | Codec | Uplink gate |
121
+ |---|---|---|---|---|
122
+ | H5 STREAM | audio 10, video 11 | audio 14, video 15 | G.711 A-law, 8 kHz mono | local uplink subscription state |
123
+ | AI | audio 1 | audio 1 | Opus, 16 kHz mono, 20 ms/320 samples | accepted `start_session` |
124
+ | WeChat VoIP | audio 0, video 1 | audio 0, video 1 | G.711 A-law, 8 kHz mono; video not advertised here | protocol call-active state |
125
+
126
+ These stream IDs are a product/platform contract, not universal TiRTC defaults.
127
+ Verify them against the live profile API and official protocol before reuse.
128
+ Report the complete directional snapshot with `POST /v1/device/profile` before
129
+ sessions and after authenticated reconnect. Sending the locally advertised
130
+ stream does not imply subscribing to that same number: H5 publishes audio 10
131
+ but subscribes to browser talkback audio 14. VoIP publishes and receives audio
132
+ 0 and must not wait for an optional H5-style subscription callback once the
133
+ business protocol has entered call-active state.
134
+
135
+ Treat TiRTC media and subscription API return values as negative-on-failure
136
+ unless the pinned API explicitly documents stricter semantics. Positive returns
137
+ were valid success values in this integration; checking `rc != 0` produced
138
+ false failures and muted paths.
139
+
140
+ SDK callbacks enqueue bounded copies and return. Prewarm the Opus codec,
141
+ playback, capture and queues before AI `start_session`, but gate microphone
142
+ uplink until the matching acceptance. Retain asynchronous peer descriptors and
143
+ tokens until callbacks complete.
144
+
145
+ AEC is a PCM pipeline property, not an Opus-only feature. Enable it for every
146
+ speakerphone full-duplex mode that has a playback reference. Feed the
147
+ post-volume PCM actually written to DAC into a bounded reference FIFO and
148
+ process aligned 20 ms microphone blocks. Validate far-end-only, near-end-only
149
+ and double-talk cases; reference underruns or overruns are release evidence,
150
+ not harmless counters. On this BK7258 port Opus encode/decode UsageFaults were
151
+ eliminated only after placing measured 40 KiB task stacks in PSRAM; carry the
152
+ stack size and high-water evidence rather than the number alone.
153
+
154
+ For one-way audio or echo, add bounded diagnostic logs that correlate mode,
155
+ generation, actual/expected stream ID, packet cadence, mic/reference/output
156
+ energy, AEC residual ratio and reference FIFO under/overruns. Reject or count
157
+ unexpected streams explicitly. Do not tune AEC until routing and reference
158
+ continuity are proven.
159
+
160
+ A camera-start failure degrades video while leaving an otherwise valid audio
161
+ session active.
117
162
 
118
163
  BK7258 provides H.264 encoding but no demonstrated H.264 hardware decoder. The
119
164
  AVDK virtual H.264 decoder is NAL inspection/logging, not decoded video. The
@@ -134,12 +179,17 @@ Require a host contract test plus artifact-bound HIL. At minimum verify:
134
179
  - exact archive hashes, ABI/config/partition invariants and AP-only TiRTC
135
180
  ownership;
136
181
  - provisioning, binding, clock, signed login and one complete capability report;
137
- - first uplink/downlink audio frames and first H.264 frame;
182
+ - the exact mode matrix in the reported profile plus actual/expected stream
183
+ diagnostics; first uplink/downlink audio frames and first H.264 frame;
184
+ - H5 full duplex on 10/14, AI Opus full duplex on 1, and VoIP full duplex on 0;
185
+ - far-end-only, near-end-only and double-talk AEC evidence using the real DAC
186
+ reference, with bounded underrun/overrun counts;
138
187
  - ten AI enter/exit cycles after background polling starts, with no UsageFault,
139
188
  HardFault, reboot, leaked media owner or permanent busy state;
140
189
  - camera failure with audio preserved, two consecutive remote-view sessions,
141
190
  connect/confirmation timeouts and late-callback rejection;
142
- - minimum/largest internal heap during DTLS, camera and full-duplex overlap.
191
+ - minimum/largest internal heap and task stack high-water during signaling,
192
+ Opus/AEC, camera and full-duplex overlap.
143
193
 
144
194
  Use conventional `ERROR`, `WARN`, `INFO`, `DEBUG` levels. The checked-in
145
195
  development configuration defaults to `DEBUG` and prints complete HTTP, MQTT
@@ -1 +1 @@
1
- 0.11.3
1
+ 0.11.4