platform/upstream/nnstreamer.git
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>
2 years ago[Conf] fix param name accepted/tizen/unified/20220526.143642 submit/tizen/20220525.063351
Jaeyun [Fri, 20 May 2022 11:48:34 +0000 (20:48 +0900)]
[Conf] fix param name

Fix lgtm alert - name of global variable. Change param name.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Conf] subplugin path from extra conf
Jaeyun [Tue, 17 May 2022 09:30:01 +0000 (18:30 +0900)]
[Conf] subplugin path from extra conf

Add subplugin path loaded from extra config file.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Python] path to python helper lib
Jaeyun [Tue, 17 May 2022 05:17:25 +0000 (14:17 +0900)]
[Python] path to python helper lib

Change install path for python-helper library.
This is to fix library link error.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[TEST] Add assertion test.
gichan [Fri, 13 May 2022 06:17:32 +0000 (15:17 +0900)]
[TEST] Add assertion test.

Instead of unwinding the macro, add assertion.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[TEST] Unwinding macro to avoid no assertion test.
gichan [Fri, 13 May 2022 03:15:44 +0000 (12:15 +0900)]
[TEST] Unwinding macro to avoid no assertion test.

Some code quality analyer check no assertion test.
testTesnrSparse_utilConvert has assert test, the analyer cannnot check
macro.
So, to avoid the false-positive case, unwinding macro.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Test] Add palm detection decoder test
Sangjung Woo [Thu, 12 May 2022 01:39:40 +0000 (10:39 +0900)]
[Test] Add palm detection decoder test

This patch newly adds the palm detection decoder test script.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Decoder/BoundingBox] Add binary test data of palm detection
Sangjung Woo [Wed, 11 May 2022 14:36:45 +0000 (23:36 +0900)]
[Decoder/BoundingBox] Add binary test data of palm detection

This patch adds the binary test data for palm detection.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[filter/snpe] Add custom option "MaxResizableDim"
Yongjoo Ahn [Thu, 28 Apr 2022 04:44:17 +0000 (13:44 +0900)]
[filter/snpe] Add custom option "MaxResizableDim"

- Some snpe models have "0" dim to represent resizable dim.
- Add a custom option to deal with this case.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[filter/snpe] Make the order of output tensors be consistent with the user given...
Yongjoo Ahn [Tue, 19 Apr 2022 09:22:30 +0000 (18:22 +0900)]
[filter/snpe] Make the order of output tensors be consistent with the user given option

- For multiple output models, let user set output tensors instead of
  output layers
- And make the order of input / output tensors be consistent.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[meson] Remove unnecessary dependency
gichan [Mon, 9 May 2022 05:31:46 +0000 (14:31 +0900)]
[meson] Remove unnecessary dependency

Remove unnecessary dependency from single-shot package.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Svace] check null ptr
Jaeyun [Fri, 6 May 2022 07:24:00 +0000 (16:24 +0900)]
[Svace] check null ptr

Fix svace issue, check null ptr - allocation failure case in log util.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Edge] header for nns-edge
Jaeyun [Fri, 1 Apr 2022 11:14:53 +0000 (20:14 +0900)]
[Edge] header for nns-edge

initial commit to implement internal library for nnstreamer edge based on glib.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agotest: disable converter test if python is not available.
MyungJoo Ham [Wed, 4 May 2022 03:20:04 +0000 (12:20 +0900)]
test: disable converter test if python is not available.

converter test uses python scripts.
disable converter test if python is not available.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[TEST/ntp] Add ntp unittest using GMock.
gichan [Tue, 19 Apr 2022 10:24:08 +0000 (19:24 +0900)]
[TEST/ntp] Add ntp unittest using GMock.

Add ntp uniitest using GMock.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years agoStart Development of NNStreamer 2.1.1 (2.2 RC2)
MyungJoo Ham [Wed, 13 Apr 2022 08:41:43 +0000 (17:41 +0900)]
Start Development of NNStreamer 2.1.1 (2.2 RC2)

This is the version marking for 2.1.1 development start.
As 2.1.0 is started on Sep 28 2021, the change is huge.

2.1.0 -> 2.1.1
- Tizen 7.0 M1 RCx preparation and NNStreamer Mini Summit 2022-04 release.

- NNStreamer-Edge refactoring (module for Among-Device AI (a.k.a. Edge-AI))
        - Ongoing effort of nnstreamer-edge separation from nnstreamer.
        - In the future, nnstreamer-edge will provide among-device AI functions and nnstreamer will provide gstreamer plugins for such functions. Non-gstreamer systems may connect to nnstreamer-edge based pipelines without gstreamer as clients.
        - NNStreamer-Edge will be using AITT as its default backend, leaving protocol issues to AITT.
        - In the future, nnstreamer-edge will be compatible with non-Linux ultra-lightweight systems (e.g., Tizen-RT)

- ML-Service API preparation is going on at api.git.

- Major features
        - MQTT timestaamping w/ NTP. (later will be migrated to nnstreamer-edge & aitt)
        - Query (later will be migrated to nnstreamer-edge & aitt): robustness support, mqtt-hybrid protocol, performance fixes for multi-clients.
        - More coverage for SNPE support: quantized model support, SNPE dimension bug workaround, fixes from/for production team.
        - Flexible tensor support w/ decoder, converter, flatbuffer.

- Minor features
        - MQTT unittest basis, generic stream support, android support, timeout handling, ... (and many!)
        - Utility functions exported for plugin writers.
        - Tensorflow-lite delegation refactored for generality: may use XNNPACK more easily.
        - Tensorflow-lite multi-lib support.
        - PyTorch: support complex output tensor formats.
        - NNStreamer multi-lib support.
        - Decoder: boundingbox-yolov5
        - Filter: TRIx-Engine support. (NPUs of Samsung 2022 TV)
        - Docker support refactored and cleaned up.

- Fixes
        - ARMNN build errors.
        - Android errors
        - Build errors with recent compiler updates. (gcc 11)
        - Fixes upstreamed from productions
        - Errors w/ library updates: Lua >= 5.3, GLib >= 2.68
        - Regression fixes: openvino, edgetpu, tensorrt
        - Memory leaks in C++ subplugin infra.

- Known issues: PPA/Launchpad build broken!

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoclang workaround of vsnprintf
MyungJoo Ham [Wed, 13 Apr 2022 09:52:54 +0000 (18:52 +0900)]
clang workaround of vsnprintf

With clang in macos:

/Users/runner/work/nnstreamer/nnstreamer/gst/nnstreamer/nnstreamer_log.c:97:48: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
  vsnprintf (errmsg, _NNSTREAMER_ERROR_LENGTH, fmt, arg_ptr);
                                               ^~~
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:75:63: note: expanded from macro 'vsnprintf'
  __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap)
                                                              ^~~~~~
1 error generated.

Add a workaround from
https://stackoverflow.com/questions/20167124/vsprintf-and-vsnprintf-wformat-nonliteral-warning-on-clang-5-0

Note: gst-indent is applying indentation very strangely with __attribute__

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agocommon/api_util_impl: use internal error infra.
MyungJoo Ham [Wed, 13 Apr 2022 07:40:33 +0000 (16:40 +0900)]
common/api_util_impl: use internal error infra.

Save the internal error/info/warning message so that
caller may use the info for actual error message.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agofilter/core: elaborate error messages.
MyungJoo Ham [Wed, 30 Mar 2022 10:12:59 +0000 (19:12 +0900)]
filter/core: elaborate error messages.

Elaborate error and warning messages so that users and developers
can easily point out and fix issues.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agocommon/log: backtrace, internal err log
MyungJoo Ham [Wed, 30 Mar 2022 10:12:08 +0000 (19:12 +0900)]
common/log: backtrace, internal err log

For debugging messages, add a backtrace function and internal err logging.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[TEST] Skip query test temporarily
yelini-jeong [Mon, 25 Apr 2022 07:03:04 +0000 (16:03 +0900)]
[TEST] Skip query test temporarily

This patch skips query test temporarily because of ppa build failure.

Signed-off-by: yelini-jeong <yelini.jeong@samsung.com>
2 years ago[Decoder] integ division accepted/tizen/unified/20220426.132012 submit/tizen/20220425.043951 submit/tizen/20220426.050006
Jaeyun [Fri, 22 Apr 2022 09:29:40 +0000 (18:29 +0900)]
[Decoder] integ division

Convert float value to get the object.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[TEST/mqtt] Run get/set property test w/o mqtt broker submit/tizen/20220422.081403
gichan [Tue, 19 Apr 2022 07:09:51 +0000 (16:09 +0900)]
[TEST/mqtt] Run get/set property test w/o mqtt broker

 - Run get/set property test without mqtt broker.
 - Add ntp prop set/get test.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[decoder/bounding_box] Support decoder for mediapipe palm detection
Jiho Chu [Fri, 8 Apr 2022 06:40:46 +0000 (15:40 +0900)]
[decoder/bounding_box] Support decoder for mediapipe palm detection

MP_PALM_DETECTION decoder for bounding box mode is presented. The model and
algorithm is based on mediapipe palm detection model and its
implementation.

Signed-off-by: Jiho Chu <jiho.chu@samsung.com>
2 years ago[Filter] unnecessary initialization
Jaeyun [Tue, 12 Apr 2022 06:43:17 +0000 (15:43 +0900)]
[Filter] unnecessary initialization

Remove unnecessary init while parsing accel string.
- fetch fw info to parse accel for the case if nn framework is not opened.
- check fw info if open() callback of nn framework is not written.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[CodeClean] fix svace issue
Jaeyun [Wed, 20 Apr 2022 06:01:38 +0000 (15:01 +0900)]
[CodeClean] fix svace issue

Fix svace issue - uninitialized variable.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Doc] Change CI server domain name
gichan [Wed, 20 Apr 2022 01:43:12 +0000 (10:43 +0900)]
[Doc] Change CI server domain name

Change CI server domain name from nnstreamer.mooo.com to ci.nnstreamer.ai

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[test/transform] Add tests for per-channel
Yongjoo Ahn [Thu, 14 Apr 2022 09:19:14 +0000 (18:19 +0900)]
[test/transform] Add tests for per-channel

- Add simple unittests for per-channel operation
- Add a SSAT testcase making red RGB image with per-channel operation

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[transform] Add per-channel feature for arithmetic op
Yongjoo Ahn [Tue, 12 Apr 2022 02:14:07 +0000 (11:14 +0900)]
[transform] Add per-channel feature for arithmetic op

- Add "per-channel" arithmetic op (see #3711 for details)
- The syntax:
```
tensor_transform mode=arithmetic
option=typecast:float32,per-channel:true@DIM,add:A1@CH,div:D1@CH
```
- DIM means the dimension which is viewed as channel
ex) For 3:4:4:1 incomming tensor, per-channel:true@0 means 0-th DIM
(value is 3) is the channel
- CH means the idx of channel that given operation is applied. If @CH is
  missing, the operation is applied to all channels.
ex) add:255@0 means add 255 to the 0-th channel (which is R among the
RGB)

- Usage example:
```
$ gst-launch-1.0 videotestsrc pattern=2 num-buffers=1 ! videoscale !
videoconvert ! video/x-raw,format=RGB,width=2,height=2 !
tensor_converter ! tensor_transform mode=arithmetic
option=typecast:float32,per-channel:true@0,add:1.5@0,add:2.5@1,mul:2 ! filesink
location=out.log

$ od -f out.log
0000000               3               5               0               3
0000020               5               0               3               5
0000040               0               3               5               0
0000060
```

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Tests/Rate] Apply test fixture to remove duplicate code
Sangjung Woo [Wed, 6 Apr 2022 12:14:39 +0000 (21:14 +0900)]
[Tests/Rate] Apply test fixture to remove duplicate code

To remove duplicate code in each test case, this patch applies
the test fixture framework of Google Test. It increases
maintainability and modifiability.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Test/Single] Apply test fixture to remove duplicate code
Sangjung Woo [Wed, 6 Apr 2022 01:59:46 +0000 (10:59 +0900)]
[Test/Single] Apply test fixture to remove duplicate code

To remove duplicate code in each test case, this patch applies the test
fixture framework. Moreover, g_autofree macro is used for allocated
space to be freed automatically no matter test case is passed or not.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[subplugin] g_module_open with LOCAL flag (instead of GLOBAL)
Yongjoo Ahn [Mon, 18 Apr 2022 07:11:27 +0000 (16:11 +0900)]
[subplugin] g_module_open with LOCAL flag (instead of GLOBAL)

- When tf1-lite and tf2-lite both are present, the later called
  subplugin is not initalized. It's because the constructor functions
  are same as "init_filter_tflite".
  e.g.) `g_module_open (...tf1lite.so, 0)` will call "init_filter_tflite" of
  tf2lite.so.
- This resolves #3709

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[README] Fix daily build log link accepted/tizen/unified/20220419.142310 submit/tizen/20220418.053521
gichan [Thu, 14 Apr 2022 05:39:38 +0000 (14:39 +0900)]
[README] Fix daily build log link

 - Fix invalid log link of the ubuntu daily build.
 - Change link of the badges to daily log path.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[CodeClean] fix svace issue
Jaeyun [Fri, 8 Apr 2022 02:52:19 +0000 (11:52 +0900)]
[CodeClean] fix svace issue

1. Set interpreter lock while replacing interpreter in tf-lite sub-plugin.
2. Remove unreached code in converter.
3. Clearly check file ext (bmp) in test util.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[CodeClean] fix svace issue
Jaeyun [Thu, 7 Apr 2022 09:18:03 +0000 (18:18 +0900)]
[CodeClean] fix svace issue

Code clean, fix svace issue in testcase.
- count failure while loading data from file.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Filter] svace issue
Jaeyun [Thu, 7 Apr 2022 11:54:01 +0000 (20:54 +0900)]
[Filter] svace issue

Fix svace issue - dereference after null check.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agoFix ubuntu meson build github action
MyungJoo Ham [Tue, 5 Apr 2022 01:31:33 +0000 (10:31 +0900)]
Fix ubuntu meson build github action

Fixed syntax error.
Run test action.

todo: register unit tests properly for meson test.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Filter] Reload shared model
Junhwan Kim [Wed, 18 Aug 2021 07:32:06 +0000 (16:32 +0900)]
[Filter] Reload shared model

Support model reload for shared model
- Update common method to replace interpreter for instances sharing the key

Signed-off-by: Junhwan Kim <jejudo.kim@samsung.com>
2 years agogithub-action: Ubuntu clean meson build test
MyungJoo Ham [Wed, 30 Mar 2022 02:17:07 +0000 (11:17 +0900)]
github-action: Ubuntu clean meson build test

Test build & TC in a latest Ubuntu system with meson/ninja clean build.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agogithub-action: macos build
MyungJoo Ham [Wed, 30 Mar 2022 03:29:57 +0000 (12:29 +0900)]
github-action: macos build

Add macos build github action with brew

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotest: ppa/armhf timeout
MyungJoo Ham [Wed, 30 Mar 2022 10:24:32 +0000 (19:24 +0900)]
test: ppa/armhf timeout

We have the following error at PPA for armhf build:
```
../tests/nnstreamer_converter/unittest_converter.cc:409: Failure
Value of: wait_pipeline_process_buffers (data_received, 1, TEST_TIMEOUT_MS)
  Actual: false
Expected: true
../tests/nnstreamer_converter/unittest_converter.cc:414: Failure
Expected: (caps) != (nullptr), actual: NULL vs 4-byte object <00-00 00-00>

(unittest_converter:16055): GStreamer-CRITICAL **: 06:06:01.349: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed
../tests/nnstreamer_converter/unittest_converter.cc:416: Failure
Expected: (structure) != (nullptr), actual: NULL vs 4-byte object <00-00 00-00>

** (unittest_converter:16055): CRITICAL **: 06:06:01.351: gst_tensors_config_from_structure: assertion 'structure != NULL' failed
../tests/nnstreamer_converter/unittest_converter.cc:418: Failure
      Expected: 1U
      Which is: 1
To be equal to: config.info.num_tensors
      Which is: 0
```

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoconverter: elaborate error messages
MyungJoo Ham [Tue, 8 Mar 2022 09:40:12 +0000 (18:40 +0900)]
converter: elaborate error messages

When there is a pipeline error, especially at the construct phase,
users need elaborated error messages that provide useful infomation
to correct pipeline descriptions.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agocommon: to_string() for tensors_config & tensors_info
MyungJoo Ham [Tue, 22 Mar 2022 08:53:26 +0000 (17:53 +0900)]
common: to_string() for tensors_config & tensors_info

For debugging and logging purposes,
add to_string() functions for tensors-config and tensors-info
structures.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoDoc: data-types update with 2.0
MyungJoo Ham [Mon, 28 Feb 2022 07:56:14 +0000 (16:56 +0900)]
Doc: data-types update with 2.0

NNStreamer 2.0 has updated data types significantly.
Update the documents accordingly.

Fixes #3661

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agofilter:pytorch: use %G_GSIZE_FORMAT for printing gsize
MyungJoo Ham [Tue, 29 Mar 2022 07:25:42 +0000 (16:25 +0900)]
filter:pytorch: use %G_GSIZE_FORMAT for printing gsize

There are different definitions for gsize.
Use %G_GSIZE_FORMAT for the portability
Note that #3699 was not portable enough.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoCODEOWNERS: update reviewer list
MyungJoo Ham [Tue, 29 Mar 2022 03:27:30 +0000 (12:27 +0900)]
CODEOWNERS: update reviewer list

We have new members and members quiting.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agofilter:pytorch: armhf error in PPA (print format)
MyungJoo Ham [Mon, 28 Mar 2022 02:30:56 +0000 (11:30 +0900)]
filter:pytorch: armhf error in PPA (print format)

Fix the print format string error:
```
In file included from /usr/include/glib-2.0/glib.h:62:0,
                 from ../gst/nnstreamer/nnstreamer_log.h:75,
                 from /<<PKGBUILDDIR>>/ext/nnstreamer/tensor_filter/tensor_filter_pytorch.cc:29:
/<<PKGBUILDDIR>>/ext/nnstreamer/tensor_filter/tensor_filter_pytorch.cc: In member function ‘int TorchCore::validateOutputTensor(at::Tensor, unsigned int)’:
/usr/include/glib-2.0/glib/gmessages.h:336:43: error: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘gsize {aka unsigned int}’ [-Werror=format=]
                                __VA_ARGS__)
                                           ^
../gst/nnstreamer/nnstreamer_log.h:79:17: note: in expansion of macro ‘g_critical’
 #define ml_loge g_critical
                 ^~~~~~~~~~
/<<PKGBUILDDIR>>/ext/nnstreamer/tensor_filter/tensor_filter_pytorch.cc:348:5: note: in expansion of macro ‘ml_loge’
     ml_loge ("Invalid output meta: different element size at index %d. Found size %ld while expecting size %ld. Update the tensor shape/size to resolve the error.",
     ^~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:336:43: error: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘gsize {aka unsigned int}’ [-Werror=format=]
                                __VA_ARGS__)
                                           ^
../gst/nnstreamer/nnstreamer_log.h:79:17: note: in expansion of macro ‘g_critical’
 #define ml_loge g_critical
                 ^~~~~~~~~~
/<<PKGBUILDDIR>>/ext/nnstreamer/tensor_filter/tensor_filter_pytorch.cc:348:5: note: in expansion of macro ‘ml_loge’
     ml_loge ("Invalid output meta: different element size at index %d. Found size %ld while expecting size %ld. Update the tensor shape/size to resolve the error.",
     ^~~~~~~
```

Related with #3698

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[test/snpe] Add unittest for snpe filter's user buffer mode
Yongjoo Ahn [Thu, 17 Mar 2022 11:25:06 +0000 (20:25 +0900)]
[test/snpe] Add unittest for snpe filter's user buffer mode

- Add two simple cases to test user buffer execution

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[filter/snpe] Support "user supplied buffer" for snpe
Yongjoo Ahn [Tue, 15 Mar 2022 07:44:30 +0000 (16:44 +0900)]
[filter/snpe] Support "user supplied buffer" for snpe

- Support "userbuffer" for snpe filter
- With this mode, the memcpy from/into model's input/output does not occur
- Note that it only supports float type

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[converter/python3] Temporarily remove Py_Finalize
gichan [Fri, 18 Mar 2022 09:34:28 +0000 (18:34 +0900)]
[converter/python3] Temporarily remove Py_Finalize

Tizen issues: After python version has been upgraded from 3.9.1 to 3.9.10, python converter is stopped at Py_Finalize.
Since Py_Initialize is not called twice from this object, Py_Finalize is temporarily removed.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years agoRevert "[TEST] Disable python converter tests."
gichan [Fri, 18 Mar 2022 06:38:33 +0000 (15:38 +0900)]
Revert "[TEST] Disable python converter tests."

This reverts commit 96142d9582507784fc11bb115bc117f34eed625b.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years agofilter/pytorch,caffe2: they have redundant decls.
MyungJoo Ham [Thu, 17 Mar 2022 03:26:12 +0000 (12:26 +0900)]
filter/pytorch,caffe2: they have redundant decls.

Add -Wredundant-decl only when !(pytorch or caffe2), not !(pytorch and caffe2).
Even when only one of the two are included, they have redundant decl warnings.
It appears that we haven't tested cases where only one of pytorch and caffe2 is
enabled.

Fixes #3693

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agodoc: update README and products
MyungJoo Ham [Mon, 7 Mar 2022 09:27:41 +0000 (18:27 +0900)]
doc: update README and products

- Update paper link
- Update support hardware
- Update product lists

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Build/PyUtil] dependency to py-util
Jaeyun [Tue, 8 Mar 2022 11:37:14 +0000 (20:37 +0900)]
[Build/PyUtil] dependency to py-util

Add link to python util library in meson.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[CodeClean/Python] possible leak in python subbplugin
Jaeyun [Mon, 7 Mar 2022 09:37:13 +0000 (18:37 +0900)]
[CodeClean/Python] possible leak in python subbplugin

Code clean,
1. possible leak and exception to load python module.
2. remove unnecessary macro.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[TEST/cpp] Wait until pipeline save the files
gichan [Thu, 3 Mar 2022 01:47:41 +0000 (10:47 +0900)]
[TEST/cpp] Wait until pipeline save the files

Wait until pipeline save the files.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[build/tflite] Check each delegate symbol in build time
Yongjoo Ahn [Fri, 4 Mar 2022 09:02:20 +0000 (18:02 +0900)]
[build/tflite] Check each delegate symbol in build time

- Check each tflite delegate symbol by linking with tflite dep in build time

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Log] exporting logger
Jaeyun [Thu, 3 Mar 2022 08:25:56 +0000 (17:25 +0900)]
[Log] exporting logger

Log util is available only in nnstreamer repo.
Remove exporting the header for logging.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[SSAT] Enable filter_python3 test to run on target
Aymen Sghaier [Tue, 1 Mar 2022 14:12:37 +0000 (15:12 +0100)]
[SSAT] Enable filter_python3 test to run on target

 - remove exit if build folder not exists
 - bypass pushd failure if build folder not exists

Signed-off-by: Aymen Sghaier <aymen.sghaier@nxp.com>
2 years ago[Pkg] add filter-single header
Jaeyun [Fri, 4 Mar 2022 02:50:19 +0000 (11:50 +0900)]
[Pkg] add filter-single header

dev-internal pkg should include filter-single header for single-shot API.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[TEST] Disable python converter tests.
gichan [Mon, 7 Mar 2022 03:35:38 +0000 (12:35 +0900)]
[TEST] Disable python converter tests.

TEMPORAL SOLUTIONS: PLEASE REVERT THIS COMMIT AFTER FIXING THE ISSUE.

When the Python tensor converter test is completed, a deadlock occurs.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Util] fix typo and license
Jaeyun [Wed, 2 Mar 2022 09:02:39 +0000 (18:02 +0900)]
[Util] fix typo and license

Fix typo and license in util functions and header.
Update internal function description and remove unnecessary param.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[tensor_filter] Modify the order of caps_intersect_full
Yongjoo Ahn [Thu, 24 Feb 2022 06:53:50 +0000 (15:53 +0900)]
[tensor_filter] Modify the order of caps_intersect_full

- The pipeline reported in #3636 has nego fail issue because the caps is
   fixated with flexible right after tensor_filter.
- To resolve this, change the order of `gst_caps_intersect_full` in transform_caps.
   This makes static format to be chosen.
- This resolves #3636

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[tests] Add a ssat testcase to check proper negotiation
Yongjoo Ahn [Thu, 24 Feb 2022 06:41:51 +0000 (15:41 +0900)]
[tests] Add a ssat testcase to check proper negotiation

- Test whether tensor_filter - tensor_transform pipeline can be
  negotiated with static format, not flexible format.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[transform] Fix transform_caps in direction GST_PAD_SRC
Yongjoo Ahn [Tue, 22 Feb 2022 09:33:13 +0000 (18:33 +0900)]
[transform] Fix transform_caps in direction GST_PAD_SRC

- Since tensor_transform cannot specify the sinkpad's type caps in some modes,
  let the `transform_caps` remove the field in that case

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/common] Fix calling g_string_append with null
Yongjoo Ahn [Tue, 22 Feb 2022 09:20:02 +0000 (18:20 +0900)]
[fix/common] Fix calling g_string_append with null

- Check null before call g_string_append
- This removes the logs `g_string_insert_len: assertion 'len == 0 || val != NULL' failed`

REF: #3666
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Util] util function to compare tensor-config
Jaeyun [Wed, 2 Mar 2022 06:09:15 +0000 (15:09 +0900)]
[Util] util function to compare tensor-config

remove gst-dependency to compare tensor config.
add return val of invalid condition.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[fix/tests] Fix mem-leak issues in some unittests
Yongjoo Ahn [Fri, 18 Feb 2022 03:19:16 +0000 (12:19 +0900)]
[fix/tests] Fix mem-leak issues in some unittests

- Fix minor mem-leak in lua, snpe, tvm unittests

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/lua] Fix mem-leak of lua filter
Yongjoo Ahn [Fri, 18 Feb 2022 03:17:40 +0000 (12:17 +0900)]
[fix/lua] Fix mem-leak of lua filter

- Use smart pointer for lua script
- Fix minor typo

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/filter] Add check for model file in some filters
Yongjoo Ahn [Fri, 18 Feb 2022 03:14:55 +0000 (12:14 +0900)]
[fix/filter] Add check for model file in some filters

- Add check for `G_FILE_TEST_IS_REGULAR` in some cpp class based filters

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Single] Rename single-shot files
Gichan Jang [Mon, 7 Feb 2022 06:55:58 +0000 (15:55 +0900)]
[Single] Rename single-shot files

 - Rename the files related to tensor common functions.
   renamed:    gst/nnstreamer/include/nnstreamer_plugin_api_single.h -> gst/nnstreamer/include/nnstreamer_plugin_api_util.h
   renamed:    gst/nnstreamer/tensor_common.c -> gst/nnstreamer/nnstreamer_plugin_api_impl.c
   renamed:    gst/nnstreamer/tensor_common_single.c -> gst/nnstreamer/nnstreamer_plugin_api_util_impl.c
 - Remove unnecessary pipeline utils from nnstreamer-internal header.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[TEST] Remove gst dep from singleshot test
gichan [Fri, 28 Jan 2022 11:26:52 +0000 (20:26 +0900)]
[TEST] Remove gst dep from singleshot test

Remove gst dependency from singleshot test

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Filter] Remove gst dependency from filter subplugins.
gichan [Fri, 28 Jan 2022 10:44:14 +0000 (19:44 +0900)]
[Filter] Remove gst dependency from filter subplugins.

Remove gst dependency from tensor filter subplugins.
 - tensorflow, tensorflow-lite, pytorch, nnfw,caffe2

TODO: Other subplugins later.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Filter] Remove gst dep from single-shot
Gichan Jang [Wed, 26 Jan 2022 01:54:09 +0000 (10:54 +0900)]
[Filter] Remove gst dep from single-shot

 - Remove gst dependency from single-shot.
 - Separate single-shot package from nnstreamer(pipeline)
 - nnstreamer depends nnstreaner-single package.

Signed-off-by: gichan <gichan2.jang@samsung.com>