跳到主要内容

会话 API

读会话元信息、关闭句柄。打开见 打开,推理见 推理

元信息

darra_session_meta_json()

int32_t darra_session_meta_json(darra_session* session, char** out_json);

读会话元信息。内容:task / labels / 输入宽高与通道 / Layout / Mean / Std / PayloadKind / 实际选中的 Provider / 是否加密 / 授权摘要(去敏,含试用剩余次数)。

全部来自容器头或明文探测,用户零配置。头里缺的字段派生 JSON 里为 null / 缺席,不编默认 640/80/17。调用代价:读会话缓存的头信息,微秒级。

参数:

  • session (darra_session*) — 已打开的会话
  • out_json (char**) — SDK 分配的 UTF-8 JSON,用完 darra_string_free

返回值:

  • int32_tDARRA_OK 成功;DARRA_INTERNAL(NULL 句柄等契约违反)

示例:

char* meta = NULL;
if (darra_session_meta_json(session, &meta) == DARRA_OK) {
puts(meta);
darra_string_free(meta);
}

相关结构:

{
"schema": 1,
"task": "detect",
"labels": ["scratch", "dent"],
"input": { "width": 640, "height": 640, "channels": 3 },
"payloadKind": "onnx",
"provider": "onnx-cuda",
"encrypted": true,
"containerFormat": "DARM1",
"license": { "mode": "trial", "trialRemaining": 12, "machineBound": true }
}
  • task 派生短名随容器头;推理结果 results 元素结构以此为准。缺席不编 detect。头文件对结果形态的承诺:detect→box,classify→top-k,segment→掩码。
  • payloadKindonnx / trt-engine / openvino / rknn / paddle。Windows 上 rknn 打不开。
  • input.width / height / channels 来自容器头。缺则 null,不编 640/80/17。
  • provider 是实际选中的 Provider(不是 prefer 入参)。
  • encrypted=false 时无 containerFormat / license(明文会话)。
  • 标准字段表见 元数据

关闭

darra_session_close()

void darra_session_close(darra_session* session);

关闭会话并释放全部资源(含解密明文窗口清零)。NULL 安全。close 后句柄失效,再用 = 未定义行为;禁止与任何在飞调用并发。

参数:

  • session (darra_session*) — 要关闭的会话;NULL 安全

示例:

darra_session_close(s);