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
- option('enable-tensorflow-lite', type: 'boolean', value: false)
- 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.
- option('enable-pytorch-use-gpu', type: 'boolean', value: false) # default value, can be specified at run time
- 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.
- option('enable-test', type: 'boolean', value: true)
- 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)
- option('enable-orc', type: 'boolean', value: true) # default true, use orc when found orc library
- 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
- option('enable-env-var', type: 'boolean', value: true)
- 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.
- option('enable-capi', type: 'boolean', value: false)
- 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.
- Build NNStreamer for Tizen devices
- 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)
- option('enable-tizen', type: 'boolean', value: false)
Related Code: /meson_options.txt
Updated at 2020-04-07, based on commit 5ed942e6, (NNStreamer 1.5.1)