コンテンツにスキップ

SDK ガイド

ライブラリ

ターゲット ヘッダー 内容
AMDVA::amdva_runtime runtime.hpp、preprocess.hpp、telemetry.hpp VA/HIP のインポート(VaSession、ImportedSurface)、VPE 処理、画像のパッキング
AMDVA::amdva_inference model.hpp、batching.hpp、inference.hpp ModelInfo、ModelExecutor、タスクごとの後処理器、共有バッチの実行器
AMDVA::amdva_gst_support tensor_meta.hpp、video_preprocess.hpp、tracking.hpp、overlay.hpp、publishing.hpp、gst_telemetry.hpp GstAnalytics との相互運用、トラッキング、描画、結果の送信
AMDVA::amdva_media vui.hpp、rtsp_server.hpp、egl_import.hpp、copy_audit.hpp エンコードの補助機能、RTSP 配信、EGL インポート
AMDVA::amdva_streaming streaming/*.hpp RtspIngest、SegmentRecorder、Transcoder、Catalog(録画、録画の解析結果、アプリケーションのテーブル)、再生セッション、PreviewSlot
AMDVA::amdva_monitor resource_monitor.hpp CPU/GPU/メモリ/電力と DRM エンジンの負荷

共有ライブラリの SONAME は lib<name>.so.<major>.<minor> です。0.x のマイナーリリースでは ABI の互換性を保証しないため、マイナーバージョンが変わったらアプリケーションを再ビルドしてください。

プラグイン(gstamdanalytics、gstgva、gstgvametapublish*)は lib/gstreamer-1.0 にインストールされます。システム以外のプレフィックスを使う場合は、そのディレクトリを GST_PLUGIN_PATH に追加してください。

ビルドとインストール

source scripts/env.sh                 # rootless dependency environment
cmake -S . -B build -DAMDVA_ROCM_ROOT="$AMDVA_ROCM_ROOT" -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j8
cmake --install build --prefix /path/to/amdva-sdk

主なオプションは、AMDVA_BUILD_PLUGINS、AMDVA_BUILD_GVA_COMPAT(同梱の DL Streamer 要素)、AMDVA_BUILD_STREAMING、AMDVA_HARDWARE_TESTS です。examples/ 以下のアプリケーション向けには、AMDVA_BUILD_EXAMPLES、AMDVA_BUILD_NVR、AMDVA_BUILD_NVR_GUI(Qt6 が必要)、AMDVA_BUILD_DASHBOARD、AMDVA_BUILD_RTSP_FILES があります。

省略可能な依存関係は、いずれも既定で ON です。結果の送信用の AMDVA_WITH_MQTT(Eclipse Paho)と AMDVA_WITH_KAFKA(librdkafka)、amdpython 用の AMDVA_WITH_PYTHON(組み込み CPython)があります。フレームワークを最小構成でビルドする例を示します。

cmake -S . -B build-min -DAMDVA_ROCM_ROOT="$AMDVA_ROCM_ROOT" -DAMDVA_BUILD_EXAMPLES=OFF \
  -DAMDVA_WITH_MQTT=OFF -DAMDVA_WITH_KAFKA=OFF -DAMDVA_WITH_PYTHON=OFF

AMDVA_SYSROOT(既定は .deps/sysroot)は、root 権限なしで導入した開発用パッケージの場所を指定します。インストールしたパッケージには amdva_use_host_glib() と amdva_use_host_sqlite()(AmdvaHostLibraries.cmake)が含まれ、アプリケーションはフレームワークと同じようにホストの GLib/SQLite ランタイムをリンクできます。

CMake からの利用

find_package(AMDVideoAnalytics REQUIRED)
add_executable(app main.cpp)
target_link_libraries(app PRIVATE AMDVA::amdva_media)

examples/sdk/CMakeLists.txt は単独のプロジェクトです。

cmake -S examples/sdk -B build-sdk -DCMAKE_PREFIX_PATH=/path/to/amdva-sdk

サンプル

プログラム/スクリプト 内容
examples/sdk/transcode.cpp デコード、検出、オーバーレイを行い、ファイルまたは RTSP にエンコード
examples/nvr/headless.cpp サンプルのコントローラーを使うヘッドレスの NVR サービス(RTSP の受信、録画、AI)
examples/nvr、examples/resource-dashboard、examples/rtsp-files 完成したアプリケーション。各 README を参照
examples/sdk/playback.cpp、timeline.cpp、keyframe-preview.cpp 録画映像の API
examples/sdk/telemetry.cpp デコードと表示のタイミング
examples/pipelines/*.sh gst-launch のレシピ。描画してファイルに保存、セグメント分割、マルチストリーム
examples/metadata_callback.py amdpython のコールバック

テスト

ctest --test-dir build                        # no GPU needed
cmake -S . -B build -DAMDVA_HARDWARE_TESTS=ON \
  -DAMDVA_DETECTION_MODELS=/dir/with/yolov8n-b1.mxr+model-info.json \
  -DAMDVA_TEST_VIDEO=/path/test.h264
ctest --test-dir build -R "encode|framework"  # needs the AMD GPU

ハードウェアテストには、encode-contract(H.264/H.265/AV1、NV12 と BGRA の入力、BT.709 のシグナリング)と encode-annotated-contract(DMA-BUF の経路でのデコード、検出、オーバーレイ、エンコード)が含まれます。

依存関係とライセンス

scripts/bootstrap.py は、GstAnalytics パッチを当てたバージョン固定の GStreamer 1.28.2 と、root 権限を使わない sysroot を .deps/ 以下にビルドします。DL Streamer のソースは third_party/dlstreamer(MIT)に同梱しています。THIRD_PARTY_LICENSES.md を参照してください。