platform/upstream/nnstreamer.git
3 years ago[Filter/tflite] Support GPU Delegate on Tizen submit/tizen/20201201.095355
Sangjung Woo [Tue, 24 Nov 2020 02:32:30 +0000 (11:32 +0900)]
[Filter/tflite] Support GPU Delegate on Tizen

This patch supports the GPU Delegate functionality on Tizen platform.

NNStreamer filter for TFLite2 GPU delegate only supports OpenCL backend
since GLES v3.1 backend has a constraint that Invoke() must be called
from the same EGLContext.

If both tensorflow2_lite_support and tensorflow2_gpu_delegate_support
are set as 1 in nnstreamer.spec, GPU Delegate functionality is enabled.
If tensorflow2_gpu_delegate_support is set but tensorflow2_lite_support
is 0, then tensorflow2_gpu_delegate_support option is ignored.

Since Tensorflow2 GPU delegate is ready,
tensorflow2_gpu_delegate_support is set as 1 in this patch.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[android/build] Patch NDK source to prevent build error
Yongjoo Ahn [Fri, 27 Nov 2020 05:55:07 +0000 (14:55 +0900)]
[android/build] Patch NDK source to prevent build error

- After Android API level 28, the introduced
  `AMediaCodecOnAsyncNotifyCallback` make comile error.
- Make build script to patch this part after
  https://android.googlesource.com/platform/frameworks/av/+/master/media/ndk/include/media/NdkMediaCodec.h#117

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[Filter/Sub] preserved name
Jaeyun [Mon, 30 Nov 2020 06:02:12 +0000 (15:02 +0900)]
[Filter/Sub] preserved name

add preserved name 'any' in sub-plugin config.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Tools] GstPipe String Parser
MyungJoo Ham [Fri, 3 Jul 2020 01:05:23 +0000 (10:05 +0900)]
[Tools] GstPipe String Parser

Rather than rewriting lex/yacc code from scratch for python,
modify GST's lex/yacc (flex/bison) C code and call it
from python.

This is the first commit of parser and simply imports
GST-Parser code without touching it.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years agoBuild script clean: nnstreamer-check built by default
MyungJoo Ham [Fri, 20 Nov 2020 07:21:27 +0000 (16:21 +0900)]
Build script clean: nnstreamer-check built by default

The main meson script will not handle utilities
under /tools/development

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[C-Api] define sub-plugin names
Jaeyun [Fri, 27 Nov 2020 11:35:09 +0000 (20:35 +0900)]
[C-Api] define sub-plugin names

Fix typo and add new function to get the nnfw type by subplugin name.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Style] macro block style fix.
MyungJoo Ham [Wed, 28 Oct 2020 07:11:31 +0000 (16:11 +0900)]
[Style] macro block style fix.

Let users add semicolons at the end.
Do not add semicolons at the end of the macro definition.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[Style] doxygen error fixed after clang-format fix
MyungJoo Ham [Wed, 28 Oct 2020 06:30:24 +0000 (15:30 +0900)]
[Style] doxygen error fixed after clang-format fix

After clang-format fix, a lot of doxygen errors are discovered.
Fix them all.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[Style] Apply clang-format
MyungJoo Ham [Mon, 30 Nov 2020 09:56:48 +0000 (18:56 +0900)]
[Style] Apply clang-format

Apply clang-format with the .clang-format file of nnstreamer
to all *.cc (C++) files

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[Style] Update clang-format
MyungJoo Ham [Fri, 20 Nov 2020 06:09:29 +0000 (15:09 +0900)]
[Style] Update clang-format

1. Do not affect doxygen comments
2. Keep gtest include at the top.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[Android/ONE] update ONE version
Jaeyun [Wed, 18 Nov 2020 09:38:42 +0000 (18:38 +0900)]
[Android/ONE] update ONE version

Prepare next release, update ONE version to 1.11.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Filter/NNFW] invalid tensor info
Jaeyun [Wed, 25 Nov 2020 06:19:58 +0000 (15:19 +0900)]
[Filter/NNFW] invalid tensor info

1. Fix invalid tensor info ptr when setting new tensor shape.
(Running dummy invoke tries to set old tensor info.)
2. Allocate dummy buffer and init to 0.
3. Handle insufficient output buffer case.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Join] Add testcases for join
gichan-jang [Tue, 17 Nov 2020 06:10:51 +0000 (15:10 +0900)]
[Join] Add testcases for join

Add testcases for join element.
Line coverage: 92.4%

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[gRPC] Implement tensor_source (client) and tensor_sink (server) accepted/tizen/unified/20201130.122954 submit/tizen/20201127.015104
Dongju Chae [Tue, 17 Nov 2020 03:24:57 +0000 (12:24 +0900)]
[gRPC] Implement tensor_source (client) and tensor_sink (server)

This patch implement a reverse pair of gRPC tensor_source/tensor_sink.
(i.e., tensor_source as client and tensor_sink as server)

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[Android/Test] remove unnecessary format conversion
Jaeyun [Thu, 26 Nov 2020 09:04:09 +0000 (18:04 +0900)]
[Android/Test] remove unnecessary format conversion

In Android testcase, remove unnecessary format conversion to glimagesink.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Fix/Debian] Fix some typos in debian/control
Dongju Chae [Thu, 26 Nov 2020 07:54:57 +0000 (16:54 +0900)]
[Fix/Debian] Fix some typos in debian/control

This patch fixes some typos in debian/control
- MUlti-Arch --> Multi-Arch

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[TensorRate/Filter] Skip inference when QoS events arrive
Dongju Chae [Mon, 23 Nov 2020 01:29:59 +0000 (10:29 +0900)]
[TensorRate/Filter] Skip inference when QoS events arrive

This patch implements a simple QoS mechanism which skips
inference when QoS events arrive from tensor_rate.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[DIST/RPM] Code Clean .spec for readability and non-Tizen users
MyungJoo Ham [Fri, 20 Nov 2020 02:29:51 +0000 (11:29 +0900)]
[DIST/RPM] Code Clean .spec for readability and non-Tizen users

1. .spec file code cleaned for readability
2. reflect recent changes in usage conditions of a few subplugins
3. allow to use CAPI in other Linux distros.

Addresses #2564

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[Android/Doc] Add guide for using NNAPI delegate to README
Yongjoo Ahn [Mon, 23 Nov 2020 05:30:09 +0000 (14:30 +0900)]
[Android/Doc] Add guide for using NNAPI delegate to README

- Add guide for using TensorFlow Lite NNAPI delegate to README.md

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[Android/Test] testcases for new methods
Jaeyun [Wed, 18 Nov 2020 09:31:32 +0000 (18:31 +0900)]
[Android/Test] testcases for new methods

Add testcases for methods to set surface and check element availability.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Android/Api] method to check element availability
Jaeyun [Wed, 18 Nov 2020 09:28:37 +0000 (18:28 +0900)]
[Android/Api] method to check element availability

Add new method to check element available on the pipeline.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Build] fix warning (type conversion)
Jaeyun [Fri, 20 Nov 2020 09:29:57 +0000 (18:29 +0900)]
[Build] fix warning (type conversion)

fix warning in android native build (type conversion)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[SPEC] Add capi-nnstreamer-devel Requires to capi-nnstreamer package accepted/tizen/unified/20201123.123148 submit/tizen/20201120.071152
Sangjung Woo [Fri, 20 Nov 2020 04:58:20 +0000 (13:58 +0900)]
[SPEC] Add capi-nnstreamer-devel Requires to capi-nnstreamer package

Since the rootstrap of Tizen v6.5 is not ready, some application built
on v6.0 needs libcapi-nnstreamer.so file. Because of this reason, this
patch temporarily adds the capi-nnstreamer-devel Requires to
capi-nnstreamer package. It will be removed when the rootstrap of Tizen
v6.5 is ready.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[Android] fix invalid window error
Jaeyun [Thu, 19 Nov 2020 09:33:18 +0000 (18:33 +0900)]
[Android] fix invalid window error

prevent invalid window handle case.
video-sink does not set new window handle directly. If video-sink accesses released window handle, this will crash an application.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Tools/Confchk] Show custom property description for sub-plugins
Dongju Chae [Thu, 15 Oct 2020 08:36:26 +0000 (17:36 +0900)]
[Tools/Confchk] Show custom property description for sub-plugins

This patch adds feature to show custom property description for
registered sub-plugins.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[Tools] GstPipe<-->Pbtxt Conversion / Skeleton
MyungJoo Ham [Tue, 30 Jun 2020 10:35:32 +0000 (19:35 +0900)]
[Tools] GstPipe<-->Pbtxt Conversion / Skeleton

Skeleton code for GstPipe<-->Pbtxt Conversion.

Ultimately, we can use web-based WYSIWYG tools based on this! (next year or later)

This commit offers a python script that construct a pipeline object
from a parsed GstPipeline string and generate a pbtxt pipeline from it.

Next step: write a parser of GstPipeline (modify Gstreamer's .y and .l)

Changes in V2:
- Applied change requests from reviewers. (var names, SPDX, )

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[NNFW] print retry count log
Jaeyun [Wed, 18 Nov 2020 08:55:06 +0000 (17:55 +0900)]
[NNFW] print retry count log

For debug, add log retry count in set-dimension function.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[TensorIF] Add custom callback accepted/tizen/unified/20201119.125120 submit/tizen/20201119.061738
gichan-jang [Thu, 22 Oct 2020 06:23:36 +0000 (15:23 +0900)]
[TensorIF] Add custom callback

Add custom callback to support user defined condition

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[TensorIF] Add testcases for custom condition
gichan-jang [Tue, 27 Oct 2020 03:07:43 +0000 (12:07 +0900)]
[TensorIF] Add testcases for custom condition

Add testcases for custom condition

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[JOIN] Support packaging for join element
gichan-jang [Wed, 11 Nov 2020 02:49:28 +0000 (11:49 +0900)]
[JOIN] Support packaging for join element

To provide rpm and debian package of join element.
Package is provied by nnstreamer-extra package.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[JOIN] Add new element join
gichan-jang [Tue, 10 Nov 2020 09:08:21 +0000 (18:08 +0900)]
[JOIN] Add new element join

Add new gstreamer element: join
The join select the out that arrived first among the input streams.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[Android] method to set surface
Jaeyun [Thu, 12 Nov 2020 06:05:26 +0000 (15:05 +0900)]
[Android] method to set surface

Add new method to set a surface to video-sink element.
In Android application, developer can simply set SurfaceHolder object to glimagesink.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Filter/TensorRT] Add unit testcases for TensorRT filter
Sangjung Woo [Mon, 26 Oct 2020 05:33:32 +0000 (14:33 +0900)]
[Filter/TensorRT] Add unit testcases for TensorRT filter

This patch newly adds unit testcases for TensorRT filter.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[Filter/TensorRT] Add a sub-plugin filter for TensorRT
Sangjung Woo [Fri, 23 Oct 2020 06:32:53 +0000 (15:32 +0900)]
[Filter/TensorRT] Add a sub-plugin filter for TensorRT

This patch newly adds an sub-plugin filter for TensorRT to support
Nvidia GPU. It is implemented based on tensor_filter_subplugin class and
catches the DESTROY_NOTIFY event to clean up the used GPU memory.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[C-Api] element availability
Jaeyun [Mon, 16 Nov 2020 11:25:37 +0000 (20:25 +0900)]
[C-Api] element availability

Add new function to check the element availability (registered and not restricted)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[CodeClean] indent and common function
Jaeyun [Tue, 17 Nov 2020 11:44:41 +0000 (20:44 +0900)]
[CodeClean] indent and common function

Code clean, fix indent and common ptr to handle tensor info struct.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Debian] Modify nnstreamer install files
gichan-jang [Fri, 13 Nov 2020 05:06:57 +0000 (14:06 +0900)]
[Debian] Modify nnstreamer install files

Modify the install file list since grpc and join are newly added to the gst path.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[gRPC/Sink] Implement gRPC tensor sink
Dongju Chae [Wed, 4 Nov 2020 10:36:43 +0000 (19:36 +0900)]
[gRPC/Sink] Implement gRPC tensor sink

This patch implements gRPC tensor sink as a client.
Its gRPC server mode is WIP.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[TensorFilter] Add unit testcases for input and output combination
gichan-jang [Thu, 5 Nov 2020 00:58:44 +0000 (09:58 +0900)]
[TensorFilter] Add unit testcases for input and output combination

Add unit testcases for input and output combination options.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[TensorFilter] Combined Tensor Picking
gichan-jang [Fri, 30 Oct 2020 01:42:13 +0000 (10:42 +0900)]
[TensorFilter] Combined Tensor Picking

Add options for input and output combination.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[Tizen/gRPC] check gRPC capability in nnstreamer.spec
Dongju Chae [Tue, 10 Nov 2020 07:55:59 +0000 (16:55 +0900)]
[Tizen/gRPC] check gRPC capability in nnstreamer.spec

This patch enables gRPC plugin in DA profile.

The below shows gRPC package status in each profile.
- DA: gRPC 1.20.1
- VD: None

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[TensrDemux] Add testcases for tensors out
gichan [Sun, 1 Nov 2020 10:11:25 +0000 (19:11 +0900)]
[TensrDemux] Add testcases for tensors out

Add testcases for tensors out.
Re-use of the tensor and non-sequential combinations are also possible.

Signed-off-by: gichan <gichan2.jang@samsung.com>
3 years ago[TensorDemux] Support other/tensors on src pads
gichan [Sat, 31 Oct 2020 08:22:27 +0000 (17:22 +0900)]
[TensorDemux] Support other/tensors on src pads

Changed to suppot ohter/tensors on src pads.
Related issue: #2844

Signed-off-by: gichan <gichan2.jang@samsung.com>
3 years ago[filter/tflite] Define macro for version check
Yongjoo Ahn [Wed, 11 Nov 2020 02:44:41 +0000 (11:44 +0900)]
[filter/tflite] Define macro for version check

- Add version check macro for delegate support

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[Android/tflite] Support gpu delegate
Yongjoo Ahn [Thu, 5 Nov 2020 11:46:03 +0000 (20:46 +0900)]
[Android/tflite] Support gpu delegate

- Support gpu delegate for tflite-2.3.0

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
ffix

3 years ago[Android] Bump up the minimum SDK version
Yongjoo Ahn [Thu, 5 Nov 2020 09:52:16 +0000 (18:52 +0900)]
[Android] Bump up the minimum SDK version

- Tflite gpu delegate requires sdk version higher than 28
- Bump up the minimum sdk version from 24 to 28

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[Test/NNFW] fix invalid tc
Jaeyun [Fri, 6 Nov 2020 11:34:53 +0000 (20:34 +0900)]
[Test/NNFW] fix invalid tc

nnfw-1.10 was released and now supports dynamic dimension.
Enable testcases and fix invalid test conditions.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years agoAdd CII Best Practices Badges
MyungJoo Ham [Wed, 11 Nov 2020 06:21:21 +0000 (15:21 +0900)]
Add CII Best Practices Badges

LF-AI/Data recommends to maintain CII Best Practices checks.

This badge shows the status.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[gRPC/Packaging] Support packaging for nnstreamer-grpc accepted/tizen/unified/20201111.124810 submit/tizen/20201110.024714
Dongju Chae [Mon, 26 Oct 2020 11:52:41 +0000 (20:52 +0900)]
[gRPC/Packaging] Support packaging for nnstreamer-grpc

This patch supports packaging for nnstreamer-grpc.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[gRPC/Source] Implement gRPC tensor source
Dongju Chae [Mon, 26 Oct 2020 11:51:51 +0000 (20:51 +0900)]
[gRPC/Source] Implement gRPC tensor source

This patch implements gRPC tensor source as a server.
Its gRPC client mode is WIP.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[gRPC/protobuf] Implement a helper class for NNStreamer gRPC service
Dongju Chae [Mon, 26 Oct 2020 11:12:22 +0000 (20:12 +0900)]
[gRPC/protobuf] Implement a helper class for NNStreamer gRPC service

This patch implements a helper class for NNStreamer gRPC service.
It appends the definition of gRPC service to 'nnstreamer.proto'.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[unittest] Fix signed-unsigned comapre
Yongjoo Ahn [Fri, 6 Nov 2020 08:31:37 +0000 (17:31 +0900)]
[unittest] Fix signed-unsigned comapre

- Fix gtest's complaint about signed-unsinged comapre in unittest_if

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years agoUpdate test cases for dimension string when it is explicitly given in Pipeline
Sangjung Woo [Mon, 19 Oct 2020 07:45:10 +0000 (16:45 +0900)]
Update test cases for dimension string when it is explicitly given in Pipeline

If the dimension string is explicitly given in the pipeline, the
returned dimension string by g_object_get() should return the same
value. This patch update related test cases and adds a new one.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years agoUpdate dimension string when it is explicitly given in Pipeline
Sangjung Woo [Mon, 19 Oct 2020 07:42:40 +0000 (16:42 +0900)]
Update dimension string when it is explicitly given in Pipeline

Even though the dimension string of the input tensor is given in the
pipeline, the 'input` property is always fixed 4 dimensions (i.e.
d1:d2:d3:d4). This patch returns the dimension string considering tensor
dimension and rank count.

For example, given tensor filter parameters
'tensor_filter input=3:224:224', the returned dimension string is
'3:224:224' instead of '3:224:224:1'.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[Android] handle invalid context
Jaeyun [Mon, 2 Nov 2020 11:02:47 +0000 (20:02 +0900)]
[Android] handle invalid context

Handle invalid param case -init nnstreamer with invalid context.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Android] codeclean accepted/tizen/unified/20201104.122534 submit/tizen/20201104.062026
Jaeyun [Mon, 2 Nov 2020 11:22:21 +0000 (20:22 +0900)]
[Android] codeclean

1. move native methods registration to each file.
2. add new function to get data ptr in native.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[tensorfilter] Set default framework when no priority
Parichay Kapoor [Tue, 3 Nov 2020 05:40:17 +0000 (14:40 +0900)]
[tensorfilter] Set default framework when no priority

tensor_filter auto detection of framework takes in the extension
and for tflite extension tries to identify the framework using
a priority set with the configuration.
however, in case, the priority string is NULL, no tensor_filter
framework is set although multiple tensor_filters supporting
this extension can exist.

This patch sets a default framework for tflite extension which is
overwritten based on the priority if priority exists.

**Self evaluation:**
1. Build test: [x]Passed [ ]Failed [ ]Skipped
2. Run test: [x]Passed [ ]Failed [ ]Skipped

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
3 years ago[Android/tflite] Fix NNAPI inference bug
Yongjoo Ahn [Fri, 30 Oct 2020 07:47:33 +0000 (16:47 +0900)]
[Android/tflite] Fix NNAPI inference bug

- Use NNAPI delegate directly instead of deprecated `UseNNAPI` method.
- Resolve #2755.
- REF: https://github.com/tensorflow/tensorflow/commit/bf6f488c1102a88252960c4c8b90f6122e966b14

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[Android] fix invalid handle case
Jaeyun [Fri, 30 Oct 2020 11:07:16 +0000 (20:07 +0900)]
[Android] fix invalid handle case

Prevent invalid element handle case, compare element type when getting the element handle in hash table.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[android/test] Add negative test cases with Options
Yongjoo Ahn [Thu, 29 Oct 2020 07:00:12 +0000 (16:00 +0900)]
[android/test] Add negative test cases with Options

- Add three negative test cases for newly added `Options`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[android/SingleShot] Add Options class for configuring SingleShot instance
Yongjoo Ahn [Thu, 29 Oct 2020 06:59:15 +0000 (15:59 +0900)]
[android/SingleShot] Add Options class for configuring SingleShot instance

- Add Options to configure SingleShot instance preparing new features that might be added in future

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[Repo] Fix the assertion error when executing `gst-inspect-1.0 command
Sangjung Woo [Fri, 30 Oct 2020 02:11:47 +0000 (11:11 +0900)]
[Repo] Fix the assertion error when executing `gst-inspect-1.0 command

When executing `gst-inspect-1.0 tensor_reposrc' command, below error
occurs.
======================
$ gst-inspect-1.0 tensor_reposrc
...

** (gst-inspect-1.0:29483): CRITICAL **:
gst_tensor_repo_remove_repodata: assertion '_repo.initialized' failed
======================

The main reason that the disposal callback always removes the repodata
even though it is not initialized and it causes the assertion error.
This patch fixes that bug.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[TensorIF] Fix unit test fail on arm arch
gichan-jang [Wed, 28 Oct 2020 02:00:11 +0000 (11:00 +0900)]
[TensorIF] Fix unit test fail on arm arch

The pipeline state changed to NULL before saving the result file due to slow speed of arm.
Give enough time or wait until the file is created.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[Filter/tflite] Remove NNAPI option
Yongjoo Ahn [Thu, 29 Oct 2020 11:17:45 +0000 (20:17 +0900)]
[Filter/tflite] Remove NNAPI option

- Remove NNAPI custom prop
- Enable NNAPI after the accelerator property
- @todo Support appropriate delegates after the accelerator prop

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
3 years ago[Android/Build] remove unnecessary build flag
Jaeyun [Thu, 29 Oct 2020 11:37:26 +0000 (20:37 +0900)]
[Android/Build] remove unnecessary build flag

remove unnecessary build flag - nnapi in jni is for nn-runtime.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Test] Testcase for rank count logic in Tensor Filter
Sangjung Woo [Wed, 14 Oct 2020 01:58:04 +0000 (10:58 +0900)]
[Test] Testcase for rank count logic in Tensor Filter

This patch newly adds the test cases for rank count logic in Tensor
Filter.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[Filter] Add rank count logic to GstTensorFilterProperties
Sangjung Woo [Wed, 14 Oct 2020 01:52:06 +0000 (10:52 +0900)]
[Filter] Add rank count logic to GstTensorFilterProperties

This patch newly adds the rank count logic to GstTensorFilterProperties.
The rank count is automatically calculated based on the given dimension
string and NNStreamer rank count rule.

For example, given tensor filter parameters, input ranks are calculated
as follows.

* 'tensor_filter input=3:224:224': input rank is 3.
* 'tensor_filter input=3:224:224:1': input rank is 4.
* 'tensor_filter model=mobilenet_v1.tflite': input rank is 3 since input
  dimension of given model is '3:224:224'.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[README.md] Add hall-of-fame section to README.md
Dongju Chae [Wed, 28 Oct 2020 06:42:31 +0000 (15:42 +0900)]
[README.md] Add hall-of-fame section to README.md

This patch adds hall-of-fame section to README.md

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years agoFilter/TF2-Lite: remove unnecessary if in meson accepted/tizen/unified/20201029.124833 submit/tizen/20201028.073558
MyungJoo Ham [Mon, 21 Sep 2020 06:34:47 +0000 (15:34 +0900)]
Filter/TF2-Lite: remove unnecessary if in meson

TF2-Lite has all such data types enabled.
We do not need to check them.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years agoFilter/TF2-Lite: fix dependnecy big (meson)
MyungJoo Ham [Mon, 21 Sep 2020 07:13:25 +0000 (16:13 +0900)]
Filter/TF2-Lite: fix dependnecy big (meson)

tf2-lite should use tf2-lite dependency.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[tensor_filter_common] Fix a wrong example in accelerator prop spec
Bumsik Kim [Tue, 27 Oct 2020 04:28:15 +0000 (21:28 -0700)]
[tensor_filter_common] Fix a wrong example in accelerator prop spec

This patch fixes the wrong accelerator example in the prop spec.
This helps other developers to avoid confusions.
In actual tests, the true:(GPU,NPU,!CPU) format fails to be accepted so
that it switches to default mode. Also test cases do not cover such
format as well [1].

It also adds a note where to find available accelerator names.

[1]:
https://github.com/nnstreamer/nnstreamer/blob/main/tests/nnstreamer_filter_tensorflow_lite/runTest.sh#L108

Signed-off-by: Bumsik Kim <k.bumsik@gmail.com>
3 years ago[Dist/Debian] Move libcapi-nnstreamer.a and .so to the development package
Wook Song [Tue, 27 Oct 2020 09:13:25 +0000 (18:13 +0900)]
[Dist/Debian] Move libcapi-nnstreamer.a and .so to the development package

This patch removes libcapi-nnstreamer.a from the main package and moves
libcapi-nnstreamer.so to the development package.

Signed-off-by: Wook Song <wook16.song@samsung.com>
3 years ago[C-Api] prepare new APIs
Jaeyun [Fri, 23 Oct 2020 04:52:23 +0000 (13:52 +0900)]
[C-Api] prepare new APIs

prepare next ACR
- function to invoke with preallocated output handle
- function to open nn model with custom options

Change function names and add description for each API.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[TensorIF] Add testcases for tensor if
gichan-jang [Tue, 20 Oct 2020 09:57:14 +0000 (18:57 +0900)]
[TensorIF] Add testcases for tensor if

Add testcases for tensor_if element.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years agoDIST/Tizen: enable flatbuf for VD
MyungJoo Ham [Tue, 27 Oct 2020 04:51:55 +0000 (13:51 +0900)]
DIST/Tizen: enable flatbuf for VD

Flatbuf is required by tf-lite these days. Enable it.
Reported by Jongmin Lee.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[TensorIF] Supports tensor average option for compared value accepted/tizen/unified/20201027.124817 submit/tizen/20201027.002748
gichan-jang [Tue, 20 Oct 2020 08:00:11 +0000 (17:00 +0900)]
[TensorIF] Supports tensor average option for compared value

support tensor average option for compared value.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
Signed-off-by: gichan <gichan2.jang@samsung.com>
3 years ago[Build/ExtPlugin] Add registerer for ext plugins
Dongju Chae [Thu, 22 Oct 2020 04:59:37 +0000 (13:59 +0900)]
[Build/ExtPlugin] Add registerer for ext plugins

This patch adds registerer for ext plugins, including
- tizensensor
- grpc (TBA)

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[Fix/Debian] Add missing installation files (nnstreamer-check/capi)
Dongju Chae [Mon, 26 Oct 2020 05:38:12 +0000 (14:38 +0900)]
[Fix/Debian] Add missing installation files (nnstreamer-check/capi)

This patch adds missing installation files on Ubuntu packaging, mostly
related to capi and nnstreamer-check.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[Filter] Fix the omitted initialization of GstTensorFilterFrameworkInfo
Sangjung Woo [Mon, 26 Oct 2020 06:37:35 +0000 (15:37 +0900)]
[Filter] Fix the omitted initialization of GstTensorFilterFrameworkInfo

This patch initializes the omitted 'verify_model_path' value instead of
'allocate_in_invoke', which is set twice.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[NNFW] cache info from nnfw
Jaeyun [Thu, 22 Oct 2020 10:59:50 +0000 (19:59 +0900)]
[NNFW] cache info from nnfw

Cache nnfw tensors info and handle rank value when setting input info.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[NNFW/Log] common log util
Jaeyun [Thu, 22 Oct 2020 10:55:30 +0000 (19:55 +0900)]
[NNFW/Log] common log util

change log message (use common log util in nnstreamer)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[TensorIF] Supports other/tensor(s) in output format
gichan-jang [Tue, 20 Oct 2020 07:50:18 +0000 (16:50 +0900)]
[TensorIF] Supports other/tensor(s) in output format

Supports other/tensor(s) in output format.
 - Supported operator: All
 - Suppoted data type: All
 - Supported action: passthrough, skip, tensorpick. (Others will be added)
 - Output format: other/tensor or other/tensors

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[Filter/TFLite] option to set no of threads
Jaeyun [Fri, 16 Oct 2020 10:28:05 +0000 (19:28 +0900)]
[Filter/TFLite] option to set no of threads

add option to set the number of threads to tf-lite interpreter.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Test/Benchmark] benchmark with no output alloc
Jaeyun [Mon, 19 Oct 2020 09:09:06 +0000 (18:09 +0900)]
[Test/Benchmark] benchmark with no output alloc

1. update testcase for benchmark (single-shot no output allocation)
2. mark todo for next APIs

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[Tensor Transform] Fix unsupported orc type cast
gichan-jang [Tue, 20 Oct 2020 09:30:52 +0000 (18:30 +0900)]
[Tensor Transform] Fix unsupported orc type cast

Orc does not support 64bit integer typecast.
A problem occurs when the pipeline is launched with orc option,
  and then the option is changed using set_property to convert type int64 or uint64.
So disables the orc if the int64 or uint64 typecast is required.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[ONE/Android] prepare ONE-1.10.0 release
Jaeyun [Mon, 19 Oct 2020 08:27:05 +0000 (17:27 +0900)]
[ONE/Android] prepare ONE-1.10.0 release

prepare next ONE release (ver 1.10.0)
- change pkg name (nnfw -> onert)
- add new testcase to check dynamic dimension

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[TensorRate/Test] Add simple testcases for tensor_rate (not QoS events)
Dongju Chae [Mon, 19 Oct 2020 01:51:06 +0000 (10:51 +0900)]
[TensorRate/Test] Add simple testcases for tensor_rate (not QoS events)

This patch adds simple testcases for tensor_rate element, just adjusting
downstream framerate without sending QoS events to upstream elements.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[Filter/NNFW] dummy invoke after set-info called
Jaeyun [Tue, 6 Oct 2020 11:09:32 +0000 (20:09 +0900)]
[Filter/NNFW] dummy invoke after set-info called

When called set-info function, NNFW updates output shape after the invoke is done.
Add dummy invoke function and call it after input shape is changed.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years ago[TensorRate] Implement the prototype codes for tensor_rate element
Dongju Chae [Thu, 24 Sep 2020 08:26:12 +0000 (17:26 +0900)]
[TensorRate] Implement the prototype codes for tensor_rate element

This patch implements the prototype codes for 'tensor_rate' element.

'tensor_rate' will include two methods to adjust a frame rate.
1) Either drop or duplicate frames similar to 'videorate' plugin
2) Propagate a specified frame-rate to upstream elements.

As a prototype, most of codes are reused from 'videorate' sources codes,
and still many things should be revised according to the tensor concept.

But, at least, its functionality was checked if we run this pipeline.

gst-launch-1.0 videotestsrc
   ! video/x-raw,width=640,height=480,framerate=15/1
   ! tensor_converter
   ! tensor_rate framerate=10/1
   ! tensor_decoder mode=direct_video
   ! videoconvert
   ! autovideosink

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
3 years ago[TensorIF] Add basic action option
gichan-jang [Tue, 13 Oct 2020 10:06:27 +0000 (19:06 +0900)]
[TensorIF] Add basic action option

Add basic action option: PASSTHROUGH, SKIP, TENSORPICK

 Supported operator: All
 Suppoted data type: All
 Supported action: passthrough, skip, tensorpick. (Others will be added)

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years agoDocker: move location, shorten build script.
MyungJoo Ham [Tue, 13 Oct 2020 02:04:36 +0000 (11:04 +0900)]
Docker: move location, shorten build script.

1. Move dockerfile location (/docker/... --> /tools/docker)
2. Run ninja once and do install and build.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[docker] Add ubuntu16.04/18.04 devel Dockerfile
JeonChangMin [Thu, 10 Sep 2020 17:54:54 +0000 (02:54 +0900)]
[docker] Add ubuntu16.04/18.04 devel Dockerfile
Add Dockerfile for ubuntu16.04/18.04 nnstreamer build using meson/ninja

Signed-off-by: JeonChangMin <imsameperson@gmail.com>
3 years ago[docker] Add ubuntu16.04/18.04 runtime Dockerfile
JeonChangMin [Thu, 10 Sep 2020 17:54:10 +0000 (02:54 +0900)]
[docker] Add ubuntu16.04/18.04 runtime Dockerfile
Add Dockerfile for ubuntu16.04/18.04 nnstreamer runtime using ppa

Signed-off-by: JeonChangMin <imsameperson@gmail.com>
3 years ago[Log/TF-lite] print average invoke time
Jaeyun [Wed, 14 Oct 2020 07:50:02 +0000 (16:50 +0900)]
[Log/TF-lite] print average invoke time

add debug log in invoke function to print average time.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
3 years agoTest/Fix golden data.
MyungJoo Ham [Tue, 13 Oct 2020 01:36:41 +0000 (10:36 +0900)]
Test/Fix golden data.

The golden data itself had bugs :(

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years agoDecoder/BoundingBox: fix resolution decoding
MyungJoo Ham [Wed, 7 Oct 2020 13:11:02 +0000 (22:11 +0900)]
Decoder/BoundingBox: fix resolution decoding

draw() assumes that the "results" have coordinates based on
input resolutions, not output resolutions

Fixes #2781

Reported-by: @giladnahor
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years ago[Example/Meson] Fix the buildbreak of custom_example_tensorrt example
Sangjung Woo [Wed, 14 Oct 2020 07:18:49 +0000 (16:18 +0900)]
[Example/Meson] Fix the buildbreak of custom_example_tensorrt example

Because of the wrong file path in meson script, below error occurs when
running 'meson build' command. This patch fixes that bug.

* Error message: nnstreamer_example/meson.build:98:2: ERROR: File
  nnstreamer_customfilter_example_tensorrt_reshape.cc does not exist.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
3 years ago[TensorIF] Support generic type
gichan-jang [Wed, 23 Sep 2020 10:14:08 +0000 (19:14 +0900)]
[TensorIF] Support generic type

Support generic type for compared value and supplied value

float typed is supported for supplied value.
  - e.g., supplied-value=2.23e+1,2.0E+2

Supported operator: All
Suppoted data type: All
Supported action: Not given. Just operate as passthrough(TRUE) and skip(FALSE)

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
3 years ago[Example] Place build intermediates of custom filters on the same directory
Wook Song [Mon, 5 Oct 2020 10:30:46 +0000 (19:30 +0900)]
[Example] Place build intermediates of custom filters on the same directory

As the custom filters are installed into the same directory, this
patch places the build intermediates of custom filters, which are used
in the test cases at the build-time, on the same directory to reduce
unnecessary complexity in the test cases.

Signed-off-by: Wook Song <wook16.song@samsung.com>
3 years ago[Example] Relocate custom filters for unittest_sink to nnstreamer_example
Wook Song [Tue, 6 Oct 2020 04:55:53 +0000 (13:55 +0900)]
[Example] Relocate custom filters for unittest_sink to nnstreamer_example

In order to simplify the path of custom filters used in the test cases,
this patch relocates the custom filters, nncustom_drop_buffer and
nncustom_framecounter, for unittest_sink to the nnstreamer_example
directory.

Signed-off-by: Wook Song <wook16.song@samsung.com>