Skip to content

Language Bindings — Tổng quan

Ngoài C++, SDK hỗ trợ C, Java, C# qua lớp C API ổn định.

┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  Java (JNA) │  │ C# P/Invoke │  │      C      │
└──────┬──────┘  └──────┬──────┘  └──────┬──────┘
       └────────────────┼────────────────┘
                ┌───────▼────────┐
                │ libcvedix_capi │   C ABI — không đổi khi core refactor
                └───────┬────────┘
                ┌───────▼────────┐
                │ libcvedix_core │   C++ runtime (80+ nodes)
                └────────────────┘
BindingThư mục trong SDKCông nghệYêu cầu
Cbindings/c/Header C99 thuầnGCC/Clang
Javabindings/java/JNA 5.xJDK 11+, Maven
C#bindings/csharp/P/Invoke.NET 8

Phạm vi C API v1

Node hỗ trợ qua C API:

NhómNode
Sourcefile_src, rtsp_src
Inferenceyolo_detector (ONNX / TensorRT / RKNN — auto theo đuôi file model)
Trackingsort_tracker, bytetrack_tracker
OSDosd
Destinationrtsp_des, file_des, web_des, app_des (callback kết quả)

Cần node khác → team CVEDIX mở rộng capi/ trong core; bindings chỉ cần khai báo hàm mới.

Cam kết ABI

  • Chỉ thêm hàm mới — không sửa/xóa hàm hiện có.
  • Ứng dụng build với v1.0 chạy được với mọi libcvedix_capi.so mới hơn.

Runtime chung

Mọi binding cần thư viện native trong LD_LIBRARY_PATH:

bash
export LD_LIBRARY_PATH=$CVEDIX_SDK_DIR/lib/x86_64:$LD_LIBRARY_PATH

Bắt đầu

  • C API — hàm chi tiết + ví dụ pipeline hoàn chỉnh
  • Java — JNA wrapper + Maven
  • C# — .NET P/Invoke + NuGet layout

Phần mềm độc quyền — CVEDIX