Code Monkey home page Code Monkey logo

gst-distance's Introduction

gst-distance

Is a simple social distancing plugin for Nvidia DeepStream. It was written prior to the advent of nvanalytics and feature it's own metadata format.

Requirements:

Hardware

  • An Nvidia dGPU supported by DeepStream (GeForce works, but is not officially supported)

(or)

  • A Nvidia Tegra board of your preference.

Software

  • DeepStream 5.0 (obtaining this on any platform is harder than it should be)

  • Other software: on Ubuntu / Debian / Linux for Tegra:

    sudo apt install \
        libglib2.0-dev \
        libgstreamer-plugins-base1.0-dev \
        libgstreamer1.0-dev \
        ninja-build \
        python3-pip
    pip3 install --upgrade meson

Building

git clone --branch (branch) (repo url)
cd (repo folder)
mkdir build && cd build
meson (options) ..
ninja test
(sudo) ninja install

A systemwide install is not necessary if you tell meson to configure a --prefix like ~/.local and set GST_PLUGIN_PATH accordingly. ninja uninstall can be used to uninstall.

gst-distance's People

Contributors

mdegans avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

gst-distance's Issues

ninja: build stopped: subcommand failed

I was running the "ninja test" command and halfway it failed and there was an error "collect2: error: ld returned 1 exit status". This is the output after running the command.

[1/10] Linking target subprojects/distance/src/libdistance.so.0.1.1
FAILED: subprojects/distance/src/libdistance.so.0.1.1 
c++  -o subprojects/distance/src/libdistance.so.0.1.1 subprojects/distance/src/libdistance.so.0.1.1.p/BaseFilter.cpp.o subprojects/distance/src/libdistance.so.0.1.1.p/DistanceFilter.cpp.o subprojects/distance/src/libdistance.so.0.1.1.p/FileMetaBroker.cpp.o subprojects/distance/src/libdistance.so.0.1.1.p/PayloadBroker.cpp.o subprojects/distance/src/libdistance.so.0.1.1.p/ProtoPayloadFilter.cpp.o subprojects/distance/src/libdistance.so.0.1.1.p/PyPayloadBroker.cpp.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libdistance.so.0 /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so /usr/lib/aarch64-linux-gnu/libgobject-2.0.so /usr/lib/aarch64-linux-gnu/libglib-2.0.so /opt/nvidia/deepstream/deepstream/lib/libnvds_meta.so /opt/nvidia/deepstream/deepstream/lib/libnvdsgst_meta.so /usr/local/lib/aarch64-linux-gnu/libdistanceproto.so -Wl,--end-group -Wl,-rpath,/opt/nvidia/deepstream/deepstream/lib:/usr/local/lib/aarch64-linux-gnu -Wl,-rpath-link,/opt/nvidia/deepstream/deepstream/lib -Wl,-rpath-link,/usr/local/lib/aarch64-linux-gnu
subprojects/distance/src/libdistance.so.0.1.1.p/DistanceFilter.cpp.o: In function `ds::DistanceFilter::DistanceFilter()':
/home/nano/gst-distance/build/../subprojects/distance/src/DistanceFilter.cpp:96: undefined reference to `google::protobuf::internal::VerifyVersion(int, int, char const*)'
subprojects/distance/src/libdistance.so.0.1.1.p/DistanceFilter.cpp.o: In function `google::protobuf::RepeatedPtrField<distanceproto::Frame>::TypeHandler::Type* google::protobuf::internal::RepeatedPtrFieldBase::Add<google::protobuf::RepeatedPtrField<distanceproto::Frame>::TypeHandler>(google::protobuf::RepeatedPtrField<distanceproto::Frame>::TypeHandler::Type*)':
/usr/include/google/protobuf/repeated_field.h:1435: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)'
subprojects/distance/src/libdistance.so.0.1.1.p/DistanceFilter.cpp.o: In function `google::protobuf::RepeatedPtrField<distanceproto::Person>::TypeHandler::Type* google::protobuf::internal::RepeatedPtrFieldBase::Add<google::protobuf::RepeatedPtrField<distanceproto::Person>::TypeHandler>(google::protobuf::RepeatedPtrField<distanceproto::Person>::TypeHandler::Type*)':
/usr/include/google/protobuf/repeated_field.h:1435: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)'
subprojects/distance/src/libdistance.so.0.1.1.p/DistanceFilter.cpp.o: In function `google::protobuf::internal::GenericTypeHandler<distanceproto::Frame>::New(google::protobuf::Arena*)':
/usr/include/google/protobuf/arena.h:640: undefined reference to `google::protobuf::Arena::AllocateAligned(std::type_info const*, unsigned long)'
/usr/include/google/protobuf/arena.h:642: undefined reference to `google::protobuf::Arena::AddListNode(void*, void (*)(void*))'
subprojects/distance/src/libdistance.so.0.1.1.p/DistanceFilter.cpp.o: In function `google::protobuf::internal::GenericTypeHandler<distanceproto::Person>::New(google::protobuf::Arena*)':
/usr/include/google/protobuf/arena.h:640: undefined reference to `google::protobuf::Arena::AllocateAligned(std::type_info const*, unsigned long)'
/usr/include/google/protobuf/arena.h:642: undefined reference to `google::protobuf::Arena::AddListNode(void*, void (*)(void*))'
subprojects/distance/src/libdistance.so.0.1.1.p/FileMetaBroker.cpp.o: In function `ds::FileMetaBroker::FileMetaBroker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ds::FileMetaBroker::Format)':
/home/nano/gst-distance/build/../subprojects/distance/src/FileMetaBroker.cpp:50: undefined reference to `google::protobuf::internal::VerifyVersion(int, int, char const*)'
subprojects/distance/src/libdistance.so.0.1.1.p/FileMetaBroker.cpp.o: In function `ds::FileMetaBroker::proto_worker_func()':
/home/nano/gst-distance/build/../subprojects/distance/src/FileMetaBroker.cpp:80: undefined reference to `google::protobuf::io::FileOutputStream::FileOutputStream(int, int)'
/home/nano/gst-distance/build/../subprojects/distance/src/FileMetaBroker.cpp:82: undefined reference to `google::protobuf::io::CodedOutputStream::CodedOutputStream(google::protobuf::io::ZeroCopyOutputStream*)'
/home/nano/gst-distance/build/../subprojects/distance/src/FileMetaBroker.cpp:83: undefined reference to `google::protobuf::io::CodedOutputStream::WriteLittleEndian32(unsigned int)'
/home/nano/gst-distance/build/../subprojects/distance/src/FileMetaBroker.cpp:87: undefined reference to `google::protobuf::MessageLite::SerializeToCodedStream(google::protobuf::io::CodedOutputStream*) const'
/home/nano/gst-distance/build/../subprojects/distance/src/FileMetaBroker.cpp:94: undefined reference to `google::protobuf::io::CodedOutputStream::~CodedOutputStream()'
subprojects/distance/src/libdistance.so.0.1.1.p/FileMetaBroker.cpp.o: In function `std::thread::thread<void (ds::FileMetaBroker::*)(), ds::FileMetaBroker*>(void (ds::FileMetaBroker::*&&)(), ds::FileMetaBroker*&&)':
/usr/include/c++/7/thread:122: undefined reference to `pthread_create'
/usr/include/c++/7/thread:122: undefined reference to `pthread_create'
subprojects/distance/src/libdistance.so.0.1.1.p/FileMetaBroker.cpp.o: In function `google::protobuf::RepeatedPtrField<distanceproto::Frame>::TypeHandler::Type const& google::protobuf::internal::RepeatedPtrFieldBase::Get<google::protobuf::RepeatedPtrField<distanceproto::Frame>::TypeHandler>(int) const':
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogMessage::LogMessage(google::protobuf::LogLevel, char const*, int)'
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogMessage::operator<<(char const*)'
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogFinisher::operator=(google::protobuf::internal::LogMessage&)'
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogMessage::~LogMessage()'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogMessage::LogMessage(google::protobuf::LogLevel, char const*, int)'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogMessage::operator<<(char const*)'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogFinisher::operator=(google::protobuf::internal::LogMessage&)'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogMessage::~LogMessage()'
subprojects/distance/src/libdistance.so.0.1.1.p/FileMetaBroker.cpp.o: In function `google::protobuf::RepeatedPtrField<distanceproto::Person>::TypeHandler::Type const& google::protobuf::internal::RepeatedPtrFieldBase::Get<google::protobuf::RepeatedPtrField<distanceproto::Person>::TypeHandler>(int) const':
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogMessage::LogMessage(google::protobuf::LogLevel, char const*, int)'
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogMessage::operator<<(char const*)'
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogFinisher::operator=(google::protobuf::internal::LogMessage&)'
/usr/include/google/protobuf/repeated_field.h:1407: undefined reference to `google::protobuf::internal::LogMessage::~LogMessage()'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogMessage::LogMessage(google::protobuf::LogLevel, char const*, int)'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogMessage::operator<<(char const*)'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogFinisher::operator=(google::protobuf::internal::LogMessage&)'
/usr/include/google/protobuf/repeated_field.h:1408: undefined reference to `google::protobuf::internal::LogMessage::~LogMessage()'
subprojects/distance/src/libdistance.so.0.1.1.p/ProtoPayloadFilter.cpp.o: In function `ds::ProtoPayloadFilter::ProtoPayloadFilter()':
/home/nano/gst-distance/build/../subprojects/distance/src/ProtoPayloadFilter.cpp:67: undefined reference to `google::protobuf::internal::VerifyVersion(int, int, char const*)'
subprojects/distance/src/libdistance.so.0.1.1.p/ProtoPayloadFilter.cpp.o: In function `ds::ProtoPayloadFilter::on_batch_meta(_NvDsBatchMeta*, distanceproto::Batch*)':
/home/nano/gst-distance/build/../subprojects/distance/src/ProtoPayloadFilter.cpp:117: undefined reference to `google::protobuf::MessageLite::SerializeToString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.