tirtc-devtools-cli 0.0.9 → 0.0.11
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 +17 -11
- package/USAGE.md +72 -33
- package/bin/tirtc-devtools-cli.js +1 -1
- package/dist/cli/src/bootstrap_flows.d.ts +46 -0
- package/dist/cli/src/bootstrap_flows.js +249 -0
- package/dist/{devtools/cli → cli}/src/config.d.ts +4 -15
- package/dist/{devtools/cli → cli}/src/config.js +7 -31
- package/dist/cli/src/default_paths.d.ts +3 -0
- package/dist/cli/src/default_paths.js +23 -0
- package/dist/{devtools/cli → cli}/src/embedded_paths.d.ts +1 -0
- package/dist/{devtools/cli → cli}/src/embedded_paths.js +18 -1
- package/dist/{devtools/cli → cli}/src/facade.d.ts +41 -235
- package/dist/{devtools/cli → cli}/src/facade.js +8 -27
- package/dist/cli/src/guide.js +47 -0
- package/dist/{devtools/cli → cli}/src/index.js +55 -141
- package/dist/{devtools/cli → cli}/src/session_manager.js +9 -11
- package/dist/{devtools/cli → cli}/src/token_command.js +69 -0
- package/dist/{devtools/cli → cli}/src/token_tool.d.ts +26 -0
- package/dist/{devtools/cli → cli}/src/token_tool.js +123 -22
- package/dist/{devtools/cli → cli}/src/transport.d.ts +1 -1
- package/package.json +6 -2
- package/script/ensure_ffmpeg.sh +1 -1
- package/vendor/app-server/bin/native/linux-x64/credential_napi.node +0 -0
- package/vendor/app-server/bin/native/macos-arm64/credential_napi.node +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/credential.h +34 -0
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/error.h +13 -0
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/foundation/build_info.h +27 -0
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/http.h +57 -0
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/logging.h +3 -1
- package/vendor/app-server/bin/runtime/linux-x64/lib/libcrypto.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_credential.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_foundation_http.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_foundation_logging.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libssl.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/manifest.txt +2 -32
- package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio.h +176 -133
- package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/av.h +223 -182
- package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/error.h +2 -0
- package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/media_downlink.h +6 -0
- package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/transport.h +58 -133
- package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/trp.h +47 -224
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libTGTRP.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libTiRTC.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_audio.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_credential.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_facade.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_foundation_http.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_foundation_logging.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_media.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_transport.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_video.a +0 -0
- package/vendor/app-server/bin/runtime/macos-arm64/manifest.txt +19 -15
- package/vendor/app-server/dist/host/HostCommandCoordinator.d.ts +19 -0
- package/vendor/app-server/dist/host/HostCommandCoordinator.js +196 -0
- package/vendor/app-server/dist/host/HostProtocol.d.ts +1 -11
- package/vendor/app-server/dist/host/HostProtocol.js +3 -37
- package/vendor/app-server/dist/host/HostServer.d.ts +1 -4
- package/vendor/app-server/dist/host/HostServer.js +16 -152
- package/vendor/app-server/dist/host/RuntimeAdapter.js +2 -2
- package/vendor/app-server/dist/host/native/RuntimeCredentialTokenIssuer.js +3 -3
- package/vendor/app-server/dist/host/native/RuntimeHostBridge.js +4 -4
- package/vendor/app-server/dist/host/runtime_backed_preflight.js +2 -2
- package/vendor/app-server/dist/host/tests/helpers/runtime_e2e_local_config.js +1 -1
- package/vendor/app-server/dist/protocol/contract.d.ts +5 -64
- package/vendor/app-server/dist/protocol/contract.js +3 -12
- package/dist/devtools/cli/src/guide.js +0 -50
- package/dist/dummy.d.ts +0 -0
- package/dist/dummy.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -48
- package/vendor/app-server/bin/native/macos-arm64/libcrypto.dylib +0 -0
- package/vendor/app-server/bin/native/macos-arm64/libssl.dylib +0 -0
- package/vendor/app-server/bin/native/macos-arm64/runtime_host_napi.node +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_codec.h +0 -23
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_frame.h +0 -36
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io.h +0 -56
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_android.h +0 -19
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_apple.h +0 -19
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_harmony.h +0 -19
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_windows.h +0 -19
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_processing.h +0 -56
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_sample_rate.h +0 -18
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/media_codec.h +0 -21
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/media_downlink.h +0 -89
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/media_uplink.h +0 -115
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/runtime.h +0 -236
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_codec.h +0 -57
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_frame.h +0 -55
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io.h +0 -46
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_android.h +0 -32
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_apple.h +0 -34
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_harmony.h +0 -32
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_windows.h +0 -26
- package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_processing.h +0 -34
- package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_audio.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_facade.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_media.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_video.a +0 -0
- package/vendor/app-server/bin/runtime/linux-x64/lib/libwebrtc_apm.a +0 -0
- package/vendor/app-server/dist/host/RuntimeCredentialTokenIssuer.d.ts +0 -30
- package/vendor/app-server/dist/host/RuntimeCredentialTokenIssuer.js +0 -224
- /package/dist/{devtools/cli → cli}/src/dummy.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/dummy.js +0 -0
- /package/dist/{devtools/cli → cli}/src/ffmpeg_tool.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/ffmpeg_tool.js +0 -0
- /package/dist/{devtools/cli → cli}/src/guide.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/index.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/media_assets.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/media_assets.js +0 -0
- /package/dist/{devtools/cli → cli}/src/progress.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/progress.js +0 -0
- /package/dist/{devtools/cli → cli}/src/session_manager.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/token_command.d.ts +0 -0
- /package/dist/{devtools/cli → cli}/src/transport.js +0 -0
- /package/vendor/app-server/bin/{native/macos-arm64 → runtime/macos-arm64/lib}/libtgrtc.dylib +0 -0
|
@@ -977,87 +977,28 @@ export declare const ServiceStartRequestSchema: z.ZodObject<{
|
|
|
977
977
|
export declare const ConnectionConnectRequestSchema: z.ZodEffects<z.ZodObject<{
|
|
978
978
|
serviceEntry: z.ZodOptional<z.ZodString>;
|
|
979
979
|
peerId: z.ZodString;
|
|
980
|
-
token: z.
|
|
981
|
-
tokenMode: z.ZodOptional<z.ZodEnum<["manual", "auto"]>>;
|
|
982
|
-
autoToken: z.ZodOptional<z.ZodObject<{
|
|
983
|
-
openapiEntry: z.ZodOptional<z.ZodString>;
|
|
984
|
-
accessId: z.ZodString;
|
|
985
|
-
secretKey: z.ZodString;
|
|
986
|
-
localId: z.ZodOptional<z.ZodString>;
|
|
987
|
-
userTtlSeconds: z.ZodOptional<z.ZodNumber>;
|
|
988
|
-
channelTtlSeconds: z.ZodOptional<z.ZodNumber>;
|
|
989
|
-
}, "strip", z.ZodTypeAny, {
|
|
990
|
-
accessId: string;
|
|
991
|
-
secretKey: string;
|
|
992
|
-
openapiEntry?: string | undefined;
|
|
993
|
-
localId?: string | undefined;
|
|
994
|
-
userTtlSeconds?: number | undefined;
|
|
995
|
-
channelTtlSeconds?: number | undefined;
|
|
996
|
-
}, {
|
|
997
|
-
accessId: string;
|
|
998
|
-
secretKey: string;
|
|
999
|
-
openapiEntry?: string | undefined;
|
|
1000
|
-
localId?: string | undefined;
|
|
1001
|
-
userTtlSeconds?: number | undefined;
|
|
1002
|
-
channelTtlSeconds?: number | undefined;
|
|
1003
|
-
}>>;
|
|
980
|
+
token: z.ZodString;
|
|
1004
981
|
timeoutMs: z.ZodNumber;
|
|
1005
982
|
}, "strip", z.ZodTypeAny, {
|
|
1006
983
|
peerId: string;
|
|
984
|
+
token: string;
|
|
1007
985
|
timeoutMs: number;
|
|
1008
986
|
serviceEntry?: string | undefined;
|
|
1009
|
-
token?: string | undefined;
|
|
1010
|
-
tokenMode?: "manual" | "auto" | undefined;
|
|
1011
|
-
autoToken?: {
|
|
1012
|
-
accessId: string;
|
|
1013
|
-
secretKey: string;
|
|
1014
|
-
openapiEntry?: string | undefined;
|
|
1015
|
-
localId?: string | undefined;
|
|
1016
|
-
userTtlSeconds?: number | undefined;
|
|
1017
|
-
channelTtlSeconds?: number | undefined;
|
|
1018
|
-
} | undefined;
|
|
1019
987
|
}, {
|
|
1020
988
|
peerId: string;
|
|
989
|
+
token: string;
|
|
1021
990
|
timeoutMs: number;
|
|
1022
991
|
serviceEntry?: string | undefined;
|
|
1023
|
-
token?: string | undefined;
|
|
1024
|
-
tokenMode?: "manual" | "auto" | undefined;
|
|
1025
|
-
autoToken?: {
|
|
1026
|
-
accessId: string;
|
|
1027
|
-
secretKey: string;
|
|
1028
|
-
openapiEntry?: string | undefined;
|
|
1029
|
-
localId?: string | undefined;
|
|
1030
|
-
userTtlSeconds?: number | undefined;
|
|
1031
|
-
channelTtlSeconds?: number | undefined;
|
|
1032
|
-
} | undefined;
|
|
1033
992
|
}>, {
|
|
1034
993
|
peerId: string;
|
|
994
|
+
token: string;
|
|
1035
995
|
timeoutMs: number;
|
|
1036
996
|
serviceEntry?: string | undefined;
|
|
1037
|
-
token?: string | undefined;
|
|
1038
|
-
tokenMode?: "manual" | "auto" | undefined;
|
|
1039
|
-
autoToken?: {
|
|
1040
|
-
accessId: string;
|
|
1041
|
-
secretKey: string;
|
|
1042
|
-
openapiEntry?: string | undefined;
|
|
1043
|
-
localId?: string | undefined;
|
|
1044
|
-
userTtlSeconds?: number | undefined;
|
|
1045
|
-
channelTtlSeconds?: number | undefined;
|
|
1046
|
-
} | undefined;
|
|
1047
997
|
}, {
|
|
1048
998
|
peerId: string;
|
|
999
|
+
token: string;
|
|
1049
1000
|
timeoutMs: number;
|
|
1050
1001
|
serviceEntry?: string | undefined;
|
|
1051
|
-
token?: string | undefined;
|
|
1052
|
-
tokenMode?: "manual" | "auto" | undefined;
|
|
1053
|
-
autoToken?: {
|
|
1054
|
-
accessId: string;
|
|
1055
|
-
secretKey: string;
|
|
1056
|
-
openapiEntry?: string | undefined;
|
|
1057
|
-
localId?: string | undefined;
|
|
1058
|
-
userTtlSeconds?: number | undefined;
|
|
1059
|
-
channelTtlSeconds?: number | undefined;
|
|
1060
|
-
} | undefined;
|
|
1061
1002
|
}>;
|
|
1062
1003
|
export declare const StreamSendStartRequestSchema: z.ZodObject<{
|
|
1063
1004
|
streamId: z.ZodNumber;
|
|
@@ -173,19 +173,10 @@ exports.ServiceStartRequestSchema = zod_1.z.object({
|
|
|
173
173
|
exports.ConnectionConnectRequestSchema = zod_1.z.object({
|
|
174
174
|
serviceEntry: zod_1.z.string().optional(),
|
|
175
175
|
peerId: zod_1.z.string(),
|
|
176
|
-
token: zod_1.z.string().
|
|
177
|
-
tokenMode: zod_1.z.enum(["manual", "auto"]).optional(),
|
|
178
|
-
autoToken: zod_1.z.object({
|
|
179
|
-
openapiEntry: zod_1.z.string().optional(),
|
|
180
|
-
accessId: zod_1.z.string(),
|
|
181
|
-
secretKey: zod_1.z.string(),
|
|
182
|
-
localId: zod_1.z.string().optional(),
|
|
183
|
-
userTtlSeconds: zod_1.z.number().int().optional(),
|
|
184
|
-
channelTtlSeconds: zod_1.z.number().int().optional(),
|
|
185
|
-
}).optional(),
|
|
176
|
+
token: zod_1.z.string().min(1),
|
|
186
177
|
timeoutMs: zod_1.z.number().int()
|
|
187
|
-
}).refine((value) =>
|
|
188
|
-
message: "token
|
|
178
|
+
}).refine((value) => value.token.trim().length > 0, {
|
|
179
|
+
message: "token is required",
|
|
189
180
|
});
|
|
190
181
|
exports.StreamSendStartRequestSchema = zod_1.z.object({
|
|
191
182
|
streamId: zod_1.z.number().int(),
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.printQuickstartGuide = printQuickstartGuide;
|
|
4
|
-
function printQuickstartGuide() {
|
|
5
|
-
const lines = [
|
|
6
|
-
'TiRTC CLI 新手快速入口(服务端 -> 安卓扫码)',
|
|
7
|
-
'',
|
|
8
|
-
'前置条件:',
|
|
9
|
-
'1) 已构建最新 CLI:',
|
|
10
|
-
' npm --prefix app-server run build',
|
|
11
|
-
' npm --prefix devtools/cli run build',
|
|
12
|
-
'2) 准备一份 server-only TOML 配置,并把 mp4_path 指向可发送媒体(示例:.refers/simple.mp4)',
|
|
13
|
-
'',
|
|
14
|
-
'步骤 1:启动服务(自动创建 session)',
|
|
15
|
-
' node devtools/cli/bin/tirtc-devtools-cli.js --config ./server.toml service start',
|
|
16
|
-
' # 记下输出里的 sessionId,后续命令都显式带 --session',
|
|
17
|
-
'',
|
|
18
|
-
'步骤 2:CLI 会自动 prepare MP4 并绑定音视频 stream,不再需要手工 prepare assets_dir',
|
|
19
|
-
' [server] service_entry = "" license = "<LICENSE>" mp4_path = "./.refers/simple.mp4" video_stream_id = 11 audio_stream_id = 10',
|
|
20
|
-
' # service start 成功后会自动 prepare 并按 AUTO_ON_CONNECTED 进入待发流语义',
|
|
21
|
-
'',
|
|
22
|
-
'步骤 3:生成连接 bootstrap 二维码(给安卓扫码)',
|
|
23
|
-
' node devtools/cli/bin/tirtc-devtools-cli.js --session <SESSION_ID> debug bootstrap qrcode \\',
|
|
24
|
-
' "<ACCESS_ID>" "<SECRET_KEY>" "<PEER_ID>" "<SERVICE_ENTRY>"',
|
|
25
|
-
'',
|
|
26
|
-
'步骤 4:安卓扫码后流程(客户端侧)',
|
|
27
|
-
' - 解析二维码 JSON(type=tirtc-connect-bootstrap)',
|
|
28
|
-
' - 用 access_id + secret_key 在客户端/外部系统签发 token',
|
|
29
|
-
' - 持 token + peer_id 连接服务端;连接成功后请求 audio_stream_id/video_stream_id',
|
|
30
|
-
'',
|
|
31
|
-
'额外:如果你只想本地直接签发并拿到可扫码 payload,可执行:',
|
|
32
|
-
' export TIRTC_CONN_ACCESS_ID="<ACCESS_ID>"',
|
|
33
|
-
' export TIRTC_CONN_SECRET_KEY="<SECRET_KEY>"',
|
|
34
|
-
' node devtools/cli/bin/tirtc-devtools-cli.js token issue "<PEER_ID>" \\',
|
|
35
|
-
' --local-id "<LOCAL_ID>" --service-entry "<SERVICE_ENTRY>"',
|
|
36
|
-
' # CLI 会直接打印摘要、payload JSON、token,并生成本地二维码 PNG 路径',
|
|
37
|
-
' # 如需临时覆盖,也可显式传 --access-id / --secret-key',
|
|
38
|
-
'',
|
|
39
|
-
'步骤 5:服务端观测',
|
|
40
|
-
' node devtools/cli/bin/tirtc-devtools-cli.js --session <SESSION_ID> events tail',
|
|
41
|
-
' node devtools/cli/bin/tirtc-devtools-cli.js --session <SESSION_ID> report show',
|
|
42
|
-
'',
|
|
43
|
-
'补充:',
|
|
44
|
-
'- debug bootstrap qrcode 仅生成连接信息二维码,不签发 token',
|
|
45
|
-
'- 机器可读输出:在命令后追加 --json',
|
|
46
|
-
'- 查看全部命令:node devtools/cli/bin/tirtc-devtools-cli.js --help',
|
|
47
|
-
'- 查看单命令说明:node devtools/cli/bin/tirtc-devtools-cli.js <command> --help',
|
|
48
|
-
];
|
|
49
|
-
console.log(lines.join('\n'));
|
|
50
|
-
}
|
package/dist/dummy.d.ts
DELETED
|
File without changes
|
package/dist/dummy.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
package/dist/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/index.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const commander_1 = require("commander");
|
|
7
|
-
const child_process_1 = require("child_process");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const program = new commander_1.Command();
|
|
11
|
-
const CLI_VERSION = '1.0.0';
|
|
12
|
-
function getHostBinaryPath() {
|
|
13
|
-
// Local development path relative to dist/index.js
|
|
14
|
-
const localDevPath = path_1.default.resolve(__dirname, '../../../app-server/bin/tirtc-devtool-host.js');
|
|
15
|
-
if (fs_1.default.existsSync(localDevPath)) {
|
|
16
|
-
return localDevPath;
|
|
17
|
-
}
|
|
18
|
-
// Fallback to globally installed or in PATH
|
|
19
|
-
return 'tirtc-devtool-host';
|
|
20
|
-
}
|
|
21
|
-
program
|
|
22
|
-
.name('tirtc-devtool')
|
|
23
|
-
.description('TiRTC Developer Tool CLI')
|
|
24
|
-
.option('-v, --version', 'output the version number')
|
|
25
|
-
.action((options) => {
|
|
26
|
-
if (options.version) {
|
|
27
|
-
console.log(`CLI Version: ${CLI_VERSION}`);
|
|
28
|
-
const hostPath = getHostBinaryPath();
|
|
29
|
-
let hostCmdPath = hostPath;
|
|
30
|
-
let hostArgs = ['--version'];
|
|
31
|
-
if (hostPath.endsWith('.js')) {
|
|
32
|
-
hostArgs = [hostPath, '--version'];
|
|
33
|
-
hostCmdPath = process.execPath;
|
|
34
|
-
}
|
|
35
|
-
try {
|
|
36
|
-
const result = (0, child_process_1.spawnSync)(hostCmdPath, hostArgs, { encoding: 'utf-8' });
|
|
37
|
-
if (result.stdout) {
|
|
38
|
-
process.stdout.write(result.stdout);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
console.log('Host Version: unknown');
|
|
43
|
-
console.log('Protocol Version: unknown');
|
|
44
|
-
}
|
|
45
|
-
process.exit(0);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
program.parse(process.argv);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_CODEC_H_
|
|
2
|
-
#define TIRTC_AUDIO_CODEC_H_
|
|
3
|
-
|
|
4
|
-
#include <stddef.h>
|
|
5
|
-
|
|
6
|
-
#include "tirtc/audio_frame.h"
|
|
7
|
-
#include "tirtc/error.h"
|
|
8
|
-
|
|
9
|
-
#ifdef __cplusplus
|
|
10
|
-
extern "C" {
|
|
11
|
-
#endif
|
|
12
|
-
|
|
13
|
-
TirtcError tirtc_audio_g711a_encode(const TirtcAudioPcmFrame* pcm_frame, void* out_buffer,
|
|
14
|
-
size_t out_buffer_capacity, TirtcAudioEncodedFrame* out_frame);
|
|
15
|
-
|
|
16
|
-
TirtcError tirtc_audio_g711a_decode(const TirtcAudioEncodedFrame* in_frame, void* out_buffer,
|
|
17
|
-
size_t out_buffer_capacity, TirtcAudioPcmFrame* out_frame);
|
|
18
|
-
|
|
19
|
-
#ifdef __cplusplus
|
|
20
|
-
}
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
|
-
#endif // TIRTC_AUDIO_CODEC_H_
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_FRAME_H_
|
|
2
|
-
#define TIRTC_AUDIO_FRAME_H_
|
|
3
|
-
|
|
4
|
-
#include <stddef.h>
|
|
5
|
-
#include <stdint.h>
|
|
6
|
-
|
|
7
|
-
#include "tirtc/audio_sample_rate.h"
|
|
8
|
-
#include "tirtc/media_codec.h"
|
|
9
|
-
|
|
10
|
-
#ifdef __cplusplus
|
|
11
|
-
extern "C" {
|
|
12
|
-
#endif
|
|
13
|
-
|
|
14
|
-
typedef struct TirtcAudioPcmFrame {
|
|
15
|
-
TirtcAudioSampleRate sample_rate;
|
|
16
|
-
uint32_t samples_per_channel;
|
|
17
|
-
int64_t pts_us;
|
|
18
|
-
/* Mutable PCM payload for capture, processing, and render-fill paths. */
|
|
19
|
-
void* data;
|
|
20
|
-
size_t data_bytes;
|
|
21
|
-
} TirtcAudioPcmFrame;
|
|
22
|
-
|
|
23
|
-
typedef struct TirtcAudioEncodedFrame {
|
|
24
|
-
TirtcMediaCodec codec;
|
|
25
|
-
TirtcAudioSampleRate sample_rate;
|
|
26
|
-
uint32_t samples_per_channel;
|
|
27
|
-
int64_t pts_us;
|
|
28
|
-
const void* data;
|
|
29
|
-
size_t data_bytes;
|
|
30
|
-
} TirtcAudioEncodedFrame;
|
|
31
|
-
|
|
32
|
-
#ifdef __cplusplus
|
|
33
|
-
}
|
|
34
|
-
#endif
|
|
35
|
-
|
|
36
|
-
#endif // TIRTC_AUDIO_FRAME_H_
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_IO_H_
|
|
2
|
-
#define TIRTC_AUDIO_IO_H_
|
|
3
|
-
|
|
4
|
-
#include <stdint.h>
|
|
5
|
-
|
|
6
|
-
#include "tirtc/audio_frame.h"
|
|
7
|
-
#include "tirtc/error.h"
|
|
8
|
-
|
|
9
|
-
#ifdef __cplusplus
|
|
10
|
-
extern "C" {
|
|
11
|
-
#endif
|
|
12
|
-
|
|
13
|
-
typedef struct TirtcAudioAin TirtcAudioAin;
|
|
14
|
-
typedef struct TirtcAudioAout TirtcAudioAout;
|
|
15
|
-
|
|
16
|
-
typedef struct TirtcAudioIoConfig {
|
|
17
|
-
TirtcAudioSampleRate sample_rate;
|
|
18
|
-
/* v1 uses fixed 10 ms mono blocks: 8K -> 80 samples, 16K -> 160 samples. */
|
|
19
|
-
uint32_t samples_per_buffer;
|
|
20
|
-
} TirtcAudioIoConfig;
|
|
21
|
-
|
|
22
|
-
typedef void (*TirtcAudioAinOnFrameFn)(TirtcAudioAin* ain, const TirtcAudioPcmFrame* frame,
|
|
23
|
-
void* user_data);
|
|
24
|
-
|
|
25
|
-
/*
|
|
26
|
-
* AOUT pre-fills sample_rate, samples_per_channel, data, and data_bytes before
|
|
27
|
-
* calling render. The callback contract expects a non-negative rendered PCM
|
|
28
|
-
* byte count. Backends defensively clamp negative returns to zero and zero-fill
|
|
29
|
-
* any remaining buffer space.
|
|
30
|
-
*
|
|
31
|
-
* The render callback and user_data supplied at open-time must stay valid until
|
|
32
|
-
* close completes. Backends may invoke render without holding backend locks.
|
|
33
|
-
*/
|
|
34
|
-
typedef int (*TirtcAudioAoutRenderFn)(TirtcAudioAout* aout, TirtcAudioPcmFrame* frame,
|
|
35
|
-
void* user_data);
|
|
36
|
-
|
|
37
|
-
TirtcError tirtc_audio_ain_open(TirtcAudioAin* ain, const TirtcAudioIoConfig* config,
|
|
38
|
-
TirtcAudioAinOnFrameFn on_frame, void* user_data);
|
|
39
|
-
|
|
40
|
-
TirtcError tirtc_audio_ain_close(TirtcAudioAin* ain);
|
|
41
|
-
void tirtc_audio_ain_destroy(TirtcAudioAin* ain);
|
|
42
|
-
|
|
43
|
-
TirtcError tirtc_audio_aout_open(TirtcAudioAout* aout, const TirtcAudioIoConfig* config,
|
|
44
|
-
TirtcAudioAoutRenderFn render, void* user_data);
|
|
45
|
-
|
|
46
|
-
TirtcError tirtc_audio_aout_set_volume(TirtcAudioAout* aout, uint32_t volume_percent);
|
|
47
|
-
TirtcError tirtc_audio_aout_pause(TirtcAudioAout* aout, int pause_on);
|
|
48
|
-
TirtcError tirtc_audio_aout_flush(TirtcAudioAout* aout);
|
|
49
|
-
TirtcError tirtc_audio_aout_close(TirtcAudioAout* aout);
|
|
50
|
-
void tirtc_audio_aout_destroy(TirtcAudioAout* aout);
|
|
51
|
-
|
|
52
|
-
#ifdef __cplusplus
|
|
53
|
-
}
|
|
54
|
-
#endif
|
|
55
|
-
|
|
56
|
-
#endif // TIRTC_AUDIO_IO_H_
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_IO_ANDROID_H_
|
|
2
|
-
#define TIRTC_AUDIO_IO_ANDROID_H_
|
|
3
|
-
|
|
4
|
-
#include "tirtc/audio_io.h"
|
|
5
|
-
|
|
6
|
-
#ifdef __cplusplus
|
|
7
|
-
extern "C" {
|
|
8
|
-
#endif
|
|
9
|
-
|
|
10
|
-
#if defined(__ANDROID__)
|
|
11
|
-
TirtcError tirtc_audio_android_create_open_sl_ain(TirtcAudioAin** out_ain);
|
|
12
|
-
TirtcError tirtc_audio_android_create_open_sl_aout(TirtcAudioAout** out_aout);
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
|
-
#ifdef __cplusplus
|
|
16
|
-
}
|
|
17
|
-
#endif
|
|
18
|
-
|
|
19
|
-
#endif // TIRTC_AUDIO_IO_ANDROID_H_
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_IO_APPLE_H_
|
|
2
|
-
#define TIRTC_AUDIO_IO_APPLE_H_
|
|
3
|
-
|
|
4
|
-
#include "tirtc/audio_io.h"
|
|
5
|
-
|
|
6
|
-
#ifdef __cplusplus
|
|
7
|
-
extern "C" {
|
|
8
|
-
#endif
|
|
9
|
-
|
|
10
|
-
#if defined(__APPLE__)
|
|
11
|
-
TirtcError tirtc_audio_apple_create_audio_toolbox_ain(TirtcAudioAin** out_ain);
|
|
12
|
-
TirtcError tirtc_audio_apple_create_audio_queue_aout(TirtcAudioAout** out_aout);
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
|
-
#ifdef __cplusplus
|
|
16
|
-
}
|
|
17
|
-
#endif
|
|
18
|
-
|
|
19
|
-
#endif // TIRTC_AUDIO_IO_APPLE_H_
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_IO_HARMONY_H_
|
|
2
|
-
#define TIRTC_AUDIO_IO_HARMONY_H_
|
|
3
|
-
|
|
4
|
-
#include "tirtc/audio_io.h"
|
|
5
|
-
|
|
6
|
-
#ifdef __cplusplus
|
|
7
|
-
extern "C" {
|
|
8
|
-
#endif
|
|
9
|
-
|
|
10
|
-
#if defined(__OHOS__)
|
|
11
|
-
TirtcError tirtc_audio_harmony_create_open_sl_ain(TirtcAudioAin** out_ain);
|
|
12
|
-
TirtcError tirtc_audio_harmony_create_audio_render_aout(TirtcAudioAout** out_aout);
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
|
-
#ifdef __cplusplus
|
|
16
|
-
}
|
|
17
|
-
#endif
|
|
18
|
-
|
|
19
|
-
#endif // TIRTC_AUDIO_IO_HARMONY_H_
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_IO_WINDOWS_H_
|
|
2
|
-
#define TIRTC_AUDIO_IO_WINDOWS_H_
|
|
3
|
-
|
|
4
|
-
#include "tirtc/audio_io.h"
|
|
5
|
-
|
|
6
|
-
#ifdef __cplusplus
|
|
7
|
-
extern "C" {
|
|
8
|
-
#endif
|
|
9
|
-
|
|
10
|
-
#if defined(_WIN32)
|
|
11
|
-
TirtcError tirtc_audio_windows_create_wasapi_ain(TirtcAudioAin** out_ain);
|
|
12
|
-
TirtcError tirtc_audio_windows_create_wave_out_aout(TirtcAudioAout** out_aout);
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
|
-
#ifdef __cplusplus
|
|
16
|
-
}
|
|
17
|
-
#endif
|
|
18
|
-
|
|
19
|
-
#endif // TIRTC_AUDIO_IO_WINDOWS_H_
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_AUDIO_PROCESSING_H_
|
|
2
|
-
#define TIRTC_AUDIO_PROCESSING_H_
|
|
3
|
-
|
|
4
|
-
#include "tirtc/audio_frame.h"
|
|
5
|
-
#include "tirtc/error.h"
|
|
6
|
-
|
|
7
|
-
#ifdef __cplusplus
|
|
8
|
-
extern "C" {
|
|
9
|
-
#endif
|
|
10
|
-
|
|
11
|
-
typedef struct TirtcAudioProcessor TirtcAudioProcessor;
|
|
12
|
-
|
|
13
|
-
typedef enum TirtcAudioAecMode {
|
|
14
|
-
TIRTC_AUDIO_AEC_MODE_DISABLED = 0,
|
|
15
|
-
TIRTC_AUDIO_AEC_MODE_ENABLED = 1,
|
|
16
|
-
} TirtcAudioAecMode;
|
|
17
|
-
|
|
18
|
-
typedef enum TirtcAudioAnsLevel {
|
|
19
|
-
TIRTC_AUDIO_ANS_LEVEL_DISABLED = 0,
|
|
20
|
-
TIRTC_AUDIO_ANS_LEVEL_LOW = 1,
|
|
21
|
-
TIRTC_AUDIO_ANS_LEVEL_MEDIUM = 2,
|
|
22
|
-
TIRTC_AUDIO_ANS_LEVEL_HIGH = 3,
|
|
23
|
-
} TirtcAudioAnsLevel;
|
|
24
|
-
|
|
25
|
-
typedef enum TirtcAudioAgcLevel {
|
|
26
|
-
TIRTC_AUDIO_AGC_LEVEL_DISABLED = 0,
|
|
27
|
-
TIRTC_AUDIO_AGC_LEVEL_LOW = 1,
|
|
28
|
-
TIRTC_AUDIO_AGC_LEVEL_MEDIUM = 2,
|
|
29
|
-
TIRTC_AUDIO_AGC_LEVEL_HIGH = 3,
|
|
30
|
-
} TirtcAudioAgcLevel;
|
|
31
|
-
|
|
32
|
-
typedef struct TirtcAudioProcessorConfig {
|
|
33
|
-
TirtcAudioSampleRate sample_rate;
|
|
34
|
-
TirtcAudioAecMode aec_mode;
|
|
35
|
-
TirtcAudioAnsLevel ans_level;
|
|
36
|
-
TirtcAudioAgcLevel agc_level;
|
|
37
|
-
} TirtcAudioProcessorConfig;
|
|
38
|
-
|
|
39
|
-
TirtcError tirtc_audio_processor_create(const TirtcAudioProcessorConfig* config,
|
|
40
|
-
TirtcAudioProcessor** out_processor);
|
|
41
|
-
void tirtc_audio_processor_destroy(TirtcAudioProcessor* processor);
|
|
42
|
-
|
|
43
|
-
TirtcError tirtc_audio_processor_set_config(TirtcAudioProcessor* processor,
|
|
44
|
-
const TirtcAudioProcessorConfig* config);
|
|
45
|
-
|
|
46
|
-
TirtcError tirtc_audio_processor_process(TirtcAudioProcessor* processor,
|
|
47
|
-
const TirtcAudioPcmFrame* in_frame,
|
|
48
|
-
TirtcAudioPcmFrame* out_frame);
|
|
49
|
-
|
|
50
|
-
TirtcError tirtc_audio_processor_reset(TirtcAudioProcessor* processor);
|
|
51
|
-
|
|
52
|
-
#ifdef __cplusplus
|
|
53
|
-
}
|
|
54
|
-
#endif
|
|
55
|
-
|
|
56
|
-
#endif // TIRTC_AUDIO_PROCESSING_H_
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_MEDIA_CONTRACT_AUDIO_SAMPLE_RATE_H_
|
|
2
|
-
#define TIRTC_MEDIA_CONTRACT_AUDIO_SAMPLE_RATE_H_
|
|
3
|
-
|
|
4
|
-
#ifdef __cplusplus
|
|
5
|
-
extern "C" {
|
|
6
|
-
#endif
|
|
7
|
-
|
|
8
|
-
typedef enum TirtcAudioSampleRate {
|
|
9
|
-
TIRTC_AUDIO_SAMPLE_RATE_NONE = 0,
|
|
10
|
-
TIRTC_AUDIO_SAMPLE_RATE_8K = 8000,
|
|
11
|
-
TIRTC_AUDIO_SAMPLE_RATE_16K = 16000,
|
|
12
|
-
} TirtcAudioSampleRate;
|
|
13
|
-
|
|
14
|
-
#ifdef __cplusplus
|
|
15
|
-
}
|
|
16
|
-
#endif
|
|
17
|
-
|
|
18
|
-
#endif // TIRTC_MEDIA_CONTRACT_AUDIO_SAMPLE_RATE_H_
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_MEDIA_CONTRACT_MEDIA_CODEC_H_
|
|
2
|
-
#define TIRTC_MEDIA_CONTRACT_MEDIA_CODEC_H_
|
|
3
|
-
|
|
4
|
-
#ifdef __cplusplus
|
|
5
|
-
extern "C" {
|
|
6
|
-
#endif
|
|
7
|
-
|
|
8
|
-
typedef enum TirtcMediaCodec {
|
|
9
|
-
TIRTC_MEDIA_CODEC_NONE = 0,
|
|
10
|
-
TIRTC_MEDIA_CODEC_AUDIO_G711A = 1,
|
|
11
|
-
/* Reserved shared identifiers; concrete video implementations live outside media-contract. */
|
|
12
|
-
TIRTC_MEDIA_CODEC_VIDEO_H264 = 65,
|
|
13
|
-
TIRTC_MEDIA_CODEC_VIDEO_H265 = 66,
|
|
14
|
-
TIRTC_MEDIA_CODEC_VIDEO_MJPEG = 67,
|
|
15
|
-
} TirtcMediaCodec;
|
|
16
|
-
|
|
17
|
-
#ifdef __cplusplus
|
|
18
|
-
}
|
|
19
|
-
#endif
|
|
20
|
-
|
|
21
|
-
#endif // TIRTC_MEDIA_CONTRACT_MEDIA_CODEC_H_
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
#ifndef TIRTC_MEDIA_DOWNLINK_H_
|
|
2
|
-
#define TIRTC_MEDIA_DOWNLINK_H_
|
|
3
|
-
|
|
4
|
-
#include <stdint.h>
|
|
5
|
-
|
|
6
|
-
#include "tirtc/audio_frame.h"
|
|
7
|
-
#include "tirtc/audio_io.h"
|
|
8
|
-
#include "tirtc/error.h"
|
|
9
|
-
#include "tirtc/video_frame.h"
|
|
10
|
-
#include "tirtc/video_io.h"
|
|
11
|
-
|
|
12
|
-
#ifdef __cplusplus
|
|
13
|
-
extern "C" {
|
|
14
|
-
#endif
|
|
15
|
-
|
|
16
|
-
typedef struct TirtcMediaDownlinkAudio TirtcMediaDownlinkAudio;
|
|
17
|
-
typedef struct TirtcMediaDownlinkVideo TirtcMediaDownlinkVideo;
|
|
18
|
-
|
|
19
|
-
typedef enum TirtcMediaDownlinkState {
|
|
20
|
-
TIRTC_MEDIA_DOWNLINK_STATE_IDLE = 0,
|
|
21
|
-
TIRTC_MEDIA_DOWNLINK_STATE_RENDERING = 1,
|
|
22
|
-
TIRTC_MEDIA_DOWNLINK_STATE_BUFFERING = 2,
|
|
23
|
-
TIRTC_MEDIA_DOWNLINK_STATE_PAUSED = 3,
|
|
24
|
-
TIRTC_MEDIA_DOWNLINK_STATE_COMPLETED = 4,
|
|
25
|
-
TIRTC_MEDIA_DOWNLINK_STATE_FAILED = 5,
|
|
26
|
-
} TirtcMediaDownlinkState;
|
|
27
|
-
|
|
28
|
-
typedef struct TirtcMediaDownlinkAudioOptions {
|
|
29
|
-
uint32_t volume_percent;
|
|
30
|
-
int gain_level;
|
|
31
|
-
int noise_reduction_level;
|
|
32
|
-
} TirtcMediaDownlinkAudioOptions;
|
|
33
|
-
|
|
34
|
-
typedef struct TirtcMediaDownlinkAudioObserver {
|
|
35
|
-
void (*on_state_changed)(TirtcMediaDownlinkAudio* downlink, TirtcMediaDownlinkState state,
|
|
36
|
-
TirtcError error, void* user_data);
|
|
37
|
-
} TirtcMediaDownlinkAudioObserver;
|
|
38
|
-
|
|
39
|
-
typedef struct TirtcMediaDownlinkVideoObserver {
|
|
40
|
-
void (*on_state_changed)(TirtcMediaDownlinkVideo* downlink, TirtcMediaDownlinkState state,
|
|
41
|
-
TirtcError error, void* user_data);
|
|
42
|
-
void (*on_output_size_changed)(TirtcMediaDownlinkVideo* downlink, uint32_t width, uint32_t height,
|
|
43
|
-
void* user_data);
|
|
44
|
-
} TirtcMediaDownlinkVideoObserver;
|
|
45
|
-
|
|
46
|
-
TirtcError tirtc_media_downlink_audio_create(TirtcMediaDownlinkAudio** out_downlink);
|
|
47
|
-
void tirtc_media_downlink_audio_destroy(TirtcMediaDownlinkAudio* downlink);
|
|
48
|
-
TirtcError tirtc_media_downlink_audio_set_aout(TirtcMediaDownlinkAudio* downlink,
|
|
49
|
-
TirtcAudioAout* aout);
|
|
50
|
-
TirtcError tirtc_media_downlink_audio_set_options(TirtcMediaDownlinkAudio* downlink,
|
|
51
|
-
const TirtcMediaDownlinkAudioOptions* options);
|
|
52
|
-
TirtcError tirtc_media_downlink_audio_set_observer(TirtcMediaDownlinkAudio* downlink,
|
|
53
|
-
const TirtcMediaDownlinkAudioObserver* observer,
|
|
54
|
-
void* user_data);
|
|
55
|
-
TirtcError tirtc_media_downlink_audio_clear_observer(TirtcMediaDownlinkAudio* downlink);
|
|
56
|
-
TirtcError tirtc_media_downlink_audio_submit_frame(TirtcMediaDownlinkAudio* downlink,
|
|
57
|
-
const TirtcAudioEncodedFrame* frame);
|
|
58
|
-
TirtcError tirtc_media_downlink_audio_get_current_pts(TirtcMediaDownlinkAudio* downlink,
|
|
59
|
-
int64_t* out_pts_us);
|
|
60
|
-
TirtcError tirtc_media_downlink_audio_start(TirtcMediaDownlinkAudio* downlink);
|
|
61
|
-
TirtcError tirtc_media_downlink_audio_stop(TirtcMediaDownlinkAudio* downlink);
|
|
62
|
-
|
|
63
|
-
TirtcError tirtc_media_downlink_video_create(TirtcMediaDownlinkVideo** out_downlink);
|
|
64
|
-
void tirtc_media_downlink_video_destroy(TirtcMediaDownlinkVideo* downlink);
|
|
65
|
-
TirtcError tirtc_media_downlink_video_set_vout(TirtcMediaDownlinkVideo* downlink,
|
|
66
|
-
TirtcVideoVout* vout);
|
|
67
|
-
TirtcError tirtc_media_downlink_video_set_observer(TirtcMediaDownlinkVideo* downlink,
|
|
68
|
-
const TirtcMediaDownlinkVideoObserver* observer,
|
|
69
|
-
void* user_data);
|
|
70
|
-
TirtcError tirtc_media_downlink_video_clear_observer(TirtcMediaDownlinkVideo* downlink);
|
|
71
|
-
TirtcError tirtc_media_downlink_video_submit_frame(TirtcMediaDownlinkVideo* downlink,
|
|
72
|
-
const TirtcVideoEncodedFrame* frame);
|
|
73
|
-
TirtcError tirtc_media_downlink_video_get_current_pts(TirtcMediaDownlinkVideo* downlink,
|
|
74
|
-
int64_t* out_pts_us);
|
|
75
|
-
TirtcError tirtc_media_downlink_video_get_output_size(TirtcMediaDownlinkVideo* downlink,
|
|
76
|
-
uint32_t* out_width, uint32_t* out_height);
|
|
77
|
-
TirtcError tirtc_media_downlink_video_follow_audio(TirtcMediaDownlinkVideo* follower,
|
|
78
|
-
TirtcMediaDownlinkAudio* source);
|
|
79
|
-
TirtcError tirtc_media_downlink_video_follow_video(TirtcMediaDownlinkVideo* follower,
|
|
80
|
-
TirtcMediaDownlinkVideo* source);
|
|
81
|
-
TirtcError tirtc_media_downlink_video_use_self_timing(TirtcMediaDownlinkVideo* downlink);
|
|
82
|
-
TirtcError tirtc_media_downlink_video_start(TirtcMediaDownlinkVideo* downlink);
|
|
83
|
-
TirtcError tirtc_media_downlink_video_stop(TirtcMediaDownlinkVideo* downlink);
|
|
84
|
-
|
|
85
|
-
#ifdef __cplusplus
|
|
86
|
-
}
|
|
87
|
-
#endif
|
|
88
|
-
|
|
89
|
-
#endif // TIRTC_MEDIA_DOWNLINK_H_
|