Started dev container with the following devcontainer.json { "name": "NV-DS", "image": "nvcr.io/nvidia/deepstream:6.2-devel", "runArgs": [ "--gpus", "all", "--name=test_msgconv", "--net=host", "-it", "-v", "/tmp/.X11-unix:/tmp/.X11-unix", "--env-file", ".devcontainer/devcontainer.env", ] } ---------------------------------------------------------------------------------------------- # Install necessary dependencies apt update apt install -y python3-gi python3-dev python3-gst-1.0 apt install python3-gi python3-dev python3-gst-1.0 python-gi-dev git python-dev \ python3 python3-pip python3.8-dev cmake g++ build-essential libglib2.0-dev \ libglib2.0-dev-bin libgstreamer1.0-dev libtool m4 autoconf automake libgirepository1.0-dev libcairo2-dev -y cd /opt/nvidia/deepstream/deepstream/sources/ \ && git clone https://github.com/NVIDIA-AI-IOT/deepstream_python_apps.git \ && cd deepstream_python_apps \ && git submodule update --init \ && apt-get install -y apt-transport-https ca-certificates -y \ && update-ca-certificates \ && cd 3rdparty/gst-python/ \ && ./autogen.sh \ && make \ && make install \ && cd ../../bindings \ && mkdir build \ && cd build \ && cmake .. \ && make \ && pip3 install ./pyds-*.whl apt-get install libglib2.0 libglib2.0-dev apt-get install libjansson4 libjansson-dev apt-get install librdkafka1=0.11.3-1build1 ---------------------------------------------------------------------------------------------- # Run deepstream app (with kafka service running on local host) cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-test4/ && \ python3 deepstream_test_4.py -i /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 -p /opt/nvidia/deepstream/deepstream/lib/libnvds_kafka_proto.so --conn-str="localhost;9092;msgconv_test" --schema-type 0 <> ---------------------------------------------------------------------------------------------- # backup file cp /opt/nvidia/deepstream/deepstream/lib/libnvds_msgconv.so /opt/nvidia/deepstream/deepstream/lib/libnvds_msgconv.so_backup # compile msgconv apt-get install libglib2.0-dev libjson-glib-dev uuid-dev libyaml-cpp-dev protobuf-compiler cd /opt/nvidia/deepstream/deepstream/sources/libs/nvmsgconv make <> protoc -I./deepstream_schema --cpp_out=./deepstream_schema/ deepstream_schema/schema.proto g++ -o libnvds_msgconv.so nvmsgconv.cpp deepstream_schema/eventmsg_payload.cpp deepstream_schema/dsmeta_payload.cpp deepstream_schema/deepstream_schema.cpp deepstream_schema/schema.pb.cc -Wall -std=c++11 -shared -fPIC -I../../includes -I./deepstream_schema -pthread -I/usr/include/json-glib-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -ljson-glib-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -luuid -lyaml-cpp -lprotobuf In file included from nvmsgconv.cpp:23: ./deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory 10 | #include | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. In file included from deepstream_schema/eventmsg_payload.cpp:22: deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory 10 | #include | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. In file included from deepstream_schema/dsmeta_payload.cpp:22: deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory 10 | #include | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. In file included from deepstream_schema/schema.pb.cc:4: deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory 10 | #include | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make: *** [Makefile:43: libnvds_msgconv.so] Error 1 ----------------------------------------------------------------------------------------------------- # Check where protoc is installed which protoc <> /root/.local/bin/protoc ----------------------------------------------------------------------------------------------------- # added following line to Makefile CFLAGS+= -I/root/.local/include # Compile again make clean make make install ----------------------------------------------------------------------------------------------------- # Run with the compiled script cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-test4/ && \ GST_DEBUG=3 python3 deepstream_test_4.py -i /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 -p /opt/nvidia/deepstream/deepstream/lib/libnvds_kafka_proto.so --conn-str="localhost;9092;msgconv_test" --schema-type 0 <> Creating Pipeline Creating Source Creating H264Parser Creating Decoder 0:00:00.124390577 22745 0x2714700 WARN GST_PLUGIN_LOADING gstplugin.c:792:_priv_gst_plugin_load_file_for_registry: module_open failed: ///opt/nvidia/deepstream/deepstream-6.2/lib/libnvds_msgconv.so: undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto (python3:22745): GStreamer-WARNING **: 09:30:22.167: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_msgconv.so': ///opt/nvidia/deepstream/deepstream-6.2/lib/libnvds_msgconv.so: undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto 0:00:00.124462885 22745 0x2714700 WARN GST_PLUGIN_LOADING gstplugin.c:1330:gst_plugin_load_by_name: load_plugin error: Opening module failed: ///opt/nvidia/deepstream/deepstream-6.2/lib/libnvds_msgconv.so: undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto 0:00:00.124472407 22745 0x2714700 WARN GST_PLUGIN_LOADING gstpluginfeature.c:132:gst_plugin_feature_load: Failed to load plugin containing feature 'nvmsgconv'. 0:00:00.124480514 22745 0x2714700 WARN GST_ELEMENT_FACTORY gstelementfactory.c:398:gst_element_factory_create: loading plugin containing feature nvmsg-converter returned NULL! Unable to create msgconv Creating EGLSink Playing file /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 Traceback (most recent call last): File "deepstream_test_4.py", line 549, in sys.exit(main(sys.argv)) File "deepstream_test_4.py", line 418, in main msgconv.set_property('config', MSCONV_CONFIG_FILE) AttributeError: 'NoneType' object has no attribute 'set_property' ----------------------------------------------------------------------------------------------------- ## running ldd cd /opt/nvidia/deepstream/deepstream/lib/ && ldd -r libnvds_msgconv.so <> linux-vdso.so.1 (0x00007ffd24ebf000) libjson-glib-1.0.so.0 => /lib/x86_64-linux-gnu/libjson-glib-1.0.so.0 (0x00007fc6b90a5000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fc6b8f7c000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fc6b8f73000) libyaml-cpp.so.0.6 => /lib/x86_64-linux-gnu/libyaml-cpp.so.0.6 (0x00007fc6b8f18000) libprotobuf.so.17 => /lib/x86_64-linux-gnu/libprotobuf.so.17 (0x00007fc6b8c1f000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc6b8a3d000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc6b8a20000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc6b89fd000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc6b880b000) libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fc6b862a000) libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fc6b85ca000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fc6b8557000) /lib64/ld-linux-x86-64.so.2 (0x00007fc6b9225000) libz.so.1 => /root/.local/lib/libz.so.1 (0x00007fc6b8534000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc6b83e5000) libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fc6b83df000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc6b83d9000) libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fc6b8379000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fc6b834e000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fc6b8330000) libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fc6b8324000) libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fc6b82cd000) libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fc6b823c000) undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal17kGlobalEmptyTableE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal17kGlobalEmptyTableE (./libnvds_msgconv.so) undefined symbol: _ZNK6google8protobuf13RepeatedFieldIfE4sizeEv (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal24ComputeUnknownFieldsSizeERKNS1_16InternalMetadataEmPNS1_10CachedSizeE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal17AssignDescriptorsEPKNS1_15DescriptorTableEb (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal10VerifyUTF8ENS0_11StringPieceEPKc (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf13RepeatedFieldIfE3AddERKf (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal16ReadSizeFallbackEPKcj (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf13RepeatedFieldIfEC1EPNS0_5ArenaE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr12ClearToEmptyEv (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal17UnknownFieldParseEjPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcPNS1_12ParseContextE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf5Arena23AllocateAlignedWithHookEmPKSt9type_info (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal10WireFormat37InternalSerializeUnknownFieldsToArrayERKNS0_15UnknownFieldSetEPhPNS0_2io19EpsCopyOutputStreamE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf13RepeatedFieldIfE5ClearEv (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal17UnknownFieldParseEmPNS0_15UnknownFieldSetEPKcPNS1_12ParseContextE (./libnvds_msgconv.so) undefined symbol: _ZNK6google8protobuf8internal15ThreadSafeArena14SpaceAllocatedEv (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr7MutableB5cxx11ENS2_12EmptyDefaultEPNS0_5ArenaE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream16WriteRawFallbackEPKviPh (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal15ReadTagFallbackEPKcj (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr3SetENS2_12EmptyDefaultEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS0_5ArenaE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream18WriteStringOutlineEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPh (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf13RepeatedFieldIfEC1ERKS2_ (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal18EpsCopyInputStream18ReadStringFallbackEPKciPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr3SetEPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS9_PNS0_5ArenaE (./libnvds_msgconv.so) undefined symbol: _ZNK6google8protobuf13RepeatedFieldIfE4dataEv (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream30WriteStringMaybeAliasedOutlineEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPh (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal20AddDescriptorsRunnerC1EPKNS1_15DescriptorTableE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal17PackedFloatParserEPvPKcPNS1_12ParseContextE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream19EnsureSpaceFallbackEPh (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal18EpsCopyInputStream12DoneFallbackEii (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr3SetENS2_12EmptyDefaultERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS0_5ArenaE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf5Arena26AllocateAlignedWithCleanupEmPKSt9type_info (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf8internal24InlineGreedyStringParserEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcPNS1_12ParseContextE (./libnvds_msgconv.so) undefined symbol: _ZNK6google8protobuf9Timestamp18_InternalSerializeEPhPNS0_2io19EpsCopyOutputStreamE (./libnvds_msgconv.so) undefined symbol: _ZN6google8protobuf9Timestamp14_InternalParseEPKcPNS0_8internal12ParseContextE (./libnvds_msgconv.so) ----------------------------------------------------------------------------------------------------- # Return to backup file mv /opt/nvidia/deepstream/deepstream/lib/libnvds_msgconv.so_backup /opt/nvidia/deepstream/deepstream/lib/libnvds_msgconv.so cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-test4/ && \ GST_DEBUG=3 python3 deepstream_test_4.py -i /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 -p /opt/nvidia/deepstream/deepstream/lib/libnvds_kafka_proto.so --conn-str="localhost;9092;msgconv_test" --schema-type 0 <>