Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

nvmsgconv (Message Convertor) library provides APIs for payload generation
nvmsgconv library supports generation of payload in json & protobuf formats

Below are the schemas supported for payload generation:
  PAYLOAD_DEEPSTREAM - Json Full message schema with separate payload per object (Default)
  PAYLOAD_DEEPSTREAM_MINIMAL - Json Minimal message with multiple objects in single payload.
  PAYLOAD_DEEPSTREAM_PROTOBUF - Protobuf encoded message with multiple objects in single payload.

Payload can be generated using below metadata types:
  NVDS_EVENT_MSG_META type metadata attached to the buffer as user metadata of frame meta
  OR
  NVDS_FRAME_META type and NVDS_OBJECT_META type in Gst buffer and available fields in
these metadata types are used to create message payload based on schema type.

Refer to the DeepStream SDK documentation for a description of the plugin.

--------------------------------------------------------------------------------
Pre-requisites:
- glib-2.0
- json-glib-1.0
- uuid
- yaml-cpp

Install using:
  sudo apt-get install libglib2.0-dev libjson-glib-dev uuid-dev libyaml-cpp-dev

If running deepstream on baremetal and not docker:
  Install other dependencies (Needs sudo or root privilege):
  A. For X86 Device -
  1. Triton gRPC Client into "/opt/tritonclient":
  mkdir -p  /opt/tritonclient/
  wget https://github.com/triton-inference-server/server/releases/download/v2.56.0/v2.56.0_ubuntu2404.clients.tar.gz
  tar xzf v2.56.0_ubuntu2404.clients.tar.gz -C /opt/tritonclient/ lib include

  2. Protobuf compiler v3.6.1.3 into "/opt/proto":
  mkdir /opt/proto
  PB_REL="https://github.com/protocolbuffers/protobuf/releases";
  curl -LO $PB_REL/download/v21.12/protoc-21.12-linux-x86_64.zip
  unzip protoc-21.12-linux-x86_64.zip -d /opt/proto
  chmod -R +rx /opt/proto/

  B. For Jetson Device -
  1. Please download the correct version of Triton gRPC client from
    https://github.com/triton-inference-server/server/releases 
    and install into "/opt/tritonclient". Example commands :
  mkdir -p  /opt/tritonclient/
  wget https://github.com/triton-inference-server/server/releases/download/v2.56.0/tritonserver2.56.0-igpu.tar
  tar xzf tritonserver2.56.0-igpu.tar -C /opt/tritonclient/ --strip-components=2 tritonserver/clients/lib/ tritonserver/clients/include

  2. Protobuf compiler v3.6.1.3 into "/opt/proto":
  mkdir /opt/proto
  PB_REL="https://github.com/protocolbuffers/protobuf/releases";
  curl -LO $PB_REL/download/v21.12/protoc-21.12-linux-aarch_64.zip
  unzip protoc-21.12-linux-aarch_64.zip -d /opt/proto
  chmod -R +rx /opt/proto/

  Update PATH variable with newly installed protoc by running below command,
    $ export PATH=/opt/proto/bin/:$PATH

------------------------------------------------------------------------------------------------
Compiling and installing the plugin:
Run make and sudo make install

NOTE:
1) To compile the sources, run make with "sudo" or root permission.
2) For payload generation using protobuf, proto.schema is provided within deepstream_schema directory.