platform/upstream/nnstreamer.git
2 years ago[TEST] Modify query test
gichan [Wed, 8 Jun 2022 01:07:49 +0000 (10:07 +0900)]
[TEST] Modify query test

 - Some parameters are removed, change the query test.
 - Apply back ground test

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Edge] Tensor query TCP connection
gichan [Wed, 8 Jun 2022 00:55:44 +0000 (09:55 +0900)]
[Edge] Tensor query TCP connection

Implement tensor query TCP connection using nnstreamer-edge lib.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years agodoc/distro-features: update features per distro
MyungJoo Ham [Thu, 14 Jul 2022 08:28:34 +0000 (17:28 +0900)]
doc/distro-features: update features per distro

Update the list of features deployed via distro releases.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Android] Update file list of nnstreamer elements
Sangjung Woo [Wed, 6 Jul 2022 02:19:34 +0000 (11:19 +0900)]
[Android] Update file list of nnstreamer elements

Since the paths and names of nnstreamer elements are changed, this patch
updates the Android NDK build file.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Doc] Update markdown file list of nnstreamer elements
Sangjung Woo [Wed, 6 Jul 2022 01:36:55 +0000 (10:36 +0900)]
[Doc] Update markdown file list of nnstreamer elements

Since the paths and names of nnstreamer elements are changed, this patch
updates the markdown file list of nnstreamer elements.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Common] Reduce Dependency complexity to increase the SAM score
Sangjung Woo [Sun, 3 Jul 2022 14:14:12 +0000 (23:14 +0900)]
[Common] Reduce Dependency complexity to increase the SAM score

There are lots of modules in /get/nnstreamer folder and it causes a high
dependency complexity. This patch reduces the module number by
integrating elements. Eventually it increases the DEP score from 2.73
to 5.0.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Gst/MQTT/Sink] fix: Remove duplicated g_free for the message buffer
Yechan Choi [Tue, 19 Jul 2022 06:00:11 +0000 (15:00 +0900)]
[Gst/MQTT/Sink] fix: Remove duplicated g_free for the message buffer

This patch remove duplicated g_free for the message buffer(self->mqtt_msg_buf).

Signed-off-by: Yechan Choi <yechan9.choi@samsung.com>
2 years agodoc/edge-ai: update documentation
MyungJoo Ham [Thu, 14 Jul 2022 02:40:45 +0000 (11:40 +0900)]
doc/edge-ai: update documentation

Add more explanation on edge-AI / among-device AI

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodoc/component-description: apply recent updates.
MyungJoo Ham [Thu, 7 Jul 2022 08:04:05 +0000 (17:04 +0900)]
doc/component-description: apply recent updates.

We now have a lot more elements and features.
Update component desciption accordingly.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Svace] init member variables
Jaeyun [Mon, 18 Jul 2022 07:30:53 +0000 (16:30 +0900)]
[Svace] init member variables

Fix svace issue, initialize member variables in constructor.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Svace] fix svace issues
Jaeyun [Fri, 15 Jul 2022 09:11:42 +0000 (18:11 +0900)]
[Svace] fix svace issues

Fix svace issue, handle memory boundary and return code in test.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[test/tvm] Apply Test Fixture to remove redundant code
Sangjung Woo [Tue, 5 Jul 2022 16:22:29 +0000 (01:22 +0900)]
[test/tvm] Apply Test Fixture to remove redundant code

To remove duplicate code in each test case, this patch applies the test
fixture framework of Google Test. It helps focus on the test case
without considering model loading, or memory allocation.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[TEST/query] Do not use fixed port number
gichan [Thu, 14 Jul 2022 02:14:01 +0000 (11:14 +0900)]
[TEST/query] Do not use fixed port number

Do not use fix port number.
Let's get an available port number so that multiple tests do not use the same port number.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Tests/Meson] Copy bmp2png to the tests directory every build time
Wook Song [Thu, 30 Jun 2022 10:56:06 +0000 (19:56 +0900)]
[Tests/Meson] Copy bmp2png to the tests directory every build time

In order to enforce to keep ./tests/bmp2png the same as the one in the
build directory, this patch modifies the meson build script to copy
bmp2png to the tests directory from the build directory every build time.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years agofilter/python3: support multi-threaded python custon filters.
MyungJoo Ham [Thu, 7 Jul 2022 08:04:49 +0000 (17:04 +0900)]
filter/python3: support multi-threaded python custon filters.

Use Python GIL for multi-threaded python custom filters.
Don't use a local lock, use GIL.

Fixes #3822

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
ps. The execution result of CV2 enabled python code of #3822:

```
$ gst-launch-1.0 videotestsrc num-buffers=10 ! video/x-raw,format=RGB,width=280,height=40 ! tensor_converter ! tensor_filter framework=python3 model=p2.py input=3:280:40:1 inputtype=uint8 output=3:280:40:1 outputtype=uint8  ! tensor_decoder mode=direct_video ! videoconvert ! ximagesink
init_filter_py:844
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
--- USE_CV2:True /source/AutoDrv/NNStreamer/tests/p2.py (33600,)
Got EOS from element "pipeline0".
Execution ended after 0:00:00.333332913
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
```

2 years ago[github-action] Run GBS in github-action
MyungJoo Ham [Wed, 6 Jul 2022 04:54:52 +0000 (13:54 +0900)]
[github-action] Run GBS in github-action

Run gbs in github-action for more Tizen testing.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodoc/coding-convention: update the changes of recent years.
MyungJoo Ham [Wed, 6 Jul 2022 09:37:16 +0000 (18:37 +0900)]
doc/coding-convention: update the changes of recent years.

Coding convention for C++ has become more concrete and the components of nnstreamer and its neighbor have been updated.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Tests] Remove unnecessary line feeds in the runTest.sh files
Wook Song [Thu, 7 Jul 2022 03:40:28 +0000 (12:40 +0900)]
[Tests] Remove unnecessary line feeds in the runTest.sh files

This patch removes unnecessary line feed in the middle of the string
from the runTest.sh files.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[Tests/Query] Revise runTest.sh to support macOS
Wook Song [Fri, 1 Jul 2022 11:57:09 +0000 (20:57 +0900)]
[Tests/Query] Revise runTest.sh to support macOS

grep in macOS does not have -P, --perl-regexp. In addition, the stat's
option to specify a format also differs from that of Linux distros. This
patch revises runTest.sh to support macOS by applying the above
differences.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[tests/gRPC] Change the hard-coded shared object's extension
Wook Song [Tue, 5 Jul 2022 09:01:41 +0000 (18:01 +0900)]
[tests/gRPC] Change the hard-coded shared object's extension

This patch changes the hard-coded string, indicating the shared object's
extension, to SO_EXT provided by the SSAT API.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[tests/gRPC] Use ssat-api to check the size of marker.log
Wook Song [Tue, 5 Jul 2022 08:52:58 +0000 (17:52 +0900)]
[tests/gRPC] Use ssat-api to check the size of marker.log

In order to make the test script more portable, this patch changes the
stat command line checking the size of marker.log to the universal
command provided by the SSAT API.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years agodoc/API-reference: elaborate the document.
MyungJoo Ham [Wed, 6 Jul 2022 09:31:32 +0000 (18:31 +0900)]
doc/API-reference: elaborate the document.

Add some explanations to the topic lists.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Edge] migrating edge library accepted/tizen/unified/20220707.133441 submit/tizen/20220706.100329
Jaeyun [Wed, 6 Jul 2022 04:58:49 +0000 (13:58 +0900)]
[Edge] migrating edge library

Prepare uploading edge library.
- temporally rename edge library in nnstreamer
- remove unnecessary param in edge APIs

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Tests/gRPC] Prepare a fallback value for PATH_TO_PLUGIN
Wook Song [Thu, 30 Jun 2022 08:55:25 +0000 (17:55 +0900)]
[Tests/gRPC] Prepare a fallback value for PATH_TO_PLUGIN

In case NNSTREAMER_BUILD_ROOT_PATH is not defined, the test cases for
gRPC might run in an unintentional way. To this end, this patch adds a
fallback value for PATH_TO_PLUGIN to runTest.sh.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years agodist/Ubuntu: enable Float16 support
MyungJoo Ham [Tue, 21 Jun 2022 04:48:30 +0000 (13:48 +0900)]
dist/Ubuntu: enable Float16 support

Enable Float16 support in deb build.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodist/Tizen: Enable FLOAT16 in Tizen x64/arm64/arm32
MyungJoo Ham [Tue, 21 Jun 2022 04:46:07 +0000 (13:46 +0900)]
dist/Tizen: Enable FLOAT16 in Tizen x64/arm64/arm32

Although tensor-transform doesn't support fp16, yet,
let's enable fp16 support for further development.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotest: float16 arithmetic
MyungJoo Ham [Wed, 22 Jun 2022 05:37:25 +0000 (14:37 +0900)]
test: float16 arithmetic

By default, float16 tests are not critical.
However, if the envvar, "FLOAT16_SUPPORTED" is 1, they become
critical.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotensor-transform: float16 support.
MyungJoo Ham [Fri, 17 Jun 2022 04:26:33 +0000 (13:26 +0900)]
tensor-transform: float16 support.

ORC/SIMD support not included.
Float16 w/ heavy tensor-transform is not recommended.

- Generate error if float16 is used in unsupported build
- Generate warning if float16 op is used too heavily (it's slow!)
- Future todo: support SIMD for float16 ops

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotensor-filter subplugins: add FLOAT16 support
MyungJoo Ham [Fri, 17 Jun 2022 02:26:55 +0000 (11:26 +0900)]
tensor-filter subplugins: add FLOAT16 support

Add float16 support for a few subplugins
with possible float16 usages.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoIntroduce FLOAT16 stream type
MyungJoo Ham [Fri, 10 Jun 2022 04:26:04 +0000 (13:26 +0900)]
Introduce FLOAT16 stream type

Add FLOAT16 type.
Fortunately, gcc for x64, aarch64, and arm has extension for
float16.

@todo: update meson script so that arch-specific compiler
options for float16 can be added if float16 is enabled.

Addressed #3784

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[gRPC/Common] Modify hard-coded strings indicating sub-plugins' names
Wook Song [Thu, 30 Jun 2022 08:42:17 +0000 (17:42 +0900)]
[gRPC/Common] Modify hard-coded strings indicating sub-plugins' names

This patch modifies the hard-coded strings (e.g., libnnstreamer_grpc_*.so)
which indicate the file name of the sub-plugins to use the pre-defined
file extensions according to the platform.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[Ext/Meson] Use find_program() instead of 'which'
Wook Song [Thu, 30 Jun 2022 11:07:05 +0000 (20:07 +0900)]
[Ext/Meson] Use find_program() instead of 'which'

This patch changes the way to find 'grpc_cpp_plugin' to use
find_program(), the built-in function provided by Meson.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[Edge] prepare migration
Jaeyun [Mon, 27 Jun 2022 10:53:25 +0000 (19:53 +0900)]
[Edge] prepare migration

Change header name for nnstreamer edge library.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] refactoring edge cmd
Jaeyun [Fri, 24 Jun 2022 10:47:02 +0000 (19:47 +0900)]
[Edge] refactoring edge cmd

Refactoring to send/receive edge command and buffer.
- define command info struct to handle command, id, and memories.
- util functions to init, clear edge command.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] client IDs in handle
Jaeyun [Wed, 22 Jun 2022 08:02:03 +0000 (17:02 +0900)]
[Edge] client IDs in handle

Remove global table for client IDs, and move it to edge handle.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] new function to invoke event callback
Jaeyun [Wed, 15 Jun 2022 08:44:20 +0000 (17:44 +0900)]
[Edge] new function to invoke event callback

Add new function to invoke event and export edge-event functions.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Filter/TFLite] Fix model tensors allocation not working for some delegates
Julien Vuillaumier [Tue, 28 Jun 2022 07:31:40 +0000 (09:31 +0200)]
[Filter/TFLite] Fix model tensors allocation not working for some delegates

This change is correction for error below reported by the TFlite library
during Invoke():

"Invoke called on model that is not ready."

Tensors allocation may be done by TFLite framework during call to
ModifyGraphWithDelegate() but that is not guaranteed.
Therefore, even if delegates are used, tensors allocation must be done
explicitly with AllocateTensors(), prior to inferencing with Invoke().

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Edge] invalid data info when copying edge data
Jaeyun [Fri, 24 Jun 2022 06:05:29 +0000 (15:05 +0900)]
[Edge] invalid data info when copying edge data

Fix mem leak and invalid data info when copying edge-data.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] util functions for edge data
Jaeyun [Mon, 20 Jun 2022 07:56:26 +0000 (16:56 +0900)]
[Edge] util functions for edge data

Add new functions for edge data.
- The edge-data type is unnecessary when creating data handle.
- Client ID will be used in the pipeline, as a meta of buffer.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] code clean
Jaeyun [Mon, 20 Jun 2022 08:11:23 +0000 (17:11 +0900)]
[Edge] code clean

Code clean, check returned err-code and params. Prevent null ptr exception case.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] base code for mutex lock
Jaeyun [Fri, 10 Jun 2022 10:51:47 +0000 (19:51 +0900)]
[Edge] base code for mutex lock

Update macros and mutex lock in edge handle.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[trivial] Fix typos in the spec file
Yongjoo Ahn [Mon, 20 Jun 2022 04:52:54 +0000 (13:52 +0900)]
[trivial] Fix typos in the spec file

- Fix some typos in `nnstreamer.spec`.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Edge] Add tcp implementation
gichan [Tue, 7 Jun 2022 09:39:01 +0000 (18:39 +0900)]
[Edge] Add tcp implementation

 - Add NNStreamer-edge TCP implementation.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Edge] possible mem leak
Jaeyun [Fri, 17 Jun 2022 02:18:29 +0000 (11:18 +0900)]
[Edge] possible mem leak

Fix svace issue, mem leak case when connection is failed.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agotest/grpc: correct parallel unit test calls
MyungJoo Ham [Thu, 9 Jun 2022 08:37:52 +0000 (17:37 +0900)]
test/grpc: correct parallel unit test calls

1. Do not fork ssat-api functions
2. Do not sleep constant time. Check the launch process.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Edge] remove unnecessary function
Jaeyun [Tue, 14 Jun 2022 07:39:15 +0000 (16:39 +0900)]
[Edge] remove unnecessary function

Code clean, remove unnecessary function and fix invalid return.
The edge-handle may have multiple connections, checking connection is unnecessary.
Instead, we will add internal function for each socket.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Doc] Add yocto daily build result in README.md
Yongjoo Ahn [Mon, 13 Jun 2022 08:06:10 +0000 (17:06 +0900)]
[Doc] Add yocto daily build result in README.md

- Add a link to build result of yocto (nnstreamer/meta-neural-network)

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[spec] Fix spec to cut the depedency on custom tflite in 64-bit accepted/tizen/unified/20220615.135323 submit/tizen/20220614.100238
Yongjoo Ahn [Tue, 14 Jun 2022 08:34:15 +0000 (17:34 +0900)]
[spec] Fix spec to cut the depedency on custom tflite in 64-bit

- In 64-bit the dep is like "libtensorflow2-lite-custom.so()(64bit)"
- To cut this properly, replace "so" with "*"

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years agotests: build error w/ higher gcc & lower gtest submit/tizen/20220614.070712
MyungJoo Ham [Thu, 2 Jun 2022 08:58:08 +0000 (17:58 +0900)]
tests: build error w/ higher gcc & lower gtest

If you have gcc >= 11 and gtest <= 1.8, you may have build errors:

/usr/src/gtest/src/gtest-death-test.cc: In function â€˜bool testing::internal::StackGrowsDown()’:
/usr/src/gtest/src/gtest-death-test.cc:1009:24: error: â€˜dummy’ may be used uninitialized [-Werror=maybe-uninitialized]
 1009 |   StackLowerThanAddress(&dummy, &result);
      |   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/usr/src/gtest/src/gtest-death-test.cc:999:6: note: by argument 1 of type â€˜const void*’ to â€˜void testing::internal::StackLowerThanAddress(const void*, bool*)’ declared here
  999 | void StackLowerThanAddress(const void* ptr, bool* result) {
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/src/gtest/src/gtest-death-test.cc:1007:7: note: â€˜dummy’ declared here
 1007 |   int dummy;
      |       ^~~~~

As gtest's code is not our test target, let the compiler ignore warnings of gtest codes.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Edge] add mqtt functions
Jaeyun [Wed, 11 May 2022 07:29:20 +0000 (16:29 +0900)]
[Edge] add mqtt functions

Add internal functions to handle mqtt message.
This is initial commit for mqtt-hybrid feature after separating the edge library.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] handle magic validation
Jaeyun [Fri, 10 Jun 2022 10:12:39 +0000 (19:12 +0900)]
[Edge] handle magic validation

Before adding mutex lock, update magic validation.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agotest/query: update gtest utc for updated protocol property.
MyungJoo Ham [Thu, 9 Jun 2022 07:42:03 +0000 (16:42 +0900)]
test/query: update gtest utc for updated protocol property.

We now use enum type for protocol property, which is NO MORE case insensitive.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoQuery: fix protocol property handling
MyungJoo Ham [Thu, 9 Jun 2022 04:44:15 +0000 (13:44 +0900)]
Query: fix protocol property handling

Protocols are enum. Use enum-param, not int or string.
With this, users can use both numbers and enum-strings.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodoc/filter subplugin: brief guide on how to write subplugin
MyungJoo Ham [Wed, 8 Jun 2022 04:59:39 +0000 (13:59 +0900)]
doc/filter subplugin: brief guide on how to write subplugin

To clarify which mechanism to use for new tensor-filter subplugin,
added a short guide on how to write tensor-filter subplugin.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodeb: cut the dependency on custom tflite binary
MyungJoo Ham [Tue, 19 Apr 2022 10:23:50 +0000 (19:23 +0900)]
deb: cut the dependency on custom tflite binary

Custom tflite binary is supposed to be installed by users
afterwards.

Thus, cut the dependency from the deb packaging.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodist: cut the dependency on custom tflite binary
MyungJoo Ham [Tue, 19 Apr 2022 07:41:24 +0000 (16:41 +0900)]
dist: cut the dependency on custom tflite binary

Custom tflite binary is supposed to be installed by users
afterwards.

Thus, cut the dependency from the rpm packaging.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoTensorflow-lite custom bin support: Plan B implemented
MyungJoo Ham [Thu, 14 Apr 2022 11:29:13 +0000 (20:29 +0900)]
Tensorflow-lite custom bin support: Plan B implemented

This addresses plan B of #3713

$ ldd build/ext/nnstreamer/tensor_filter/libnnstreamer_filter_tensorflow2-lite-custom.so
linux-vdso.so.1 (0x00007fffe21f2000)
libnnstreamer-single.so => /source/AutoDrv/NNStreamer/build/ext/nnstreamer/tensor_filter/../../../gst/nnstreamer/libnnstreamer-single.so (0x00007f08b5bba000)
/source/AutoDrv/NNStreamer/ext/nnstreamer/tensor_filter/libtensorflow2-lite-custom.so (0x00007f08b50a5000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f08b4ea1000)
libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f08b4b8a000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f08b477d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f08b4565000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f08b4174000)
libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f08b3f70000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f08b3d1c000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f08b3afd000)
/lib64/ld-linux-x86-64.so.2 (0x00007f08b5ff8000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f08b388b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f08b34ed000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f08b32e5000)

After this, we need the following commits.
1. a manual how to use tflite2-custom. (at /ext/nnstreamer/tensor-filter?)
2. a test case for tflite2-custom.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotest/query: parallel client launching shouldn't use gstTest
MyungJoo Ham [Thu, 9 Jun 2022 08:23:43 +0000 (17:23 +0900)]
test/query: parallel client launching shouldn't use gstTest

Don't use & fork with bash function.
Add timeout for launching.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agobash scripts: use python3 instead of python
MyungJoo Ham [Wed, 8 Jun 2022 01:39:49 +0000 (10:39 +0900)]
bash scripts: use python3 instead of python

We are removing python2 dependencies.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodist/Ubuntu: remove python2 dependency
MyungJoo Ham [Thu, 2 Jun 2022 07:20:50 +0000 (16:20 +0900)]
dist/Ubuntu: remove python2 dependency

Use python3 instead.
Addressing #3774

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodist/Tizen: remove python2 dependency.
MyungJoo Ham [Thu, 2 Jun 2022 06:52:24 +0000 (15:52 +0900)]
dist/Tizen: remove python2 dependency.

Use python3 instead.
Addressing #3774

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agopython scripts: use python3 instead of python in shebang.
MyungJoo Ham [Thu, 2 Jun 2022 06:50:48 +0000 (15:50 +0900)]
python scripts: use python3 instead of python in shebang.

From tests/*, tools/*, removing the usage of python3, update shebang.
Addressing #3774

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Log] use internal log function
Jaeyun [Thu, 9 Jun 2022 03:40:45 +0000 (12:40 +0900)]
[Log] use internal log function

Replace logutil - glib funcs, use predefined log functions.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agotest/query: use get_available_port.py
MyungJoo Ham [Thu, 9 Jun 2022 06:56:57 +0000 (15:56 +0900)]
test/query: use get_available_port.py

Use get_available_port.py instead of RANDOM number.
Moved get_available_port.py from nnstreamer_grpc to tests as it has now become a common test utility.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotest/query: wait for server launching, not 5 sec.
MyungJoo Ham [Wed, 8 Jun 2022 06:29:36 +0000 (15:29 +0900)]
test/query: wait for server launching, not 5 sec.

1. With busy CI servers, you don't know how much time it takes
to launch tensor-query-server instances.

Thus, wait for the pipeline launching, not a constant time.

Besides, you can use "wait" command for server exit.

2. Do not use & for ssat apis.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[filter/deepview-rt] Add filter subplugin for DeepViewRT
Julien Vuillaumier [Mon, 16 May 2022 16:59:52 +0000 (18:59 +0200)]
[filter/deepview-rt] Add filter subplugin for DeepViewRT

This change implements a tensor filter subplugin to interface
with DeepViewRT inference engine:
https://www.embeddedml.com/deepviewrt

Plugin can be instanciated using NNStreamer filter element
with relevant properties:

tensor_filter framework=deepview-rt model=<rtm model file>
              [custom=[Engine:<path to engine shared lib>]
                      [Cache:<cache size in MiB>]
                      [MemPool:<memory pool size in MiB>]]

SSAT test suite addition for DeepView RT tensor filter plugin.

Sample model (mobilenet_v1_0.25_224.rtm) is derived from public
tflite model, converted to rtm format per procedure below:
$ wget http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_0.25_224.tgz
$ tar xvf mobilenet_v1_0.25_224.tgz
$ deepview-converter  ./mobilenet_v1_0.25_224.tflite ./mobilenet_v1_0.25_224.rtm

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Edge] base code for edge event
Jaeyun [Thu, 12 May 2022 11:24:34 +0000 (20:24 +0900)]
[Edge] base code for edge event

Update base code to handle edge event.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] code clean
Jaeyun [Thu, 12 May 2022 10:55:50 +0000 (19:55 +0900)]
[Edge] code clean

1. Fix code style and condition to set raw data.
2. Use malloc instead of glib function.

TODO: implement lock to handle edge handles.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agofilter:tf-lite2-custom usage manual
MyungJoo Ham [Fri, 15 Apr 2022 07:45:13 +0000 (16:45 +0900)]
filter:tf-lite2-custom usage manual

For #3713, add a usage manual because it may be not too trivial
for non-system-sw developers.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[meson] Fix Yocto Kirkstone build issue
Julien Vuillaumier [Fri, 3 Jun 2022 09:11:47 +0000 (11:11 +0200)]
[meson] Fix Yocto Kirkstone build issue

A build configuration error is seen on Yocto Kirkstone (4.0)
coming from commit:
https://github.com/nnstreamer/nnstreamer/commit/0584ce06e30f1dbb188bce2b370df53d335046dd

Signature of error:
meson.build:505:4: ERROR: Command "//recipe-sysroot-native/usr/bin/python3-native/python3 -m site --user-site" failed with status 1

Building with Yocto, native tools are sandboxed in build workspace,
there is no python user site.
This change is to prevent meson configuration to break when no user
site package is present.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Meson] Fix warnings related to the run_command call
Wook Song [Mon, 23 May 2022 07:57:45 +0000 (16:57 +0900)]
[Meson] Fix warnings related to the run_command call

This patch sets the keyword argument, 'check', of the run_command
function to true in order to fix the following warnings:

WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[decoder/bounding_box] Fix ssd box decoding without postprocessing
Julien Vuillaumier [Tue, 31 May 2022 08:43:29 +0000 (10:43 +0200)]
[decoder/bounding_box] Fix ssd box decoding without postprocessing

Boxes whose detection scores do not exceed the specified sigmoid
threshold shall never be reported as valid.

This changeset fixes current implementation whereby valid field
for a box is set only when its detection scores have passed the
threshold tests. Thus, if score test is not passed, valid field for
a box is inherited from the previous box score tests.

Therefore without this change, whenever one box passes the score
criteria, every subsequent boxes will be reported as valid, even though
their detection scores are low.
As a consequence, a very big number of boxes may be passed to the
next stage of NMS processing which causes processing overhead.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[macOS/Doc] Replace 'nnsuite' with 'nnstreamer'
Wook Song [Tue, 31 May 2022 14:54:19 +0000 (23:54 +0900)]
[macOS/Doc] Replace 'nnsuite' with 'nnstreamer'

This patch replaces the old organization name, nnsuite, remaining
in the Getting Started document with the current one, nnstreamer.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[Tests/IF] Fix a build error related to -Winconsistent-missing-override
Wook Song [Tue, 31 May 2022 01:19:59 +0000 (10:19 +0900)]
[Tests/IF] Fix a build error related to -Winconsistent-missing-override

This patch fixes the following build error while compiling with clang in
macOS.

With clang in macOS:

../tests/nnstreamer_if/unittest_if.cc:65:8: error: 'TearDown' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
  void TearDown ()
       ^
/opt/homebrew/Cellar/googletest/1.11.0/include/gtest/gtest.h:481:16: note: overridden virtual function is here
  virtual void TearDown();
               ^
1 error generated.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[macOS/meson] Add a missing parameter to the sed's in-place edit option
Wook Song [Mon, 23 May 2022 09:17:41 +0000 (18:17 +0900)]
[macOS/meson] Add a missing parameter to the sed's in-place edit option

In macOS, the '-i' option of the sed command requires a parameter to
tell what extension to use for the backup file. To this end, this patch
appends '.bak' to the '-i' option to fix the build errors on macOS.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[mxnet] Add Doxygen tags for Predictor.hh
Muhwan Kim [Sun, 22 May 2022 19:48:21 +0000 (04:48 +0900)]
[mxnet] Add Doxygen tags for Predictor.hh

To suppress CI's complain and specify where this code came from.

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Change license of test code to LGPL-2.1
Muhwan Kim [Sun, 22 May 2022 19:42:06 +0000 (04:42 +0900)]
[mxnet] Change license of test code to LGPL-2.1

Detailed discussion here: PR #3742

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Use __FILE__ instead of hard-coded path to generate log message
Muhwan Kim [Sun, 22 May 2022 19:40:53 +0000 (04:40 +0900)]
[mxnet] Use __FILE__ instead of hard-coded path to generate log message

__FILE__ macro is better, elegant way to print file names.

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Use copy option to suppress deprecation warning
Muhwan Kim [Sun, 1 May 2022 18:53:03 +0000 (03:53 +0900)]
[mxnet] Use copy option to suppress deprecation warning

meson have copy option for this usage

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Use official MXNet MXDType
Muhwan Kim [Sun, 1 May 2022 18:49:35 +0000 (03:49 +0900)]
[mxnet] Use official MXNet MXDType

Use datatype enum from MXNet instead of copied one

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Include nnstreamer_plugin_api.h
Muhwan Kim [Sun, 1 May 2022 18:48:29 +0000 (03:48 +0900)]
[mxnet] Include nnstreamer_plugin_api.h

Use nnstreamer_plugin_api.h which is recommended

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Fix minor format issue
Muhwan Kim [Sun, 1 May 2022 18:36:33 +0000 (03:36 +0900)]
[mxnet] Fix minor format issue

Add newline character to reduce line length

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Use kFileLocation instead of kFileUrl
Muhwan Kim [Sun, 1 May 2022 18:34:33 +0000 (03:34 +0900)]
[mxnet] Use kFileLocation instead of kFileUrl

We can still generate good message using kFileLocation.

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Fix typo
Muhwan Kim [Sun, 1 May 2022 18:32:42 +0000 (03:32 +0900)]
[mxnet] Fix typo

Fix typo speces -> spaces

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Change license of test script to LGPL-2.1
Muhwan Kim [Sun, 1 May 2022 18:31:55 +0000 (03:31 +0900)]
[mxnet] Change license of test script to LGPL-2.1

For this, being LGPL 2.1 doesn't incur problems (in PR #3742)

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Fix install directory of tests
Muhwan Kim [Sun, 1 May 2022 18:08:55 +0000 (03:08 +0900)]
[mxnet] Fix install directory of tests

Fix typo of unittest_filter_mxnet install directory reference.

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Add mxnet related variables in nnstreamer.mk
makesource [Tue, 26 Apr 2022 13:10:13 +0000 (22:10 +0900)]
[mxnet] Add mxnet related variables in nnstreamer.mk

Add NNSTREAMER_FILTER_MXNET_SRCS vars in nnstreamer.mk

Signed-off-by: makesource <makesource@gmail.com>
2 years ago[mxnet] Add unistd.h header in tensor_filter_mxnet
makesource [Tue, 26 Apr 2022 13:07:30 +0000 (22:07 +0900)]
[mxnet] Add unistd.h header in tensor_filter_mxnet

Add unistd.h header to use R_OK macro.

Signed-off-by: makesource <makesource@gmail.com>
2 years ago[mxnet] Disable name mangling
makesource [Tue, 26 Apr 2022 12:51:53 +0000 (21:51 +0900)]
[mxnet] Disable name mangling

Disable name mangling for init_filter_mxnet, fini_filter_mxnet functions.

Signed-off-by: makesource <makesource@gmail.com>
2 years ago[mxnet] Add doxygen tags on top of simple_test_mxnet.cc
Muhwan Kim [Sun, 24 Apr 2022 05:17:36 +0000 (14:17 +0900)]
[mxnet] Add doxygen tags on top of simple_test_mxnet.cc

Add omitted some tags on top

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Convert comments into doxygen style
Muhwan Kim [Sun, 24 Apr 2022 04:48:14 +0000 (13:48 +0900)]
[mxnet] Convert comments into doxygen style

Convert original comments into @brief of doxygen style comments

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Initialize sourceid before use
Muhwan Kim [Sat, 23 Apr 2022 08:35:31 +0000 (17:35 +0900)]
[mxnet] Initialize sourceid before use

Added initialize of sourceid

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Fix build error in test code
Muhwan Kim [Wed, 6 Apr 2022 14:42:05 +0000 (23:42 +0900)]
[mxnet] Fix build error in test code

Fix the unused variable errors by adding UNUSED lines

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Fix unused parameter error
Muhwan Kim [Wed, 23 Mar 2022 08:23:30 +0000 (17:23 +0900)]
[mxnet] Fix unused parameter error

Fix build error by adding UNUSED lines

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[mxnet] Applied clang-format
Muhwan Kim [Wed, 23 Mar 2022 08:18:12 +0000 (17:18 +0900)]
[mxnet] Applied clang-format

Fix code format to follow .clang-format file

Signed-off-by: Muhwan Kim <mhkim4886@gmail.com>
2 years ago[UNTESTED][mxnet] Add TensorRT support
Bumsik Kim [Mon, 26 Oct 2020 11:53:29 +0000 (04:53 -0700)]
[UNTESTED][mxnet] Add TensorRT support

Add TensorRT support for nnstreamer-filter-mxnet.
Like the previous commit, I will remove [UNTESTED] tag
after testing.

Signed-off-by: Bumsik Kim <k.bumsik@gmail.com>
2 years ago[UNTESTED][mxnet] Add GPU support
Bumsik Kim [Mon, 26 Oct 2020 08:07:09 +0000 (01:07 -0700)]
[UNTESTED][mxnet] Add GPU support

Add GPU support for nnstreamer-filter-mxnet.
This should work if MXNet is properly compiled
but I don't currently have development environment
to test GPU acceleration. I will remove the UNTESTED
tag when I set up the environment and test it.

Signed-off-by: Bumsik Kim <k.bumsik@gmail.com>
2 years ago[mxnet] Add simple test
Bumsik Kim [Wed, 14 Oct 2020 06:32:35 +0000 (23:32 -0700)]
[mxnet] Add simple test

This is a simple test to verify if nnstreamer-filter-mxnet works.
This may not be a proper test for upstream NNStreamer.
The main idea is to compare the outputs of the MXNet reference
implementation [1] and that of nnstreamer-filter-mxnet.

OpenCV is required to build this test.

[1]:
https://github.com/apache/incubator-mxnet/blob/1.7.0/cpp-package/example/inference/imagenet_inference.cpp

Signed-off-by: Bumsik Kim <k.bumsik@gmail.com>
2 years ago[meson] Add mxnet support
Bumsik Kim [Sun, 4 Oct 2020 06:04:56 +0000 (23:04 -0700)]
[meson] Add mxnet support

Add nnstreamer-filter-mxnet in the meson build system.
The mxnet support flag is -Dmxnet-support=enabled

Signed-off-by: Bumsik Kim <k.bumsik@gmail.com>
2 years ago[mxnet] Preliminary version of tensor_filter_mxnet
Bumsik Kim [Wed, 14 Oct 2020 02:36:56 +0000 (19:36 -0700)]
[mxnet] Preliminary version of tensor_filter_mxnet

This patch newely adds MXNet support for tensor_filter.
This is based on tensor_filter_subplugin class. This currently does not
suppor the GPU acceleration but it will be added in later patches.

Since this project does not have a stable C++ coding convention, I
partially followed the Google C++ Style Guide [1] for naming and applied
.clang_format file in the root.

[1]: https://google.github.io/styleguide/cppguide.html#Naming

Signed-off-by: Bumsik Kim <k.bumsik@gmail.com>