NNStreamer build configurations


  • Enable/Disable H/W & Neural Network Framework Adaptation (Tensor-Filter Subplugins)
    • option('enable-tensorflow-lite', type: 'boolean', value: false)
      • Build tensorflow-lite subplugin
      • Tensorflow-lite is required for build.
      • We supply "tensorflow-lite devel" packages along with headers and a proper pkgconfig file for Tizen, Ubuntu (PPA), Yocto/OpenEmbedded, and Android for Tensorflow 1.09, 1.13, 1.15.
    • option('enable-tensorflow', type: 'boolean', value: false)
      • Build tensorflow subplugin
      • Tensorflow is required for build
      • We supply "tensorflow devel" package along with headers and a proper pkgconfig file for Tizen and Ubuntu (PPA).
    • option('enable-caffe2', type: 'boolean', value: false)
      • Build caffe2 subplugin
      • Requires caffe2 (devel) and ptorobuf (devel)
      • We supply proper "caffe2 devel" package for Tizen and Ubuntu(PPA).
    • option('enable-pytorch', type: 'boolean', value: false)
      • Build pytorch subplugin
      • Requires pytorch (devel).
      • We supply proper "pytorch devel" package for Tizen and Ubuntu(PPA).
    • option('enable-movidius-ncsdk2', type: 'boolean', value: false)
      • Build mobidius (ncsdk2) subplugin
      • Requires mvnc library.
    • option('enable-python', type: 'boolean', value: false)
      • Build python-custom-filter support
      • This enables to insert a python object as a filter to GStreamer/NNStreamer pipelines.
    • option('enable-nnfw-runtime', type: 'boolean', value: false) # true to enable nnfw tensor filter element
      • Build nnfw-runtime (neurun) subplugin.
      • nnfw-runtime (neurun) is a neural network inference accelerator of Samsung (Apache2.0, opened via Tizen.org)
    • option('enable-cppfilter', type: 'boolean', value: true) # Allows C++ custom filters
      • Allows to insert C++ class as a filter in a GStreamer/NNStreamer pipeline.
    • option('enable-edgetpu', type: 'boolean', value: false)
      • Build EDGE-TPU support.
    • option('enable-armnn', type: 'boolean', value: false)
      • Build ARMNN support
    • option('enable-openvino', type: 'boolean', value: false)
      • Build OpenVINO support
  • Change behaviors of H/W & Neural Network Framework Adaptation
    • option('enable-pytorch-use-gpu', type: 'boolean', value: false) # default value, can be specified at run time
      • Enable GPU usage for PyTorch in the .ini file.
    • option('enable-tflite-nnapi-delegation', type: 'boolean', value: false) # true to enable tensorflow-lite to delegate nnapi interpretation to nnfw backend in tizen
      • Enable NNAPI delegation for tflite by default.
      • This can be overridden by each instance of pipelines and their elements.
  • Test & Examples
    • option('enable-test', type: 'boolean', value: true)
      • Build unit tests
    • option('install-test', type: 'boolean', value: false)
      • Install the unit test binaries to ${prefix}/${libdir}/nnstreamer/unittest/ (default: /usr/lib/nnstreamer/unittest)
      • Install custom filters used for unit tests to ${prefix}/${libdir}/nnstreamer/customfilters/ (default: /usr/lib/nnstreamer/customfilters)
    • option('install-example', type: 'boolean', value: false)
      • Install example custom filters after the build even if test is not enabled or installed.
  • NNStreamer Core
    • option('enable-orc', type: 'boolean', value: true) # default true, use orc when found orc library
      • Use ORC for tensor-transform to apply SIMD.
    • option('disable-video-support', type: 'boolean', value: false)
      • Disable video support in tensor-converter
      • You may use this to remove the dependencies on GST-Video. (for video-only lightweight systems)
    • option('disable-audio-support', type: 'boolean', value: false)
      • Disable audio support in tensor-converter
      • You may use this to remove the dependencies on GST-Audio. (for audio-only lightweight systems)
    • option('enable-filter-cpp-class', type: 'boolean', value: false) # Allows to accept C++ classes as filter subplugin implementation.
      • Allow to implement tensor-filter subplugin (HW / NNFW adaptor) as a C++ class. (WIP: #2194)
  • Configure nnstreamer.ini
    • option('enable-env-var', type: 'boolean', value: true)
      • Set enable_envvar=false in nnstreamer.ini
    • option('enable-symbolic-link', type: 'boolean', value: true)
      • Set enable_symlink=false in nnstreamer.ini
  • API Support
    • option('enable-capi', type: 'boolean', value: false)
      • Build NNStreamer's C API set.
      • This is Tizen Machine Learning C-API, but can be used for other OS as well (e.g., Ubuntu)
    • option('framework-priority-tflite', type: 'string', value: 'tensorflow-lite,nnfw,armnn,edgetpu', description: 'A comma separated prioritized list of neural network frameworks to open a .tflite file')
      • When a framework name is not specified for .tflite files via APIs, this option tells NNStreamer which frameworks to search.
      • There can be multiple candidates with higher priorities from the left.
  • Access Control / OS Specifics
    • option('enable-tizen', type: 'boolean', value: false)
      • Build NNStreamer for Tizen devices
        • Be more strict on access control (C-API); i.e., apply Tizen Privilege Control APIs and restrict a few unwanted behaviors.
        • Search for available camera/mic node with Tizen Multimedia APIs automatically w/ C-API usages.
        • Use Tizen's "DLOG" for logging instead of GStreamer/GLib logging mechanism.
    • option('enable-tizen-sensor', type: 'boolean', value: false)
      • Add a NNStreamer plugin, "tensor-src-tizensensor".
      • This allows accepting Tizen Sensor Framework's output as inputs of GStreamer/NNStreamer pipeline with "tensor-src-tizensensor" elements.
    • option('enable-element-restriction', type: 'boolean', value: false) # true to restrict gst-elements in api
      • Provide a whitelist of GStreamer elements. Users won't be able to use other GStreamer elements with C-APIs
    • option('restricted-elements', type: 'string', value: '')
      • The whitelist. (Yes, the name is weird. We need fo update it)






Related Code: /meson_options.txt

Updated at 2020-04-07, based on commit 5ed942e6, (NNStreamer 1.5.1)