tirtc-devtools-cli 0.2.5 → 0.3.1
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.
- package/README.md +8 -2
- package/USAGE.md +9 -0
- package/dist/cli/src/index.js +6 -0
- package/dist/cli/src/role_driver.js +7 -2
- package/dist/cli/src/role_live_log.js +13 -1
- package/package.json +1 -1
- package/vendor/devtools/driver/linux-x64/devtools_driver_probe +0 -0
- package/vendor/devtools/driver/macos-arm64/devtools_driver_probe +0 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio.h +5 -1
- package/vendor/runtime/linux-x64/include/tirtc/av.h +6 -2
- package/vendor/runtime/linux-x64/include/tirtc/media_downlink.h +9 -0
- package/vendor/runtime/linux-x64/include/tirtc/transport.h +1 -12
- package/vendor/runtime/linux-x64/include/tirtc/trp.h +4 -10
- package/vendor/runtime/linux-x64/include/tirtc/video_io_apple.h +14 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_facade.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_foundation_logging.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_media.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_transport.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_video.a +0 -0
- package/vendor/runtime/linux-x64/manifest.txt +12 -12
- package/vendor/runtime/macos-arm64/include/tirtc/audio.h +5 -1
- package/vendor/runtime/macos-arm64/include/tirtc/av.h +6 -2
- package/vendor/runtime/macos-arm64/include/tirtc/media_downlink.h +9 -0
- package/vendor/runtime/macos-arm64/include/tirtc/transport.h +1 -12
- package/vendor/runtime/macos-arm64/include/tirtc/trp.h +4 -10
- package/vendor/runtime/macos-arm64/include/tirtc/video_io_apple.h +14 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_audio.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_facade.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_foundation_http.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_foundation_logging.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_media.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_transport.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_video.a +0 -0
- package/vendor/runtime/macos-arm64/manifest.txt +14 -14
package/README.md
CHANGED
|
@@ -65,13 +65,19 @@ prepared asset 会按完整音视频轨循环,任一轨到达源文件末尾
|
|
|
65
65
|
`device start` 的启动成功条件是 device listener 已就绪;客户端是否已经扫码连接不属于
|
|
66
66
|
device 启动失败条件。没有 client 时命令会继续常驻,直到用户结束进程或显式
|
|
67
67
|
`--duration-ms` 到期,summary 中 `media_send` 会保持未开始或标记为跳过。有 client
|
|
68
|
-
连接时 driver
|
|
69
|
-
|
|
68
|
+
连接时 driver 会把该连接挂到共享音视频输入上;client 断开后,device 会清理该连接,
|
|
69
|
+
并继续接受新的连接。若旧连接的断开回调尚未到达,新连接也会立即挂载并收到同一组
|
|
70
|
+
音视频输入的数据。
|
|
70
71
|
|
|
71
72
|
native role 失败时,`reason_code` 与 `failed_stage` 仍是主失败事实;`log_upload`
|
|
72
73
|
只说明失败现场日志是否已上传。上传成功时,CLI JSON 与 `summary.json` 会包含
|
|
73
74
|
可用于后续抓取的 `log_id`。
|
|
74
75
|
|
|
76
|
+
`device start` 与 `client start` 启动的 native role 默认 echo 收到的 command:
|
|
77
|
+
收到任意 command 后,用同一个 command id 与同一 payload 原样回发。CLI 不新增
|
|
78
|
+
额外控制命令或开关;`summary.json` 与 `--json` envelope 会包含 `command_echo`
|
|
79
|
+
evidence,用于确认 command 收发面已被覆盖。
|
|
80
|
+
|
|
75
81
|
打包入口:
|
|
76
82
|
|
|
77
83
|
```sh
|
package/USAGE.md
CHANGED
|
@@ -146,6 +146,10 @@ provided. That file is a local handoff artifact for CLI client, runtime sample
|
|
|
146
146
|
smoke, and validation automation. The token in that bootstrap is intended for
|
|
147
147
|
one client connection.
|
|
148
148
|
|
|
149
|
+
`device start` starts a native role that echoes every received command with the
|
|
150
|
+
same command id and payload. No extra CLI command or option is required.
|
|
151
|
+
`summary.json` and the `--json` envelope include `command_echo` evidence.
|
|
152
|
+
|
|
149
153
|
`bootstrap.json` is not a mobile SDK connection protocol. For phone debugging,
|
|
150
154
|
use token/license QR today; a full session QR or deeplink is a separate product
|
|
151
155
|
slice.
|
|
@@ -160,6 +164,11 @@ node products/cli/bin/tirtc-devtools-cli.js --json client start \
|
|
|
160
164
|
|
|
161
165
|
Client writes `summary.json`, `events.jsonl`, runtime logs, and `render/first-video-frame.*` for `frame_dump`.
|
|
162
166
|
|
|
167
|
+
The native client role also echoes every received command with the same command
|
|
168
|
+
id and payload. `summary.json` and the `--json` envelope include `command_echo`
|
|
169
|
+
evidence, so command receive and reply coverage is visible in normal CLI
|
|
170
|
+
artifacts.
|
|
171
|
+
|
|
163
172
|
`client start --bootstrap` is meant for the local computer-to-computer DevTools
|
|
164
173
|
flow. Mobile clients should not be required to fetch a local JSON file from the
|
|
165
174
|
developer machine.
|
package/dist/cli/src/index.js
CHANGED
|
@@ -141,6 +141,9 @@ device start succeeds once the device listener is ready. It keeps running withou
|
|
|
141
141
|
the process is stopped or an explicit --duration-ms deadline is reached.
|
|
142
142
|
Runtime lifecycle logs are written to stderr. With --json, the final envelope remains on stdout.
|
|
143
143
|
|
|
144
|
+
The native device role echoes every received command with the same command id and payload.
|
|
145
|
+
summary.json and the --json envelope include command_echo evidence.
|
|
146
|
+
|
|
144
147
|
bootstrap.json is a local handoff artifact for client/sample/validation automation.
|
|
145
148
|
It is only written when --client-token-json is provided.
|
|
146
149
|
It is not a mobile SDK connection protocol.
|
|
@@ -171,6 +174,9 @@ Examples:
|
|
|
171
174
|
|
|
172
175
|
bootstrap.json is expected to come from a local device start run.
|
|
173
176
|
For mobile device debugging, use token/license QR or a future session QR/deeplink.
|
|
177
|
+
|
|
178
|
+
The native client role echoes every received command with the same command id and payload.
|
|
179
|
+
summary.json and the --json envelope include command_echo evidence.
|
|
174
180
|
`)
|
|
175
181
|
.action((commandOptions) => {
|
|
176
182
|
runAndExit((0, role_driver_1.runClientStart)(commandOptions, getCliOptions()));
|
|
@@ -167,7 +167,11 @@ function redactRequestValue(value) {
|
|
|
167
167
|
}
|
|
168
168
|
const result = {};
|
|
169
169
|
for (const [key, child] of Object.entries(value)) {
|
|
170
|
-
if (key === 'license' ||
|
|
170
|
+
if (key === 'license' ||
|
|
171
|
+
key === 'token' ||
|
|
172
|
+
key === 'client_token' ||
|
|
173
|
+
key === 'device_secret_key' ||
|
|
174
|
+
key === 'secret_key') {
|
|
171
175
|
result[key] = '[REDACTED]';
|
|
172
176
|
}
|
|
173
177
|
else {
|
|
@@ -313,8 +317,8 @@ function buildDeviceRequest(roots, artifactRoot, options) {
|
|
|
313
317
|
role: 'device',
|
|
314
318
|
endpoint: deviceIdentity.endpoint,
|
|
315
319
|
identity: {
|
|
316
|
-
license: deviceIdentity.deviceId + ',' + deviceIdentity.deviceSecretKey,
|
|
317
320
|
device_id: deviceIdentity.deviceId,
|
|
321
|
+
device_secret_key: deviceIdentity.deviceSecretKey,
|
|
318
322
|
},
|
|
319
323
|
bootstrap,
|
|
320
324
|
streams: {
|
|
@@ -553,6 +557,7 @@ async function runRole(role, commandOptions, options) {
|
|
|
553
557
|
failed_stage: failedStage(summary),
|
|
554
558
|
log_id: summary.log_upload?.log_id,
|
|
555
559
|
log_upload: summary.log_upload,
|
|
560
|
+
command_echo: summary.command_echo,
|
|
556
561
|
};
|
|
557
562
|
if (summary.exit_code === 0 && summary.status === 'completed') {
|
|
558
563
|
printEnvelope(options, 0, 'OK', data);
|
|
@@ -83,7 +83,7 @@ function startRoleLiveLog(options) {
|
|
|
83
83
|
let processedLineCount = 0;
|
|
84
84
|
let stopped = false;
|
|
85
85
|
const log = (message) => {
|
|
86
|
-
emit('[device] ' + message);
|
|
86
|
+
emit(new Date().toISOString() + ' [device] ' + message);
|
|
87
87
|
};
|
|
88
88
|
const media = nestedRecord(request, 'media');
|
|
89
89
|
const codec = payloadString(nestedRecord(media, 'video'), 'codec') ??
|
|
@@ -145,6 +145,15 @@ function startRoleLiveLog(options) {
|
|
|
145
145
|
log('client connected session=' + (session ?? 'unknown'));
|
|
146
146
|
break;
|
|
147
147
|
}
|
|
148
|
+
case 'connection.state.changed': {
|
|
149
|
+
const parts = ['connection state changed'];
|
|
150
|
+
appendField(parts, 'session', sessionIndex(payload));
|
|
151
|
+
appendField(parts, 'state', payloadString(payload, 'state'));
|
|
152
|
+
appendField(parts, 'state_code', payloadNumber(payload, 'state_code'));
|
|
153
|
+
appendField(parts, 'error', payloadNumber(payload, 'error'));
|
|
154
|
+
log(parts.join(' '));
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
148
157
|
case 'connection.session.start': {
|
|
149
158
|
const session = sessionIndex(payload);
|
|
150
159
|
if (session !== undefined) {
|
|
@@ -219,6 +228,9 @@ function startRoleLiveLog(options) {
|
|
|
219
228
|
appendField(parts, 'session', session);
|
|
220
229
|
appendField(parts, 'first_audio', payloadBoolean(payload, 'sent_first_audio'));
|
|
221
230
|
appendField(parts, 'first_video', payloadBoolean(payload, 'sent_first_video'));
|
|
231
|
+
appendField(parts, 'exit_reason', payloadString(payload, 'exit_reason'));
|
|
232
|
+
appendField(parts, 'submit_error_track', payloadString(payload, 'submit_error_track'));
|
|
233
|
+
appendField(parts, 'submit_error_status', payloadNumber(payload, 'submit_error_status'));
|
|
222
234
|
appendField(parts, 'elapsed', elapsed === undefined ? undefined : formatDurationMs(elapsed));
|
|
223
235
|
log(parts.join(' '));
|
|
224
236
|
break;
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -94,6 +94,10 @@ typedef struct TirtcPendingDurationMetrics {
|
|
|
94
94
|
typedef struct TirtcAudioOutputMetricsSnapshot {
|
|
95
95
|
TirtcOutputStutterMetrics stutter;
|
|
96
96
|
TirtcPendingDurationMetrics pending;
|
|
97
|
+
double input_bitrate_kbps;
|
|
98
|
+
double input_packet_rate;
|
|
99
|
+
double render_callback_rate;
|
|
100
|
+
uint32_t rate_window_duration_ms;
|
|
97
101
|
} TirtcAudioOutputMetricsSnapshot;
|
|
98
102
|
|
|
99
103
|
/**
|
|
@@ -101,7 +105,7 @@ typedef struct TirtcAudioOutputMetricsSnapshot {
|
|
|
101
105
|
*
|
|
102
106
|
* The snapshot is a caller-owned value copy. Zero-initialized fields mean the output has not yet
|
|
103
107
|
* observed a matching runtime fact or only cached zero-state is available. This diagnostic API is
|
|
104
|
-
* intended for UI/debug visibility and logs, not for
|
|
108
|
+
* intended for UI/debug visibility and logs, not for output control decisions.
|
|
105
109
|
*/
|
|
106
110
|
typedef struct TirtcAudioOutputDebugSnapshot {
|
|
107
111
|
TirtcMediaCodec codec;
|
|
@@ -46,6 +46,11 @@ typedef struct TirtcVideoOutputMetricsSnapshot {
|
|
|
46
46
|
TirtcVideoOutputStartupMetrics startup;
|
|
47
47
|
TirtcOutputStutterMetrics stutter;
|
|
48
48
|
TirtcPendingDurationMetrics pending;
|
|
49
|
+
double input_bitrate_kbps;
|
|
50
|
+
double input_fps;
|
|
51
|
+
double decoded_fps;
|
|
52
|
+
double render_fps;
|
|
53
|
+
uint32_t rate_window_duration_ms;
|
|
49
54
|
} TirtcVideoOutputMetricsSnapshot;
|
|
50
55
|
|
|
51
56
|
/**
|
|
@@ -53,8 +58,7 @@ typedef struct TirtcVideoOutputMetricsSnapshot {
|
|
|
53
58
|
*
|
|
54
59
|
* The snapshot is a caller-owned value copy. `resolved_decoder_backend` is the runtime route that
|
|
55
60
|
* has actually locked, so AUTO fallback reports the concrete backend family instead of the request.
|
|
56
|
-
* Zero values mean no current fact or only cached zero-state is available.
|
|
57
|
-
* a new V2 struct/function instead of extending this layout.
|
|
61
|
+
* Zero values mean no current fact or only cached zero-state is available.
|
|
58
62
|
*/
|
|
59
63
|
typedef struct TirtcVideoOutputDebugSnapshot {
|
|
60
64
|
TirtcMediaCodec codec;
|
|
@@ -69,6 +69,10 @@ typedef struct TirtcMediaDownlinkPendingMetricsSnapshot {
|
|
|
69
69
|
typedef struct TirtcMediaDownlinkAudioMetricsSnapshot {
|
|
70
70
|
TirtcMediaDownlinkStutterMetricsSnapshot stutter;
|
|
71
71
|
TirtcMediaDownlinkPendingMetricsSnapshot pending;
|
|
72
|
+
double input_bitrate_kbps;
|
|
73
|
+
double input_packet_rate;
|
|
74
|
+
double render_callback_rate;
|
|
75
|
+
uint32_t rate_window_duration_ms;
|
|
72
76
|
} TirtcMediaDownlinkAudioMetricsSnapshot;
|
|
73
77
|
|
|
74
78
|
typedef struct TirtcMediaDownlinkVideoStartupMetricsSnapshot {
|
|
@@ -84,6 +88,11 @@ typedef struct TirtcMediaDownlinkVideoMetricsSnapshot {
|
|
|
84
88
|
TirtcMediaDownlinkVideoStartupMetricsSnapshot startup;
|
|
85
89
|
TirtcMediaDownlinkStutterMetricsSnapshot stutter;
|
|
86
90
|
TirtcMediaDownlinkPendingMetricsSnapshot pending;
|
|
91
|
+
double input_bitrate_kbps;
|
|
92
|
+
double input_fps;
|
|
93
|
+
double decoded_fps;
|
|
94
|
+
double render_fps;
|
|
95
|
+
uint32_t rate_window_duration_ms;
|
|
87
96
|
} TirtcMediaDownlinkVideoMetricsSnapshot;
|
|
88
97
|
|
|
89
98
|
/**
|
|
@@ -139,7 +139,7 @@ typedef struct TirtcTransportConnServiceOptions {
|
|
|
139
139
|
* This is a service-level capacity contract. It applies to the listener as a
|
|
140
140
|
* whole, not to any single connection and not to any individual stream.
|
|
141
141
|
*
|
|
142
|
-
*
|
|
142
|
+
* Set to 0 to leave the listener capacity to the active transport backend.
|
|
143
143
|
*/
|
|
144
144
|
uint32_t max_connections;
|
|
145
145
|
} TirtcTransportConnServiceOptions;
|
|
@@ -289,17 +289,6 @@ typedef struct TirtcTransportConnCallbacks {
|
|
|
289
289
|
*/
|
|
290
290
|
TirtcError tirtc_transport_init(void);
|
|
291
291
|
|
|
292
|
-
/**
|
|
293
|
-
* @brief Enable/disable transport debug mode.
|
|
294
|
-
*
|
|
295
|
-
* When enabled, transport backend sets verbose vendor SDK log level during runtime init
|
|
296
|
-
* and applies it immediately if runtime is already initialized.
|
|
297
|
-
*
|
|
298
|
-
* @param enabled Non-zero to enable debug mode, zero to disable.
|
|
299
|
-
* @return Operation status.
|
|
300
|
-
*/
|
|
301
|
-
TirtcError tirtc_transport_enable_debug(uint8_t enabled);
|
|
302
|
-
|
|
303
292
|
/**
|
|
304
293
|
* @brief Uninitialize transport runtime.
|
|
305
294
|
*
|
|
@@ -25,19 +25,13 @@ typedef struct TirtcInitOptions {
|
|
|
25
25
|
|
|
26
26
|
} TirtcInitOptions;
|
|
27
27
|
|
|
28
|
-
typedef enum TirtcMediaSendPolicy {
|
|
29
|
-
|
|
30
|
-
TIRTC_MEDIA_SEND_POLICY_ON_REQUEST = 0,
|
|
31
|
-
|
|
32
|
-
TIRTC_MEDIA_SEND_POLICY_AUTO_ON_CONNECTED = 1,
|
|
33
|
-
} TirtcMediaSendPolicy;
|
|
34
|
-
|
|
35
28
|
typedef struct TirtcConnServiceStartOptions {
|
|
36
|
-
const char*
|
|
29
|
+
const char* device_id;
|
|
37
30
|
|
|
38
|
-
|
|
31
|
+
const char* device_secret_key;
|
|
39
32
|
|
|
40
|
-
|
|
33
|
+
/** Set to 0 to leave accepted-connection capacity to the active backend. */
|
|
34
|
+
uint32_t max_connections;
|
|
41
35
|
} TirtcConnServiceStartOptions;
|
|
42
36
|
|
|
43
37
|
typedef struct TirtcConnConnectOptions {
|
|
@@ -20,8 +20,17 @@ typedef enum TirtcVideoAppleWindowSlot {
|
|
|
20
20
|
TIRTC_VIDEO_APPLE_WINDOW_SLOT_RIGHT = 2,
|
|
21
21
|
} TirtcVideoAppleWindowSlot;
|
|
22
22
|
|
|
23
|
+
typedef enum TirtcVideoAppleCameraFacing {
|
|
24
|
+
TIRTC_VIDEO_APPLE_CAMERA_FACING_FRONT = 0,
|
|
25
|
+
TIRTC_VIDEO_APPLE_CAMERA_FACING_BACK = 1,
|
|
26
|
+
} TirtcVideoAppleCameraFacing;
|
|
27
|
+
|
|
23
28
|
typedef int (*TirtcVideoAppleOnPixelBufferFn)(void* pixel_buffer, void* user_data);
|
|
24
29
|
|
|
30
|
+
typedef struct TirtcVideoAppleAvFoundationVinOptions {
|
|
31
|
+
TirtcVideoAppleCameraFacing camera_facing;
|
|
32
|
+
} TirtcVideoAppleAvFoundationVinOptions;
|
|
33
|
+
|
|
25
34
|
typedef struct TirtcVideoAppleCoreVideoVoutOptions {
|
|
26
35
|
TirtcVideoAppleVoutTarget target;
|
|
27
36
|
TirtcVideoAppleOnPixelBufferFn on_pixel_buffer;
|
|
@@ -35,6 +44,11 @@ typedef struct TirtcVideoAppleCoreVideoVoutOptions {
|
|
|
35
44
|
uint32_t window_height;
|
|
36
45
|
} TirtcVideoAppleCoreVideoVoutOptions;
|
|
37
46
|
|
|
47
|
+
TirtcError tirtc_video_apple_create_avfoundation_vin(TirtcVideoVin** out_vin);
|
|
48
|
+
TirtcError tirtc_video_apple_avfoundation_vin_set_options(
|
|
49
|
+
TirtcVideoVin* vin, const TirtcVideoAppleAvFoundationVinOptions* options);
|
|
50
|
+
TirtcError tirtc_video_apple_avfoundation_vin_get_actual_facing(
|
|
51
|
+
TirtcVideoVin* vin, TirtcVideoAppleCameraFacing* out_camera_facing);
|
|
38
52
|
TirtcError tirtc_video_apple_create_core_video_vout(TirtcVideoVout** out_vout);
|
|
39
53
|
TirtcError tirtc_video_apple_core_video_vout_set_options(
|
|
40
54
|
TirtcVideoVout* vout, const TirtcVideoAppleCoreVideoVoutOptions* options);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
platform=linux-x64
|
|
2
2
|
profile=full
|
|
3
|
-
staged_at_utc=2026-05-
|
|
3
|
+
staged_at_utc=2026-05-09T08:58:54Z
|
|
4
4
|
source_sdk=/Users/allenfeng/Development/Repositories/tirtc-nexus/tirtc-matrix/.build/sdk/linux-x64
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
92ac54ea714e5a7da536d3d63b955a9e30faf9560ebe670034a79f3ea69c21cb include/tirtc/audio.h
|
|
7
7
|
6d972ccfe150a3b4f2d7f18fa92b3ade9210c1c8bb754d061ac6b7997b59e2cb include/tirtc/audio_codec.h
|
|
8
8
|
7bacbdb2d8bb10d6444036a8fef42f2a8e3ea34dfc38e165ee678d61f189db41 include/tirtc/audio_frame.h
|
|
9
9
|
fb8ea35263167c33487bd3aa503c26ed2dfbf97877f7bda92c10065cd5c97c13 include/tirtc/audio_io.h
|
|
@@ -13,33 +13,33 @@ c2e1f31dcc75be461c577d18b1cebe32774f212d51cb4dd2a5b5a9bfe62b693e include/tirtc/
|
|
|
13
13
|
51cbc911fe9f9834046f0e0a1a7cdd814a8e194a615894a8b4d11f9e5f095610 include/tirtc/audio_io_windows.h
|
|
14
14
|
21f60729117260a44af22c1af986ef17d22673b102b7b7a035f492d0665cce16 include/tirtc/audio_processing.h
|
|
15
15
|
0ca7c3c630b1242f51a0fd8154097c0a332b4c816a5707090e4381719852998c include/tirtc/audio_sample_rate.h
|
|
16
|
-
|
|
16
|
+
f40ce007241e4aa6ef2e2bcd589060636ef0e9859a9102c8b955d348f4f7eabc include/tirtc/av.h
|
|
17
17
|
b3e110ce04057d3be696b120d1abeaf6141711a1c63ca7f9bdf65ed5ec6e16d7 include/tirtc/error.h
|
|
18
18
|
ae805545a9515edc9b94262e72ad2c7b7d649288166f4daeb450d8a55e82ae0b include/tirtc/foundation/build_info.h
|
|
19
19
|
7cf8b372a3d48d4de4a65a04c7f102281a7b42cebb9ec247853d3c53afb63b6a include/tirtc/http.h
|
|
20
20
|
70bbf93b84d9d1a85f376d9986de570c1f658319e1e5ab6d621f7a4d41033f5c include/tirtc/logging.h
|
|
21
21
|
7e2f7f81afe37e22f5414d9db32438edd948ff775230c3a0a17ff9ac1a0b560e include/tirtc/media_codec.h
|
|
22
|
-
|
|
22
|
+
43c0ac9173b6259a1b1379eac780f4892a0a72572801ac9eb8516c0bdb4913c3 include/tirtc/media_downlink.h
|
|
23
23
|
e64191a39004165cdcd11b2ca824af34d4bfe02f7ec3c3101fa9291f56488c30 include/tirtc/media_uplink.h
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
57be6941026e7dd173e8779b2bb868532d65e41f7917aad476a31ac25c1cd6c3 include/tirtc/transport.h
|
|
25
|
+
fba7954919606e507b6a074440440903665217959699da89ca9dd206772c0ef0 include/tirtc/trp.h
|
|
26
26
|
92b3db6e2cb02265ad5db01881edce9d4e095b1dadf449dce5d8bb5362957e33 include/tirtc/video_codec.h
|
|
27
27
|
e51379666c199588cc33279ccf52248035d1cae3d1d468b1615ebf29f0b39c9c include/tirtc/video_frame.h
|
|
28
28
|
2a02645d82c58d433c7306a9f0bcd31d0f3e560b63822f7e80919761b81a6284 include/tirtc/video_io.h
|
|
29
29
|
9930dce5e8e2b12a1ab28ee91f3fb46f6cf3487e515ea2b4ec0e00009bd5f070 include/tirtc/video_io_android.h
|
|
30
|
-
|
|
30
|
+
f22127424d5978ab0644209b6c25c24e19e320dd2fbda6634e6344597ff7e2be include/tirtc/video_io_apple.h
|
|
31
31
|
cae0bbeb884e5466a56da15182c78cc22baab6c743f349a58d3595f623333585 include/tirtc/video_io_harmony.h
|
|
32
32
|
65b5d24fe3a6bc2a299a2220148a153ba4eb0955a49c1c3baabf1fdfed8aabdd include/tirtc/video_io_windows.h
|
|
33
33
|
8cd6b66bea14890a665cc317f8572429b2c3e4463773f8b77c1e4dc30a4a8747 include/tirtc/video_processing.h
|
|
34
34
|
ceb7cdd45efae57e5bd53d4177cb20c4a0cb9917fcdd23127b050d69c8b919ac lib/libTiRTC.a
|
|
35
35
|
b1f4135025cb8e8520a14268d831b9998920a4239f84bb6b409d0e4909fd5bee lib/libcrypto.a
|
|
36
36
|
296ba0b5efa9d2ac49e3bf278c5d467b31436e73fbc608b736e974bcf9759bde lib/libmatrix_runtime_audio.a
|
|
37
|
-
|
|
37
|
+
8552aba878ffb4c242e4af589784fafbdd938291663af750aaa94d902cba72ce lib/libmatrix_runtime_facade.a
|
|
38
38
|
ec7bbf8e8744c6645a441a28e24e0645906152cc987d6fcca16af3c3badba940 lib/libmatrix_runtime_foundation_http.a
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
b4f225727bf9c829c3329054112ab56477f1cc5729be1eb4952a85b649ba0a8a lib/libmatrix_runtime_foundation_logging.a
|
|
40
|
+
031927b01cee74366cf2662559c2ddfe8476531c4af7c549f311503d4da6f424 lib/libmatrix_runtime_media.a
|
|
41
|
+
4942f5c742a6013e35708f6dd1e5b8ca702454990f1785e82d734aaea6ab114d lib/libmatrix_runtime_transport.a
|
|
42
|
+
774e8ae6c5e96ff5976bf440bc259044157c51e0b1dab0e77e5e087b7d059f01 lib/libmatrix_runtime_video.a
|
|
43
43
|
511d521f7972df3993e5976d6e2dbcad7a6fbce9be15071274d0cbd9d51157f5 lib/libssl.a
|
|
44
44
|
a67ec9034848ef24a1b17671e444daa62a8f9e6b8319a1e932593908720ff2a1 lib/libwebrtc_apm.a
|
|
45
45
|
700e455255897e3cffab13ca593a6e4d9d11383ae609215cbbd6043a63d47161 lib/libxlog.a
|
|
@@ -94,6 +94,10 @@ typedef struct TirtcPendingDurationMetrics {
|
|
|
94
94
|
typedef struct TirtcAudioOutputMetricsSnapshot {
|
|
95
95
|
TirtcOutputStutterMetrics stutter;
|
|
96
96
|
TirtcPendingDurationMetrics pending;
|
|
97
|
+
double input_bitrate_kbps;
|
|
98
|
+
double input_packet_rate;
|
|
99
|
+
double render_callback_rate;
|
|
100
|
+
uint32_t rate_window_duration_ms;
|
|
97
101
|
} TirtcAudioOutputMetricsSnapshot;
|
|
98
102
|
|
|
99
103
|
/**
|
|
@@ -101,7 +105,7 @@ typedef struct TirtcAudioOutputMetricsSnapshot {
|
|
|
101
105
|
*
|
|
102
106
|
* The snapshot is a caller-owned value copy. Zero-initialized fields mean the output has not yet
|
|
103
107
|
* observed a matching runtime fact or only cached zero-state is available. This diagnostic API is
|
|
104
|
-
* intended for UI/debug visibility and logs, not for
|
|
108
|
+
* intended for UI/debug visibility and logs, not for output control decisions.
|
|
105
109
|
*/
|
|
106
110
|
typedef struct TirtcAudioOutputDebugSnapshot {
|
|
107
111
|
TirtcMediaCodec codec;
|
|
@@ -46,6 +46,11 @@ typedef struct TirtcVideoOutputMetricsSnapshot {
|
|
|
46
46
|
TirtcVideoOutputStartupMetrics startup;
|
|
47
47
|
TirtcOutputStutterMetrics stutter;
|
|
48
48
|
TirtcPendingDurationMetrics pending;
|
|
49
|
+
double input_bitrate_kbps;
|
|
50
|
+
double input_fps;
|
|
51
|
+
double decoded_fps;
|
|
52
|
+
double render_fps;
|
|
53
|
+
uint32_t rate_window_duration_ms;
|
|
49
54
|
} TirtcVideoOutputMetricsSnapshot;
|
|
50
55
|
|
|
51
56
|
/**
|
|
@@ -53,8 +58,7 @@ typedef struct TirtcVideoOutputMetricsSnapshot {
|
|
|
53
58
|
*
|
|
54
59
|
* The snapshot is a caller-owned value copy. `resolved_decoder_backend` is the runtime route that
|
|
55
60
|
* has actually locked, so AUTO fallback reports the concrete backend family instead of the request.
|
|
56
|
-
* Zero values mean no current fact or only cached zero-state is available.
|
|
57
|
-
* a new V2 struct/function instead of extending this layout.
|
|
61
|
+
* Zero values mean no current fact or only cached zero-state is available.
|
|
58
62
|
*/
|
|
59
63
|
typedef struct TirtcVideoOutputDebugSnapshot {
|
|
60
64
|
TirtcMediaCodec codec;
|
|
@@ -69,6 +69,10 @@ typedef struct TirtcMediaDownlinkPendingMetricsSnapshot {
|
|
|
69
69
|
typedef struct TirtcMediaDownlinkAudioMetricsSnapshot {
|
|
70
70
|
TirtcMediaDownlinkStutterMetricsSnapshot stutter;
|
|
71
71
|
TirtcMediaDownlinkPendingMetricsSnapshot pending;
|
|
72
|
+
double input_bitrate_kbps;
|
|
73
|
+
double input_packet_rate;
|
|
74
|
+
double render_callback_rate;
|
|
75
|
+
uint32_t rate_window_duration_ms;
|
|
72
76
|
} TirtcMediaDownlinkAudioMetricsSnapshot;
|
|
73
77
|
|
|
74
78
|
typedef struct TirtcMediaDownlinkVideoStartupMetricsSnapshot {
|
|
@@ -84,6 +88,11 @@ typedef struct TirtcMediaDownlinkVideoMetricsSnapshot {
|
|
|
84
88
|
TirtcMediaDownlinkVideoStartupMetricsSnapshot startup;
|
|
85
89
|
TirtcMediaDownlinkStutterMetricsSnapshot stutter;
|
|
86
90
|
TirtcMediaDownlinkPendingMetricsSnapshot pending;
|
|
91
|
+
double input_bitrate_kbps;
|
|
92
|
+
double input_fps;
|
|
93
|
+
double decoded_fps;
|
|
94
|
+
double render_fps;
|
|
95
|
+
uint32_t rate_window_duration_ms;
|
|
87
96
|
} TirtcMediaDownlinkVideoMetricsSnapshot;
|
|
88
97
|
|
|
89
98
|
/**
|
|
@@ -139,7 +139,7 @@ typedef struct TirtcTransportConnServiceOptions {
|
|
|
139
139
|
* This is a service-level capacity contract. It applies to the listener as a
|
|
140
140
|
* whole, not to any single connection and not to any individual stream.
|
|
141
141
|
*
|
|
142
|
-
*
|
|
142
|
+
* Set to 0 to leave the listener capacity to the active transport backend.
|
|
143
143
|
*/
|
|
144
144
|
uint32_t max_connections;
|
|
145
145
|
} TirtcTransportConnServiceOptions;
|
|
@@ -289,17 +289,6 @@ typedef struct TirtcTransportConnCallbacks {
|
|
|
289
289
|
*/
|
|
290
290
|
TirtcError tirtc_transport_init(void);
|
|
291
291
|
|
|
292
|
-
/**
|
|
293
|
-
* @brief Enable/disable transport debug mode.
|
|
294
|
-
*
|
|
295
|
-
* When enabled, transport backend sets verbose vendor SDK log level during runtime init
|
|
296
|
-
* and applies it immediately if runtime is already initialized.
|
|
297
|
-
*
|
|
298
|
-
* @param enabled Non-zero to enable debug mode, zero to disable.
|
|
299
|
-
* @return Operation status.
|
|
300
|
-
*/
|
|
301
|
-
TirtcError tirtc_transport_enable_debug(uint8_t enabled);
|
|
302
|
-
|
|
303
292
|
/**
|
|
304
293
|
* @brief Uninitialize transport runtime.
|
|
305
294
|
*
|
|
@@ -25,19 +25,13 @@ typedef struct TirtcInitOptions {
|
|
|
25
25
|
|
|
26
26
|
} TirtcInitOptions;
|
|
27
27
|
|
|
28
|
-
typedef enum TirtcMediaSendPolicy {
|
|
29
|
-
|
|
30
|
-
TIRTC_MEDIA_SEND_POLICY_ON_REQUEST = 0,
|
|
31
|
-
|
|
32
|
-
TIRTC_MEDIA_SEND_POLICY_AUTO_ON_CONNECTED = 1,
|
|
33
|
-
} TirtcMediaSendPolicy;
|
|
34
|
-
|
|
35
28
|
typedef struct TirtcConnServiceStartOptions {
|
|
36
|
-
const char*
|
|
29
|
+
const char* device_id;
|
|
37
30
|
|
|
38
|
-
|
|
31
|
+
const char* device_secret_key;
|
|
39
32
|
|
|
40
|
-
|
|
33
|
+
/** Set to 0 to leave accepted-connection capacity to the active backend. */
|
|
34
|
+
uint32_t max_connections;
|
|
41
35
|
} TirtcConnServiceStartOptions;
|
|
42
36
|
|
|
43
37
|
typedef struct TirtcConnConnectOptions {
|
|
@@ -20,8 +20,17 @@ typedef enum TirtcVideoAppleWindowSlot {
|
|
|
20
20
|
TIRTC_VIDEO_APPLE_WINDOW_SLOT_RIGHT = 2,
|
|
21
21
|
} TirtcVideoAppleWindowSlot;
|
|
22
22
|
|
|
23
|
+
typedef enum TirtcVideoAppleCameraFacing {
|
|
24
|
+
TIRTC_VIDEO_APPLE_CAMERA_FACING_FRONT = 0,
|
|
25
|
+
TIRTC_VIDEO_APPLE_CAMERA_FACING_BACK = 1,
|
|
26
|
+
} TirtcVideoAppleCameraFacing;
|
|
27
|
+
|
|
23
28
|
typedef int (*TirtcVideoAppleOnPixelBufferFn)(void* pixel_buffer, void* user_data);
|
|
24
29
|
|
|
30
|
+
typedef struct TirtcVideoAppleAvFoundationVinOptions {
|
|
31
|
+
TirtcVideoAppleCameraFacing camera_facing;
|
|
32
|
+
} TirtcVideoAppleAvFoundationVinOptions;
|
|
33
|
+
|
|
25
34
|
typedef struct TirtcVideoAppleCoreVideoVoutOptions {
|
|
26
35
|
TirtcVideoAppleVoutTarget target;
|
|
27
36
|
TirtcVideoAppleOnPixelBufferFn on_pixel_buffer;
|
|
@@ -35,6 +44,11 @@ typedef struct TirtcVideoAppleCoreVideoVoutOptions {
|
|
|
35
44
|
uint32_t window_height;
|
|
36
45
|
} TirtcVideoAppleCoreVideoVoutOptions;
|
|
37
46
|
|
|
47
|
+
TirtcError tirtc_video_apple_create_avfoundation_vin(TirtcVideoVin** out_vin);
|
|
48
|
+
TirtcError tirtc_video_apple_avfoundation_vin_set_options(
|
|
49
|
+
TirtcVideoVin* vin, const TirtcVideoAppleAvFoundationVinOptions* options);
|
|
50
|
+
TirtcError tirtc_video_apple_avfoundation_vin_get_actual_facing(
|
|
51
|
+
TirtcVideoVin* vin, TirtcVideoAppleCameraFacing* out_camera_facing);
|
|
38
52
|
TirtcError tirtc_video_apple_create_core_video_vout(TirtcVideoVout** out_vout);
|
|
39
53
|
TirtcError tirtc_video_apple_core_video_vout_set_options(
|
|
40
54
|
TirtcVideoVout* vout, const TirtcVideoAppleCoreVideoVoutOptions* options);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
platform=macos-arm64
|
|
2
2
|
profile=full
|
|
3
|
-
staged_at_utc=2026-05-
|
|
3
|
+
staged_at_utc=2026-05-09T08:57:10Z
|
|
4
4
|
source_sdk=/Users/allenfeng/Development/Repositories/tirtc-nexus/tirtc-matrix/.build/sdk/macos-arm64
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
92ac54ea714e5a7da536d3d63b955a9e30faf9560ebe670034a79f3ea69c21cb include/tirtc/audio.h
|
|
7
7
|
6d972ccfe150a3b4f2d7f18fa92b3ade9210c1c8bb754d061ac6b7997b59e2cb include/tirtc/audio_codec.h
|
|
8
8
|
7bacbdb2d8bb10d6444036a8fef42f2a8e3ea34dfc38e165ee678d61f189db41 include/tirtc/audio_frame.h
|
|
9
9
|
fb8ea35263167c33487bd3aa503c26ed2dfbf97877f7bda92c10065cd5c97c13 include/tirtc/audio_io.h
|
|
@@ -13,21 +13,21 @@ c2e1f31dcc75be461c577d18b1cebe32774f212d51cb4dd2a5b5a9bfe62b693e include/tirtc/
|
|
|
13
13
|
51cbc911fe9f9834046f0e0a1a7cdd814a8e194a615894a8b4d11f9e5f095610 include/tirtc/audio_io_windows.h
|
|
14
14
|
21f60729117260a44af22c1af986ef17d22673b102b7b7a035f492d0665cce16 include/tirtc/audio_processing.h
|
|
15
15
|
0ca7c3c630b1242f51a0fd8154097c0a332b4c816a5707090e4381719852998c include/tirtc/audio_sample_rate.h
|
|
16
|
-
|
|
16
|
+
f40ce007241e4aa6ef2e2bcd589060636ef0e9859a9102c8b955d348f4f7eabc include/tirtc/av.h
|
|
17
17
|
b3e110ce04057d3be696b120d1abeaf6141711a1c63ca7f9bdf65ed5ec6e16d7 include/tirtc/error.h
|
|
18
18
|
ae805545a9515edc9b94262e72ad2c7b7d649288166f4daeb450d8a55e82ae0b include/tirtc/foundation/build_info.h
|
|
19
19
|
7cf8b372a3d48d4de4a65a04c7f102281a7b42cebb9ec247853d3c53afb63b6a include/tirtc/http.h
|
|
20
20
|
70bbf93b84d9d1a85f376d9986de570c1f658319e1e5ab6d621f7a4d41033f5c include/tirtc/logging.h
|
|
21
21
|
7e2f7f81afe37e22f5414d9db32438edd948ff775230c3a0a17ff9ac1a0b560e include/tirtc/media_codec.h
|
|
22
|
-
|
|
22
|
+
43c0ac9173b6259a1b1379eac780f4892a0a72572801ac9eb8516c0bdb4913c3 include/tirtc/media_downlink.h
|
|
23
23
|
e64191a39004165cdcd11b2ca824af34d4bfe02f7ec3c3101fa9291f56488c30 include/tirtc/media_uplink.h
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
57be6941026e7dd173e8779b2bb868532d65e41f7917aad476a31ac25c1cd6c3 include/tirtc/transport.h
|
|
25
|
+
fba7954919606e507b6a074440440903665217959699da89ca9dd206772c0ef0 include/tirtc/trp.h
|
|
26
26
|
92b3db6e2cb02265ad5db01881edce9d4e095b1dadf449dce5d8bb5362957e33 include/tirtc/video_codec.h
|
|
27
27
|
e51379666c199588cc33279ccf52248035d1cae3d1d468b1615ebf29f0b39c9c include/tirtc/video_frame.h
|
|
28
28
|
2a02645d82c58d433c7306a9f0bcd31d0f3e560b63822f7e80919761b81a6284 include/tirtc/video_io.h
|
|
29
29
|
9930dce5e8e2b12a1ab28ee91f3fb46f6cf3487e515ea2b4ec0e00009bd5f070 include/tirtc/video_io_android.h
|
|
30
|
-
|
|
30
|
+
f22127424d5978ab0644209b6c25c24e19e320dd2fbda6634e6344597ff7e2be include/tirtc/video_io_apple.h
|
|
31
31
|
cae0bbeb884e5466a56da15182c78cc22baab6c743f349a58d3595f623333585 include/tirtc/video_io_harmony.h
|
|
32
32
|
65b5d24fe3a6bc2a299a2220148a153ba4eb0955a49c1c3baabf1fdfed8aabdd include/tirtc/video_io_windows.h
|
|
33
33
|
8cd6b66bea14890a665cc317f8572429b2c3e4463773f8b77c1e4dc30a4a8747 include/tirtc/video_processing.h
|
|
@@ -35,13 +35,13 @@ cae0bbeb884e5466a56da15182c78cc22baab6c743f349a58d3595f623333585 include/tirtc/
|
|
|
35
35
|
8db86d6714264047e8fd4086ddd7315722d675749719e6175f89eb5a636b48a1 lib/libTiRTC.a
|
|
36
36
|
b39daee6a3d39bf0ca20c45084601133c4198de8dca848dcff6dd9c70ae99016 lib/libcrypto.a
|
|
37
37
|
c052857ef315e3d61db9c862cad10709a3a6b2487dc41799cbe4d74a805de875 lib/libcrypto.dylib
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
e2cc6ebe4b3efd602dd454c32cf5a56f7cecddff52ba51a09307434a102a3134 lib/libmatrix_runtime_audio.a
|
|
39
|
+
86952647a2ee67457e5e0129270bbcc130bc1c3055674bd1256996e63d1d396d lib/libmatrix_runtime_facade.a
|
|
40
|
+
88c8067852e3a334f6d7b741d36ffe4d5dc5a639b50a5566178485f2e3a62d51 lib/libmatrix_runtime_foundation_http.a
|
|
41
|
+
5928ccfe2717594f66aba6b43d3b3d394634d2d742d5a79ccd86d17ab56adf6c lib/libmatrix_runtime_foundation_logging.a
|
|
42
|
+
a1a7c04dff1601fee215bf71b99a1b2725b74171b7182ab807b4f40ba96a5554 lib/libmatrix_runtime_media.a
|
|
43
|
+
8adcf9d35a21d86392336389e361d6c75554ba1cdd6afde74e9e748adff34b77 lib/libmatrix_runtime_transport.a
|
|
44
|
+
9e8db21a0c02d407799a9acc80042af2de38bc2b9509914df6d0bd63cae1a945 lib/libmatrix_runtime_video.a
|
|
45
45
|
c11c65d373a127028350c41fa58cd2d1223f2b5d70a84e13b115d90daaba25ca lib/libssl.a
|
|
46
46
|
ef1c1104bbdd2528ed7b958fb7252bd6249875f92300b0c9577d6c4bd6c0d88a lib/libssl.dylib
|
|
47
47
|
e14e846e43d64e240fa0e5745bf4e702b79d0f2442e7f768beb990610735c71b lib/libtgrtc.dylib
|