platform/upstream/nnstreamer.git
4 years agoindent: Update the gst-indent file
Geunsik Lim [Thu, 14 May 2020 01:34:49 +0000 (10:34 +0900)]
indent: Update the gst-indent file

This commit is to update the below contents in the 'gst-indent' file.

**Changelog**
 * Fixed typo
 * Declared a default shell script (e.g., bash) with Linux shebang line

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
4 years ago[Android/build] Move tensor-filter common to nnstreamer_common_srcs
Yongjoo Ahn [Wed, 13 May 2020 05:54:53 +0000 (14:54 +0900)]
[Android/build] Move tensor-filter common to nnstreamer_common_srcs

- To enable SINGLE-only build for cpp class filter (snpe)

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years ago[Android/SNPE] Support SNPE in Android
Yongjoo Ahn [Fri, 8 May 2020 04:11:53 +0000 (13:11 +0900)]
[Android/SNPE] Support SNPE in Android

- Support SNPE for Android api
- Add simple tests (singleshot, pipeline) using pre-loaded SNPE model

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years ago[single] Add implementation to support for hw accelerator
Parichay Kapoor [Wed, 13 May 2020 03:33:31 +0000 (09:03 +0530)]
[single] Add implementation to support for hw accelerator

single API supported hw accelerator for the NNFW
this hw was used to check if it is supported by the framework
however this hw was never passed to the framework to use
this patch sovles this issue

resolves #2374

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[single] Added documentation for the thread behavior
Parichay Kapoor [Mon, 11 May 2020 19:40:08 +0000 (01:10 +0530)]
[single] Added documentation for the thread behavior

Added documentation for the thread behavior in various functions in single API
Also removed ERROR state as it was rendundant after #2360

Resolves #2185

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[tflite] bug fix for tflite unittest
Parichay Kapoor [Tue, 12 May 2020 21:05:02 +0000 (02:35 +0530)]
[tflite] bug fix for tflite unittest

unittest of tflite compared output with grep "exp"
however some expressions could be prefix of different exp
this could lead to false positives
added line end marker

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Demux/Split] unref incoming buffer
Jaeyun [Mon, 11 May 2020 08:34:15 +0000 (17:34 +0900)]
[Demux/Split] unref incoming buffer

After demux/split the incoming buffer, unref the buffer to decrease ref count.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[single] single API to process nnfw transparently once opened
Parichay Kapoor [Thu, 7 May 2020 17:58:16 +0000 (23:28 +0530)]
[single] single API to process nnfw transparently once opened

single API should process all the frameworks transparently once the single handle has been opened.
The framework check has been performed when the handle was created and opened.
If the operation is not supported, that should be handled in the nnfw rather than in single API.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Android] Stop when first error occurs
Sangjung Woo [Mon, 11 May 2020 09:53:57 +0000 (18:53 +0900)]
[Android] Stop when first error occurs

When running build-android-lib.sh, it does not stop even though error
occur (e.g. command not found). It makes users hard to find the reason
of the problem. This patch stops first error occurs so users can fix it
easily.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[filter/SNPE] Add tensor_filter sub-plugin for SNPE
Yongjoo Ahn [Thu, 9 Apr 2020 07:58:19 +0000 (16:58 +0900)]
[filter/SNPE] Add tensor_filter sub-plugin for SNPE

- Currently, this only supports CPU runtime
- Use meson feature "feature" : check environment variable `SNPE_ROOT`
  to enable the build or not

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years ago[Meson/Option] remove unnecessary option
Jaeyun [Mon, 11 May 2020 07:53:29 +0000 (16:53 +0900)]
[Meson/Option] remove unnecessary option

remove unnecessary option for disabling audio elements.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[C-Api/CodeClean] validate model file
Jaeyun [Fri, 8 May 2020 11:19:13 +0000 (20:19 +0900)]
[C-Api/CodeClean] validate model file

add function for nnfw auto detection and clean up functions to validate model file.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Test] add simple testcases
Jaeyun [Thu, 7 May 2020 07:47:38 +0000 (16:47 +0900)]
[Test] add simple testcases

add simple testcases for native c-api and internal functions.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[single] cache tensor filter class once at open
Parichay Kapoor [Thu, 7 May 2020 17:32:24 +0000 (23:02 +0530)]
[single] cache tensor filter class once at open

Existing implementation seeks the tensor filter class based on its type everytime a class is needed.
Rather, cache the tensor filter class increasing its ref at open, and unref at single api close.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Subplugin] Fix the typo
Sangjung Woo [Mon, 11 May 2020 02:11:54 +0000 (11:11 +0900)]
[Subplugin] Fix the typo

This patch fixes the typo in header file.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years agoChange packaging in regards to feature migration
Jihoon Lee [Fri, 24 Apr 2020 08:37:01 +0000 (17:37 +0900)]
Change packaging in regards to feature migration

 Change debian and rpm build in regards to feature update option. This
commit just inherits past options leaving possibilities open to
exploit "auto" options.

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
4 years ago[Meson] Migrate to feature
Jihoon Lee [Mon, 20 Apr 2020 06:34:05 +0000 (15:34 +0900)]
[Meson] Migrate to feature

 1. Feature / feature handler added
 2. Add video support as feature (and wipe out disable-video-support)
 3. Add extra args support
 4. Implement enable-tesnorflow, enable-tensorflow-lite ... as feature
 5. Implement enable-orc, ... as feature *

 - enable-orc -> orcc-support
 - enable-tensorflow-lite -> tflite-support
 - enable-tensorflow -> tf-support
 - enable-caffe2 -> caffe2-support
 - enable-pytorch -> pytorch-support
 - enable-movidius-ncsdk2 -> mvncsdk2-support
 - enable-python -> python2-support / python3-support
 - enable-tflite-nnapi-delegation -> tflite-nnapi-delegation
 - enable-nnfw-runtime -> nnfw-runtime-support
 - enable-armnn -> armnn-suport

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
4 years agoAdd feature object handler
Jihoon Lee [Mon, 20 Apr 2020 06:34:05 +0000 (15:34 +0900)]
Add feature object handler

 1. Feature / feature handler added
 2. Add video support as feature (and wipe out disable-video-support) *
 3. Add extra args support
 4. Implement enable-tesnorflow, enable-tensorflow-lite ... as feature
 5. Implement enable-orc, ... as feature
 6. Change docs

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
4 years ago[Android/AMC] Set the omitted finalize function
Sangjung Woo [Mon, 4 May 2020 07:04:40 +0000 (16:04 +0900)]
[Android/AMC] Set the omitted finalize function

'gst_amc_src_finalize()' exists in the code but the finalize of GObject
class is not set. Because of this reason, gst_amc_src_finalize() function
is not called at all. This patch fixes this bug.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[CAPI] Separate error codes: ml-api-common.h
MyungJoo Ham [Thu, 7 May 2020 07:28:13 +0000 (16:28 +0900)]
[CAPI] Separate error codes: ml-api-common.h

nntrainer wants to share the error codes for its API set.
Separate "common" header and release it via a sub-pacakge.

CC: @jijoongmoon: You can use this for
https://github.com/nnstreamer/nntrainer/issues/75

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tests/Regression] GTEST error is ignored
MyungJoo Ham [Thu, 7 May 2020 10:24:43 +0000 (19:24 +0900)]
[Tests/Regression] GTEST error is ignored

PR #2338 has incurred a regression in the test suite that
make gbs pass even if there is a failed unit test case in gtest.

This fixes the regression of #2338

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Unittest/IIO] fix mem leak of unittest_src_iio
HyoungJoo Ahn [Thu, 7 May 2020 04:37:50 +0000 (13:37 +0900)]
[Unittest/IIO] fix mem leak of unittest_src_iio

fix mem leaks of few test cases

Signed-off-by: HyoungJoo Ahn <hello.ahn@samsung.com>
4 years ago[Mediapipe] upload the new subplugin
Hyoung Joo Ahn [Wed, 6 May 2020 11:49:42 +0000 (20:49 +0900)]
[Mediapipe] upload the new subplugin

this subplugin helps running mediapipe graph through nnstreamer

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
4 years ago[Mediapipe] fix shell script
Hyoung Joo Ahn [Wed, 6 May 2020 11:45:04 +0000 (20:45 +0900)]
[Mediapipe] fix shell script

make the nnstreamer lib path rather than error

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
4 years ago[C-Api] unknown tensor type
Jaeyun [Thu, 7 May 2020 09:41:37 +0000 (18:41 +0900)]
[C-Api] unknown tensor type

do not allow setting unknown tensor type.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Dist/Tizen] Remove an invalid command line
Wook Song [Thu, 7 May 2020 08:18:42 +0000 (17:18 +0900)]
[Dist/Tizen] Remove an invalid command line

This patch removes an invalid command line that creates a symlink, *.so.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Dist/Tizen] Provide GST_PLUGIN_PATH to unittest_tizen_sensor
Wook Song [Thu, 7 May 2020 07:57:14 +0000 (16:57 +0900)]
[Dist/Tizen] Provide GST_PLUGIN_PATH to unittest_tizen_sensor

'unittest_tizen_sensor' requires a nnstreamer extension plugin,
'tensor_src_tizensensor', in addition to the other nnstreamer plugins.
In order to resolve this dependency at build time, this patch modifies
the rpm spec for Tizen to provide extra GST_PLUGIN_PATH to
'unittest_tizen_sensor'.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests/Script] Do not override GST_PLUGIN_PATH in the test script
Wook Song [Thu, 7 May 2020 07:47:42 +0000 (16:47 +0900)]
[Tests/Script] Do not override GST_PLUGIN_PATH in the test script

This patch removes the code line overrides GST_PLUGIN_PATH from the test
script.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Test] add testcases for internal function
Jaeyun [Wed, 6 May 2020 11:41:48 +0000 (20:41 +0900)]
[Test] add testcases for internal function

add testcases for internal function (validate model files)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Unittest/IIO] add the negative case: base dir
HyoungJoo Ahn [Thu, 7 May 2020 03:42:07 +0000 (12:42 +0900)]
[Unittest/IIO] add the negative case: base dir

testcase for the logic with invalid base dir

Signed-off-by: HyoungJoo Ahn <hello.ahn@samsung.com>
4 years ago[Unittest/IIO] add the negative case: frequency
HyoungJoo Ahn [Wed, 29 Apr 2020 05:39:27 +0000 (14:39 +0900)]
[Unittest/IIO] add the negative case: frequency

testcase for the logic with invalid frequency

Signed-off-by: HyoungJoo Ahn <hello.ahn@samsung.com>
4 years ago[Conf] Add omitted comment and fix a typo
Sangjung Woo [Thu, 7 May 2020 01:48:14 +0000 (10:48 +0900)]
[Conf] Add omitted comment and fix a typo

* Add omitted parameter comment for nnsconf_get_subplugin_info()
* Fix a typo

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[TEST] Fix svace defect : nnfw_runtime, tensordec-imagelabel
gichan-jang [Wed, 6 May 2020 09:54:06 +0000 (18:54 +0900)]
[TEST] Fix svace defect : nnfw_runtime, tensordec-imagelabel

Fix memory leak of nnfw runtime and tensor decoder image labeling unit test.
Related SVACE defects : 440263, 440264, 440265, 440266, 440261

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[README] Add daily build and test badge
gichan-jang [Wed, 29 Apr 2020 02:24:08 +0000 (11:24 +0900)]
[README] Add daily build and test badge

Add daily build and test badge (Tizen x64, Tizen X86, Ubuntu x64)

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Tests/Python] Update test scripts for python extensions
Wook Song [Fri, 24 Apr 2020 08:35:51 +0000 (17:35 +0900)]
[Tests/Python] Update test scripts for python extensions

This patch modifies the scripts running the test cases for python
filters to use proper PYTHONPATH.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Transform] return value when failed to set option
Jaeyun [Wed, 29 Apr 2020 08:57:40 +0000 (17:57 +0900)]
[Transform] return value when failed to set option

1. return false if failed to set option.
2. add simple testcases for the option string.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[C-Api] new ref to get tensor name
Jaeyun Jung [Thu, 30 Apr 2020 05:59:11 +0000 (14:59 +0900)]
[C-Api] new ref to get tensor name

if tensors-info has name, return new ref when getting the tensor name.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Unittest/IIO] add a testcase for unusual cases
HyoungJoo Ahn [Tue, 28 Apr 2020 11:52:21 +0000 (20:52 +0900)]
[Unittest/IIO] add a testcase for unusual cases

the added testcase cover various cases not covered previous set.

Signed-off-by: HyoungJoo Ahn <hello.ahn@samsung.com>
4 years ago[Filter/Test] test for filter-fw registration
Jaeyun [Wed, 29 Apr 2020 10:59:29 +0000 (19:59 +0900)]
[Filter/Test] test for filter-fw registration

add test for filter-fw v1 registration without model file.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Test/tensordec-pose] Fix a test case with arithmetic transform
Yongjoo Ahn [Mon, 4 May 2020 04:25:40 +0000 (13:25 +0900)]
[Test/tensordec-pose] Fix a test case with arithmetic transform

- tensordec-pose treats incoming array as float, thus add `tensor_transform mode=arithmetic`
- expecting proper line converage results

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years ago[Test] add tc for element properties
Jaeyun [Tue, 28 Apr 2020 10:12:40 +0000 (19:12 +0900)]
[Test] add tc for element properties

update simple testcases for the element properties.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Test/tensordec-pose] Add test case with more buffers
Yongjoo Ahn [Tue, 28 Apr 2020 12:02:26 +0000 (21:02 +0900)]
[Test/tensordec-pose] Add test case with more buffers

The test with `videotestsrc num_buffers=4` sometimes does not enough to execute some functions. This commit adds a test with more buffers.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years ago[Test/CAPI-Util] Add negative cases.
MyungJoo Ham [Tue, 28 Apr 2020 10:53:42 +0000 (19:53 +0900)]
[Test/CAPI-Util] Add negative cases.

Add more negative test cases to increate test coverage rate.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[CodeClean] line comment
Jaeyun [Tue, 28 Apr 2020 04:44:13 +0000 (13:44 +0900)]
[CodeClean] line comment

code-style : remove single line comments.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[TEST] Add test case for tizen sensor
gichan-jang [Tue, 28 Apr 2020 11:31:37 +0000 (20:31 +0900)]
[TEST] Add test case for tizen sensor

Add test case for tizen sensor

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Unittest] apply EXPECT_STREQ for string comparisons
HyoungJoo Ahn [Wed, 29 Apr 2020 03:44:02 +0000 (12:44 +0900)]
[Unittest] apply EXPECT_STREQ for string comparisons

using EXPECT_STREQ rather than `EXPECT_TRUE( g_str_equal...`

Signed-off-by: HyoungJoo Ahn <hello.ahn@samsung.com>
4 years ago[Test] add sync option in appsink accepted/tizen/unified/20200428.125941 submit/tizen/20200428.040141
Jaeyun [Mon, 27 Apr 2020 11:46:51 +0000 (20:46 +0900)]
[Test] add sync option in appsink

1. add sync=false option in model reload test.
2. update pipeline description in docs.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[C-Api/Pipeline] warning message for sync option
Jaeyun [Mon, 27 Apr 2020 11:18:53 +0000 (20:18 +0900)]
[C-Api/Pipeline] warning message for sync option

add warning message if sink element does not have sync=false option.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[CodeClean] fix invalid index
Jaeyun [Mon, 27 Apr 2020 08:49:01 +0000 (17:49 +0900)]
[CodeClean] fix invalid index

1. fix invalid index when unmapping the mem block
2. unref buffer when failed to get mem

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Android] prepare SNPE
Jaeyun [Fri, 24 Apr 2020 10:23:12 +0000 (19:23 +0900)]
[Android] prepare SNPE

Prepare sub-plugin SNPE in android.
- add enum (nnfw type) and build option
- update document for the changes

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Filter/EdgeTPU] Workaround for #2320
MyungJoo Ham [Mon, 27 Apr 2020 09:29:02 +0000 (18:29 +0900)]
[Filter/EdgeTPU] Workaround for #2320

Until #2320 is resolved, adding AUTO/DEFAULT to "supported hw"
list makes it easier to use.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter/C++Class] Bugfix: close gets a dlb ptr!
MyungJoo Ham [Wed, 22 Apr 2020 05:26:58 +0000 (14:26 +0900)]
[Filter/C++Class] Bugfix: close gets a dlb ptr!

Pointer type mismatch fixed!

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Spec/Deb] Update C++ devel env.
MyungJoo Ham [Fri, 17 Apr 2020 05:22:26 +0000 (14:22 +0900)]
[Spec/Deb] Update C++ devel env.

1. Do not separate C env and C++ env. Merge them.
Both Ubuntu and Tizen supports C++ by default.

2. Move /nnstreamer/cpp/nnstreamer_cppplugin_api_filter.hh to
/nnstreamer/nnstreamer_cppplugin_api_filter.hh

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Option] Enable tensor-filter C++ class by default
MyungJoo Ham [Tue, 31 Mar 2020 10:24:52 +0000 (19:24 +0900)]
[Option] Enable tensor-filter C++ class by default

Turn the C++ class support on by default.
And update spec file to add .hh file.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter/Edgetpu] Rewrite as a C++ class
MyungJoo Ham [Tue, 31 Mar 2020 10:15:43 +0000 (19:15 +0900)]
[Filter/Edgetpu] Rewrite as a C++ class

This potentially reduces the code size and
maintanance costs.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Merge] fix return type
Jaeyun [Mon, 27 Apr 2020 05:44:53 +0000 (14:44 +0900)]
[Merge] fix return type

1. fix invalid return value.
2. mem-unmap when failed to get mem ptr in input buffer.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Test] Fix potential test fail
gichan-jang [Mon, 27 Apr 2020 10:15:17 +0000 (19:15 +0900)]
[Test] Fix potential test fail
Sync option is added on appsink pad to prevent potential test fail caused by buffer drop.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Sink] default sync false
Jaeyun [Mon, 27 Apr 2020 10:10:15 +0000 (19:10 +0900)]
[Sink] default sync false

Set default sync option 'false'.
It may be delayed with tensor_filter element, to invoke neural network model.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Android/Test] add SNAP tests using tensorflow model
Yongjoo Ahn [Wed, 22 Apr 2020 10:07:02 +0000 (19:07 +0900)]
[Android/Test] add SNAP tests using tensorflow model

- For both single-shot and pipeline, add simple tests to validate SNAP with tensorflow model
- Test with CPU, DSP, NPU runtime on recent Snapdragon (S20) and preloaded model files

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years agoError return instead of assert for external errors.
MyungJoo Ham [Mon, 20 Apr 2020 07:16:22 +0000 (16:16 +0900)]
Error return instead of assert for external errors.

If an error might occur by external reasons,
(invalid input/app behaviors and inappropriate environments)
it should not simply assert away, but should provide
appropriate error messages and handling.

Refactored everything except for tensor_filter_python.cc,
which will be refactored with exception throwing.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Test/NNFW] separate testcase
Jaeyun [Thu, 23 Apr 2020 09:39:34 +0000 (18:39 +0900)]
[Test/NNFW] separate testcase

1. separate testcase - invalid model and invalid data.
2. fix mem leak, destroy handle before creating new data.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Test] Fix tizen capi unittest
gichan-jang [Fri, 24 Apr 2020 01:02:34 +0000 (10:02 +0900)]
[Test] Fix tizen capi unittest
Today's Daily Build was a success, but the test fails occasionally due to slow speed of arm.
Timeout occurred in the test and increased it to 10 seconds.
If timeout occurs again, I will investigate another cause.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Unittest] remove the not effective sleeps
HyoungJoo Ahn [Thu, 23 Apr 2020 08:37:15 +0000 (17:37 +0900)]
[Unittest] remove the not effective sleeps

remove or unify `g_usleep() of testcases`

Signed-off-by: HyoungJoo Ahn <hello.ahn@samsung.com>
4 years ago[Filter/Python] Don't assert. Provide exceptions.
MyungJoo Ham [Wed, 22 Apr 2020 11:08:42 +0000 (20:08 +0900)]
[Filter/Python] Don't assert. Provide exceptions.

A subplugin shouldn't be arrogant enough to assert.
Return errors or throw exceptions instead.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Mediapipe] fix meson script
Hyoung Joo Ahn [Thu, 23 Apr 2020 10:39:27 +0000 (19:39 +0900)]
[Mediapipe] fix meson script

set `opencv_path` when system architecture is detected.

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
4 years ago[Dist/Tizen] Use the base option, b_coverage, to track coverage
Wook Song [Tue, 21 Apr 2020 08:34:46 +0000 (17:34 +0900)]
[Dist/Tizen] Use the base option, b_coverage, to track coverage

Instead of manually setting cflags for coverage tracking, let's use
b_coverage which is a meson's base option to do it.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[TEST] Fix tizen sensor unit test accepted/tizen/unified/20200424.141621 submit/tizen/20200423.092227
gichan-jang [Thu, 23 Apr 2020 07:15:50 +0000 (16:15 +0900)]
[TEST] Fix tizen sensor unit test

Fix tizen sensor unit test.
 - Add macro to wait until start the pipeline.
 - Wait until expected buffers are processed

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Test/NNFW] ignore timeout in singleshot
Jaeyun [Thu, 23 Apr 2020 06:44:38 +0000 (15:44 +0900)]
[Test/NNFW] ignore timeout in singleshot

increase timeout (30 sec) before invoking the model.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[TEST/util] Clean up wait_pipeline_process_buffers
MyungJoo Ham [Thu, 23 Apr 2020 06:11:40 +0000 (15:11 +0900)]
[TEST/util] Clean up wait_pipeline_process_buffers

1. apply "const" for data_received. It won't update it
2. make it robust against TEST_DEFAULT_SLEEP_TIME values

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[TEST/util] Add unit test util function
gichan-jang [Thu, 23 Apr 2020 05:23:47 +0000 (14:23 +0900)]
[TEST/util] Add unit test util function

Add unit test util function.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Test] Fix nnstreamer repo test
gichan-jang [Tue, 21 Apr 2020 11:08:28 +0000 (20:08 +0900)]
[Test] Fix nnstreamer repo test
Fix nnstremr repo test fail.
It's not best way to fix the problem, But I can not find any other suitable method in SSAT.
If there is a good alternative, please recommend it.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Coverage/Fix] Disable optimization and remove redundant gcov run
Dongju Chae [Tue, 21 Apr 2020 03:04:24 +0000 (12:04 +0900)]
[Coverage/Fix] Disable optimization and remove redundant gcov run

This patch disables code optimization for coverage analysis and remove
redundant gcov run.

In fact, we don't need to run the python script, unittestcoverage.py
which recursively executes gcov. Because lcov internally execute gcov,
the results of the script are never used.

FYI...
- when program is compiled with coverage option, .gcno files are created.
- When such programs are executed, .gcda files are created.
- As lcov input files are .gcda. we don't need to run gcov before lcov.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years ago[Android/Build] flag to handle exception
Jaeyun [Tue, 21 Apr 2020 08:41:02 +0000 (17:41 +0900)]
[Android/Build] flag to handle exception

add cxx-flag in android build, enable exception handling.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Src-IIO] CHANNEL property handling fix
MyungJoo Ham [Tue, 21 Apr 2020 02:28:33 +0000 (11:28 +0900)]
[Src-IIO] CHANNEL property handling fix

1. If g_hash_table_insert returns FALSE,
it simply means that the entry is duplicated.
Just skip it, then.

2. If we cannot parse it, don't change status, but
ignore the whole property values.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[C-Api] fix duplicated free accepted/tizen/unified/20200422.032212 submit/tizen/20200421.092647
Jaeyun [Tue, 21 Apr 2020 07:24:49 +0000 (16:24 +0900)]
[C-Api] fix duplicated free

do not call free() when destroying gst-buffer.

TODO : prevent memcpy() when pushing input data into src element.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[TEST] Fix test case name
gichan-jang [Tue, 21 Apr 2020 06:10:49 +0000 (15:10 +0900)]
[TEST] Fix test case name

Fix tese case name of nnstreamer repo unit test.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Tests] Add static to internal-global vairables.
MyungJoo Ham [Tue, 21 Apr 2020 01:59:40 +0000 (10:59 +0900)]
[Tests] Add static to internal-global vairables.

Don't export internal variables.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter/C++] Framework rework for better usages
MyungJoo Ham [Sat, 21 Mar 2020 07:53:03 +0000 (16:53 +0900)]
[Filter/C++] Framework rework for better usages

By applying C++ tensor-filter framework to edge-tpu,
I've found that the current draft is not useful enough.

Here comes C++ t-f framework updates tested with the
edgetpu subplugin.

Changes in V2:
- Removed macros. Use static-inline functions instead.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter/v1] Bugfix of TF-V1 subplugin API / C++ support
MyungJoo Ham [Thu, 16 Apr 2020 08:21:31 +0000 (17:21 +0900)]
[Filter/v1] Bugfix of TF-V1 subplugin API / C++ support

By testing with C++ class tf-subplugin, "edget-tpu",
bugs were found from the recently introduced TF-V1 subplugin API.

- V1 APIs uses void * private_data instead of void ** private_data.
  There are codes that do not reflect this.

In order to make C++ class subplugins work smoothly,
they need to know "this" pointer when they were invoked
by common C++ wrapper infrastructure, which is a set of
static functions of the base class.

Thus, add a new argument for them to find out "this" pointer.

CC: @kparichay
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tests] Fix sink unittest fail
gichan-jang [Mon, 20 Apr 2020 06:59:20 +0000 (15:59 +0900)]
[Tests] Fix sink unittest fail
Test fails occasionally due to slow speed of arm.
The test was modified to wait until the pipeline processing the buffers

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Log] Add fatal-log submit/tizen/20200421.014525
MyungJoo Ham [Mon, 20 Apr 2020 07:32:38 +0000 (16:32 +0900)]
[Log] Add fatal-log

Separate "fatal" level from "error".

When we convert "assert" fail to general error handling,
log-fatal might be appropriate.

Fixes #2288

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Dec/Subplugins] Remove duplicated code
MyungJoo Ham [Tue, 14 Apr 2020 07:48:16 +0000 (16:48 +0900)]
[Dec/Subplugins] Remove duplicated code

Add "utility" internal API to remove
duplicated code.

Chages in V2:
- Refactored imglabel_t data structure
- Suggested by @zhoonit

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[LF/AI] Update CONTRIBUTING submit/tizen/20200420.103732
MyungJoo Ham [Wed, 1 Apr 2020 10:56:48 +0000 (19:56 +0900)]
[LF/AI] Update CONTRIBUTING

To follow what LF/AI requires with the Charter.

It has been drafted at https://wiki.lfai.foundation/display/NNSTREAM/NNStreamer+CONTRIBUTING+draft+of+2020.04

updated 2020-04-16
- Clarified "most senior among available committers", Line 45
  (suggeted by @zhoonit)
- s/chairman/chairperson

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years agoComply with LF/AI Community Charter
MyungJoo Ham [Fri, 27 Mar 2020 05:57:47 +0000 (14:57 +0900)]
Comply with LF/AI Community Charter

As attorneys of stakeholders are drafting the community charter,
based on the current draft, I am updating related documents.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[README] Add daily build result badge in table
gichan-jang [Fri, 17 Apr 2020 05:11:04 +0000 (14:11 +0900)]
[README] Add daily build result badge in table
Add daily build result in ofiicial release table

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[CodeClean] return type
Jaeyun [Mon, 20 Apr 2020 04:43:26 +0000 (13:43 +0900)]
[CodeClean] return type

1. fix ret type of filter callback.
2. minor update (warning w/Wmissing-declarations)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Bug] Do not call essential ops in assert().
MyungJoo Ham [Sat, 18 Apr 2020 02:39:22 +0000 (11:39 +0900)]
[Bug] Do not call essential ops in assert().

Some systems may use NDEBUG and skip all assert calls.
Do not call essential ops in there.

Fixes #2282

Reported-by: @ndufresne
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tensor-If] Make it buildable
MyungJoo Ham [Mon, 13 Apr 2020 11:16:20 +0000 (20:16 +0900)]
[Tensor-If] Make it buildable

Add empty functions and build infra for Tensor-If.

Tensor-If is a subclass of GstBaseTransform.

The src-pad and sink-pad are supposed to have the same
capabilities.

It appears that in-place op has no benefit, but
not sure if we need to prohibit it.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Mediapipe] update meson script
Hyoung Joo Ahn [Fri, 17 Apr 2020 05:06:49 +0000 (14:06 +0900)]
[Mediapipe] update meson script

add opencv dependency and check architecture of system

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
4 years ago[Android] initialize native code
Jaeyun [Fri, 17 Apr 2020 08:47:18 +0000 (17:47 +0900)]
[Android] initialize native code

For C-API developers, add gst-init in native code.
Calling initialize() in java is unnecessary.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Converter] Refactored: no more large #if/endif code blocks.
MyungJoo Ham [Tue, 14 Apr 2020 07:28:27 +0000 (16:28 +0900)]
[Converter] Refactored: no more large #if/endif code blocks.

Do not enclose a large code block with #if/#endif.
Separate such files instead.

Changed in v2 (2020-04-16)
- Separated no-a/v and a/v headers

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Android] tf-lite version
Jaeyun [Fri, 17 Apr 2020 04:10:10 +0000 (13:10 +0900)]
[Android] tf-lite version

change tf-lite version to 1.13 in android api build.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Tests] Fix tizen capi unit test
gichan-jang [Fri, 17 Apr 2020 04:13:06 +0000 (13:13 +0900)]
[Tests] Fix tizen capi unit test
Test fails occasionally due to slow speed of arm.
The test was modified to only check if the switch is working.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Daily build] Add daily build badge
gichan-jang [Thu, 16 Apr 2020 11:31:20 +0000 (20:31 +0900)]
[Daily build] Add daily build badge

> Builds and tests are conducted every morning at 7: 30 a.m.
> The results are shown on the first page of the nnstreamer.
> Click the badge to download the log and images for the last seven days.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Android/Single] Do not turn off a large code block with #if
MyungJoo Ham [Tue, 14 Apr 2020 07:16:14 +0000 (16:16 +0900)]
[Android/Single] Do not turn off a large code block with #if

Separate the file and build independently instead.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tests/CAPI] Use constexpr instead of define and ifdef for tflite
Wook Song [Wed, 8 Apr 2020 05:44:08 +0000 (14:44 +0900)]
[Tests/CAPI] Use constexpr instead of define and ifdef for tflite

This patch experimentally replaces #define and #ifdef used for checking
enable-tensorflow-lite is true with constexpr, which is type-safe
replacement for #define.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests/CAPI] Use EXPECT_FLOAT_EQ for the test cases comparing float data
Wook Song [Mon, 13 Apr 2020 02:25:20 +0000 (11:25 +0900)]
[Tests/CAPI] Use EXPECT_FLOAT_EQ for the test cases comparing float data

This patch replaces EXPECT_EQ with EXPECT_FLOAT_EQ for the test cases which
compare floating-point data.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[filter] Support tensor filter framework V1 single API
Parichay Kapoor [Sat, 29 Feb 2020 10:25:24 +0000 (15:55 +0530)]
[filter] Support tensor filter framework V1 single API

Support tensor filter framework v1 callbacks for the single API

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years agoLower MCD, Increase SAM Score
MyungJoo Ham [Mon, 13 Apr 2020 11:22:04 +0000 (20:22 +0900)]
Lower MCD, Increase SAM Score

SAM analysis says that nnstreamer.c is causing cyclic dependency
between modules.

Although I think this is false positive, let's move nnstreamer.c
to a subdirectory so that SAM won't recognize nnstreamer.c is
"parent module" of other nnstreamer elements.

Because this is the only modules that SAM recognizes as MCD issue,
this may enhance SAM score greatly.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tensor-IF] An anchor for further development.
MyungJoo Ham [Wed, 8 Apr 2020 04:08:34 +0000 (13:08 +0900)]
[Tensor-IF] An anchor for further development.

Anyone can jump in and start the development!

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>