platform/upstream/nnstreamer.git
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>
4 years ago[Android/Build] default option to build subplugins accepted/tizen/unified/20200414.034817 submit/tizen/20200413.103329
Jaeyun [Mon, 13 Apr 2020 08:40:12 +0000 (17:40 +0900)]
[Android/Build] default option to build subplugins

Change default option to build library with NNFW and SNAP.
NNFW and SNAP requires additional script.

Also update guide to build Android library.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Tests/CAPI] Add state check methos
gichan-jang [Mon, 6 Apr 2020 10:51:02 +0000 (19:51 +0900)]
[Tests/CAPI] Add state check methos

Mmodified to check the state change of each state.
Considering low speed of the arm, I gave more time than it needed.

*This should have been included in the previous PR, but it was not reflected because the modification was late.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Converter] Lower cyclomatic-complexity
MyungJoo Ham [Wed, 8 Apr 2020 08:22:31 +0000 (17:22 +0900)]
[Converter] Lower cyclomatic-complexity

The CC value of chain function was 24.
Lower it down!

V2: A nested if condition was merged.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Common] Merge BASEPAD/SLOWEST sync mechanisms
MyungJoo Ham [Fri, 10 Apr 2020 04:33:38 +0000 (13:33 +0900)]
[Common] Merge BASEPAD/SLOWEST sync mechanisms

The two has a low in common.
Merge the two.

Suggested-by: Gichan Jang <gichan2.jang@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Common] Lower cyclomatic-complexity
MyungJoo Ham [Wed, 8 Apr 2020 09:33:07 +0000 (18:33 +0900)]
[Common] Lower cyclomatic-complexity

The CC value of buffer-sync-collectpad as 23.
Lower it down!

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen 5.5 / GLIBC 2.24] Workaround for GLIBC bug
MyungJoo Ham [Fri, 10 Apr 2020 05:32:13 +0000 (14:32 +0900)]
[Tizen 5.5 / GLIBC 2.24] Workaround for GLIBC bug

GLIBC dlclose bug
https://bugzilla.redhat.com/show_bug.cgi?id=1264556#c42
is haunting us again with Tizen 5.5 backports.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter/Common] Lower cyclomatic-complexity
MyungJoo Ham [Wed, 8 Apr 2020 07:56:01 +0000 (16:56 +0900)]
[Filter/Common] Lower cyclomatic-complexity

The CC value of the set-property function was 57.
Lower it down!

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[CAPI] Lower cyclomatic-complexity
MyungJoo Ham [Wed, 8 Apr 2020 09:45:59 +0000 (18:45 +0900)]
[CAPI] Lower cyclomatic-complexity

The CC value of the two functions was 21.
Lower it down!

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Android/API] init nnstreamer and version info
Jaeyun [Thu, 9 Apr 2020 10:53:07 +0000 (19:53 +0900)]
[Android/API] init nnstreamer and version info

1. nnstreamer version is empty, add definition of version info.
2. add NNStreamer.java in native build.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Android/Test] add simple test for NNFW
Jaeyun [Wed, 8 Apr 2020 11:36:07 +0000 (20:36 +0900)]
[Android/Test] add simple test for NNFW

Both single-shot and pipeline, add simple test to validate NNFW model.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Android/NNFW] add NNFW
Jaeyun [Wed, 8 Apr 2020 10:48:35 +0000 (19:48 +0900)]
[Android/NNFW] add NNFW

Update build script and API to support NNFW.

TODO : fix/update prebuilt libs of NNFW later (now CPU only)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[C-API] same mem ptr
Jaeyun [Thu, 9 Apr 2020 10:05:34 +0000 (19:05 +0900)]
[C-API] same mem ptr

If user gets tensor data and tries to update it, memcpy is unnecessary.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Mediapipe] required script files of meson build script
Hyoung Joo Ahn [Wed, 8 Apr 2020 06:30:04 +0000 (15:30 +0900)]
[Mediapipe] required script files of meson build script

this script generate shared libs with internal/external object files of mediapipe.

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
4 years ago[Mediapipe] add meson option & build script for mediapipe
Hyoung Joo Ahn [Wed, 8 Apr 2020 06:29:56 +0000 (15:29 +0900)]
[Mediapipe] add meson option & build script for mediapipe

This is a initial version of meson script about mediapipe. It will be used to development mediapipe as an external filter like other filters.

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
4 years agoStart development of 1.5.2 as 1.6.0-RC3 accepted/tizen/unified/20200408.131442 submit/tizen/20200408.065121
MyungJoo Ham [Wed, 8 Apr 2020 03:38:58 +0000 (12:38 +0900)]
Start development of 1.5.2 as 1.6.0-RC3

I might wait for some of the following PRs before merging this version mark.
- #2244 #2246 #2247 #2248 #2249

Changes during 1.5.1:

1.5.1 -> 1.5.2
- Use gmodule instead of dlfcn for wider compatibility
- Get/Set properties for tensor-filters & C-API.
- Support C++ class as tensor-filter subplugin. (experimental. C++ filter API is not yet fixed)
- Highly configurable Android build. (for smaller app binaries)
- Tensor-Filter auto framework detection mode (C-API support)
- Linux Foundation AI compliance & Github ORG migration
- Upgraded Tensor-Filter API (C)
        - Applied portable logging mechanism.
        - Removed assertion failure for Tizen sensor errors.
- OpenCV compatibility fixes.

- Fixed issues found by static analyzers
- More error/exception handling for robustness
- Shows negative test case statistics

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen/Sensor] Explicitly specify return values.
MyungJoo Ham [Wed, 8 Apr 2020 04:55:47 +0000 (13:55 +0900)]
[Tizen/Sensor] Explicitly specify return values.

Although SENSOR_ERROR_NONE is 0, explicitly specify
the name to increase readability.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Log] Use ml_log* instead of g_* for logging
MyungJoo Ham [Tue, 7 Apr 2020 10:59:36 +0000 (19:59 +0900)]
[Log] Use ml_log* instead of g_* for logging

With ml_log* nnstreamer internal APIs,
we can enable dlog in Tizen and Android logging in Android
while keep using GLIB's logging in other systems.

Fixes #1905

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen/Sensor] Do not assert for sensor not available
MyungJoo Ham [Tue, 7 Apr 2020 10:46:49 +0000 (19:46 +0900)]
[Tizen/Sensor] Do not assert for sensor not available

If a sensor is not available or unknown,
do not assert, but emit error messages and return errors.

Fixes #2219

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Example/custom/opencv] Backward compatibility for old opencv
MyungJoo Ham [Wed, 8 Apr 2020 01:58:02 +0000 (10:58 +0900)]
[Example/custom/opencv] Backward compatibility for old opencv

The previous commit is for OPENCV3. Keep the old code for OPENCV2 or before.

Changed in v2:
- Per the comment from Tae-Young Chung,
"opencv3 also supports this change (opencv3 support c++)
how old opencv version should be supported? for example, opencv2.x?"
The backward compatibility patch is adjusted to support 2 or before.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Example/custom/opencv] Use enumeration in imgproc.hpp
Tae-Young Chung [Wed, 8 Apr 2020 01:32:23 +0000 (10:32 +0900)]
[Example/custom/opencv] Use enumeration in imgproc.hpp

From opencv4, usage of enumeration in c header files causes build failure
unless they are explicitly included.
Change the enumeration in types_c.h to InterpolationFlags in imgproc.hpp.

Change-Id: I521a09b9846d15a6beb8dad95f887681e2b59994
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
4 years ago[Tests/CAPI] Elimiate a whitespace in invoke_dynamic_success_02_p
Wook Song [Wed, 8 Apr 2020 03:31:28 +0000 (12:31 +0900)]
[Tests/CAPI] Elimiate a whitespace in invoke_dynamic_success_02_p

This is a trivial modification eliminating a trailing whitespace in the
'invoke_dynamic_success_02_p' test case.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests/CAPI] Add a #ifdef guard for test cases that require tflite
Wook Song [Wed, 8 Apr 2020 03:27:02 +0000 (12:27 +0900)]
[Tests/CAPI] Add a #ifdef guard for test cases that require tflite

This patch adds a #ifdef guard for the test cases which require
TensorFlow Lite.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests] Use NNSTREAMER_SO_FILE_EXTENSION instead of the local one
Wook Song [Wed, 8 Apr 2020 02:08:10 +0000 (11:08 +0900)]
[Tests] Use NNSTREAMER_SO_FILE_EXTENSION instead of the local one

In order to support the shared library on multiple platforms, the file
extension corresponding to each platform is defined in
nnstreamer_conf.h. To avoid code duplication, this patch replaces the
local defines in test code with NNSTREAMER_SO_FILE_EXTENSION.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Log] Use ml_log* instead of g_* for logging
MyungJoo Ham [Tue, 7 Apr 2020 10:59:36 +0000 (19:59 +0900)]
[Log] Use ml_log* instead of g_* for logging

With ml_log* nnstreamer internal APIs,
we can enable dlog in Tizen and Android logging in Android
while keep using GLIB's logging in other systems.

ps. Removed G_DECL from nnstreamer_log because it is
independent from glib.

Fixes #1905

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[tests] Fix pipeline state check methods
gichan-jang [Tue, 7 Apr 2020 06:51:33 +0000 (15:51 +0900)]
[tests] Fix pipeline state check methods
The direction of the operator determining the timeout was wrong and it was modified.
The timeout was too long in the test, so I reduced it.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Android/Build] option to get sdk path
Jaeyun [Thu, 26 Mar 2020 04:11:01 +0000 (13:11 +0900)]
[Android/Build] option to get sdk path

1. add option to get gst/nns root dir and android sdk path.
2. check instrument test result if test is enabled.
3. prepare ci build.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[Tizen 4.0] Disable mvnc packages in older Tizen
MyungJoo Ham [Tue, 31 Mar 2020 03:23:14 +0000 (12:23 +0900)]
[Tizen 4.0] Disable mvnc packages in older Tizen

If mvnc build is turned off, do not package them.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen 4.0-5.5] Disable tizen-sensor support if Tizen < 6
MyungJoo Ham [Tue, 31 Mar 2020 02:41:23 +0000 (11:41 +0900)]
[Tizen 4.0-5.5] Disable tizen-sensor support if Tizen < 6

Tizen sensor support works since Tizen 5.5 and
it officially supports sinze Tizen 6.0
Disable if if it is < 6

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen 4.0] Disable code w/ GST1.8 requirements if GST < 1.8
MyungJoo Ham [Tue, 31 Mar 2020 02:13:37 +0000 (11:13 +0900)]
[Tizen 4.0] Disable code w/ GST1.8 requirements if GST < 1.8

src_iio uses GST 1.8 APIs.
A few unit tests uses GST 1.8 APIs

Do not build them if it is < 1.8.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen 4.0/CAPI] Disable Tizen 5.5+ advanced features
MyungJoo Ham [Mon, 30 Mar 2020 10:42:43 +0000 (19:42 +0900)]
[Tizen 4.0/CAPI] Disable Tizen 5.5+ advanced features

We cannot support audio/video resource auto detection
with Tizen 4.0

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen 4.0] Make it compatible with GStreamer 1.6
MyungJoo Ham [Mon, 30 Mar 2020 10:04:08 +0000 (19:04 +0900)]
[Tizen 4.0] Make it compatible with GStreamer 1.6

gst_element_class_add_staic_pad_template is introduced with
GStreamer 1.8

For Tizen 4.0, which uses GStreamer 1.6, use
gst_element_class_add_pad_template() instead if
it is < 1.8.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen 4.0/C-API] Detach mm-resource-manager
MyungJoo Ham [Fri, 27 Mar 2020 07:26:23 +0000 (16:26 +0900)]
[Tizen 4.0/C-API] Detach mm-resource-manager

mm-resource-manager is not available at Tizen 4.0.
Do not depend on Tizen API mm-resource-manager if it is Tizen 4.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tizen 4.0/Dist] Update spec for different Tizen versions.
MyungJoo Ham [Fri, 27 Mar 2020 06:42:10 +0000 (15:42 +0900)]
[Tizen 4.0/Dist] Update spec for different Tizen versions.

A Tizen 4.0 device has decided to use nnstreamer for its updates
and the PM decided not to upgrade Tizen version of the product :(

WTH, let's support Tizen 4.0 as well.

This commit prepares other 4.0 backport tasks by providing
infra to distinguish Tizen version at build time.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter] Unittest for tensor filter auto option submit/tizen/20200407.071404
gichan-jang [Tue, 17 Mar 2020 11:42:31 +0000 (20:42 +0900)]
[Filter] Unittest for tensor filter auto option

Add unittest for tensorfilter framework auto detection

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Android/Test] add tc to check classification result
Jaeyun [Thu, 2 Apr 2020 10:53:06 +0000 (19:53 +0900)]
[Android/Test] add tc to check classification result

Using image classification model (tf-lite), check label with max score.
Also add minor tc for coverage.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
4 years ago[capi/util] Change framework auto-detection
gichan-jang [Thu, 2 Apr 2020 04:06:08 +0000 (13:06 +0900)]
[capi/util] Change framework auto-detection
Integrate duplicated code for framework auto detection.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[CAPI] Use EPIPE if ESTRPIPE is not available
Wook Song [Thu, 26 Mar 2020 04:53:06 +0000 (13:53 +0900)]
[CAPI] Use EPIPE if ESTRPIPE is not available

In order to handle the case of the platforms that do not have ESTRPIPE
in their errno.h, ESTRPIPE is defined with EPIPE [1] if it is not
available.

[1] https://gitlab.freedesktop.org/dude/gst-plugins-base/-/commit/a4b94e6c69525e404354cbd3d0b67ae7e001f385

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests/CAPI] Fix test case to stable in arm arch
gichan-jang [Fri, 3 Apr 2020 06:33:12 +0000 (15:33 +0900)]
[Tests/CAPI] Fix test case to stable in arm arch
Fixed intermittent failure of test case due to slow speed of arm.
Sometimes the number of buffers stored in files are different.
Wait until EOS so that a fixed number of buffers can be saved.

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Tools/dev] Check if *.py is running on shell
Jihoon Lee [Thu, 2 Apr 2020 01:56:54 +0000 (10:56 +0900)]
[Tools/dev] Check if *.py is running on shell

Add `if __name__ == '__main__'` to check if *.py is running on
shell to prevent unwanted crash if users happen to import those files
 to customize tools.

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
4 years ago[Dist/Tizen] Correct LD_LIBRARY_PATH for NCSDK2/Edge-TPU test cases
Wook Song [Tue, 31 Mar 2020 02:02:00 +0000 (11:02 +0900)]
[Dist/Tizen] Correct LD_LIBRARY_PATH for NCSDK2/Edge-TPU test cases

This patch corrects LD_LIBRARY_PATH where the test helper shared
libraries are placed for NCSDK2 and Edge-TPU test cases in the Tizen
RPM spec file.

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

Support tensor filter framework v1 callbacks for the pipeline

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Doc] Add webp files showing some example apps.
Yongjoo Ahn [Fri, 3 Apr 2020 07:28:38 +0000 (16:28 +0900)]
[Doc] Add webp files showing some example apps.

- README.md: Add three images of ubuntu native apps and links to nnstreamer-example repos

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years ago[CODEOWNERS] Update reviewer lists
MyungJoo Ham [Thu, 2 Apr 2020 05:27:13 +0000 (14:27 +0900)]
[CODEOWNERS] Update reviewer lists

1. update organization name
2. add zhoonit, the newly employed member.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[CAPI/test/comment] Fix @brief of unittest for clarification
Jihoon Lee [Fri, 3 Apr 2020 01:31:25 +0000 (10:31 +0900)]
[CAPI/test/comment] Fix @brief of unittest for clarification

Changed availability of **custom backend** -> **NNFW | NCSDK2 | ARMNN"

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
4 years ago[Filter/nnfw] Add check nnfw availability
gichan-jang [Thu, 2 Apr 2020 02:28:42 +0000 (11:28 +0900)]
[Filter/nnfw] Add check nnfw availability

Related issue : #2226 [GBS] Failed test cases with --define "unit_test 1"
Add nnfw check availability method.
It fixs 'ml_check_nnfw_availability' with NNFW always returns true for any H/W resources

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[Doc] Update tools/development
Jihoon Lee [Thu, 2 Apr 2020 01:21:31 +0000 (10:21 +0900)]
[Doc] Update tools/development

This updates README.md in tools/development to demonstrate newly added tools.

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
4 years ago[Ext/Filter/Meson/EdgeTPU] Add build_rpath when test is enabled
Wook Song [Wed, 1 Apr 2020 05:40:18 +0000 (14:40 +0900)]
[Ext/Filter/Meson/EdgeTPU] Add build_rpath when test is enabled

In order to provide the proper location of the test helper library which
mocks edgetpu.so, this patch adds build_rpath to the shared_object
statement in the meson build script for the edgeTPU filter extensions
when 'enable-test' is true.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Doc] Fix typo in CHANGES
Jihoon Lee [Sat, 4 Jan 2020 04:44:33 +0000 (13:44 +0900)]
[Doc] Fix typo in CHANGES

Fix typos and clarify some sentences

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
4 years ago[LF/AI Migration] Update github repo URLs (manual)
MyungJoo Ham [Tue, 31 Mar 2020 09:14:47 +0000 (18:14 +0900)]
[LF/AI Migration] Update github repo URLs (manual)

Update github repo URL related texts manually.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[LF/AI Migration] Update github repo URLs (auto)
MyungJoo Ham [Tue, 31 Mar 2020 08:15:35 +0000 (17:15 +0900)]
[LF/AI Migration] Update github repo URLs (auto)

This includes automatically replaced parts only.

/NNStreamer/$ grep -H -o -r "github.com\/nnsuite\/nnstreamer" *   | grep -o "^[^:]*" > list
/NNStreamer/$ for X in `cat list`; do sed -i 's|github.com/nnsuite/nnstreamer|github.com/nnstreamer/nnstreamer|' $X; done

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Ext/Filter/NNFW] Add missing '\n' to the error messages
Wook Song [Tue, 31 Mar 2020 03:22:03 +0000 (12:22 +0900)]
[Ext/Filter/NNFW] Add missing '\n' to the error messages

g_printerr() requires '\n'. This patch adds '\n' to the error messages
for pretty look.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Repo/Sink] Consider a failure case of the render-buffer-function
Wook Song [Thu, 19 Mar 2020 05:11:28 +0000 (14:11 +0900)]
[Repo/Sink] Consider a failure case of the render-buffer-function

A failure case of the function, gst_tensor_reposink_render_buffer, was
not carefully considered. Therefore, the pipeline becomes stuck when
gst_tensor_reposink_render_buffer fails. In order to avoid such situation,
this patch modifies the function to explicitly return GST_FLOW_ERROR when
a buffer could not be rendered.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests/CAPI] Elminate comparison between signed and unsigned
Wook Song [Thu, 26 Mar 2020 04:44:08 +0000 (13:44 +0900)]
[Tests/CAPI] Elminate comparison between signed and unsigned

This patch fixes trivial build warnings related to -Wsign-compare.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Dist/Tizen] Add workaround for mvnc filter test failure on Tizen accepted/tizen/unified/20200331.030822 submit/tizen/20200330.093451
Wook Song [Mon, 30 Mar 2020 07:22:46 +0000 (16:22 +0900)]
[Dist/Tizen] Add workaround for mvnc filter test failure on Tizen

This patch disables the test cases for the mvnc2 tensor filter which
fails on Tizen 6.0 DA FHUB.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years agoTAOS-CI: Updated the configuration files
Geunsik Lim [Wed, 25 Mar 2020 01:57:23 +0000 (10:57 +0900)]
TAOS-CI: Updated the configuration files

New version of TAOS-CI is released on Mar-24-2020.
* Release note - https://github.com/nnsuite/TAOS-CI/releases/tag/v1.5.20200324

This commit is to update the existing configuration files of the nnstreamer
GitHub repository. The TAOS-CI can automatically load the configuraiton files
of the nnstreamer GitHub repository. Note that you do not must execute
the "update/merge" action on the configuration files that include the passwords
for security.

**Changelog**
  * Updated configuration files
  * Updated README.md file
  * Removed unnecessary files (Deprecated)

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
4 years ago[Tests/CAPI] Abort the current test when ml_single_open is failed
Wook Song [Thu, 26 Mar 2020 09:07:03 +0000 (18:07 +0900)]
[Tests/CAPI] Abort the current test when ml_single_open is failed

Using the instance of the model handle after failing to ml_single_open
causes undefined behaviour. To prevent such cases, this patch changes
the line for checking the result of ml_single_open() from EXPECT_EQ to
ASSERT_EQ that aborts the current test function.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/Python/CXX] Do not use 'register' as a storage-class-specifier
Wook Song [Thu, 26 Mar 2020 01:40:03 +0000 (10:40 +0900)]
[Filter/Python/CXX] Do not use 'register' as a storage-class-specifier

In C++11, the use of the register keyword as a storage-class-specifier
is deprecated [1] and this keyword is excluded from
storage-class-specifiers in C++17 [2]. In order to avoid build warnings
from the old python2.7 code, this patch adds a workaround for it.

[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4193.html#809
[2] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Android/Build] add filter cpp suport in android build
Jaeyun [Wed, 25 Mar 2020 10:53:03 +0000 (19:53 +0900)]
[Android/Build] add filter cpp suport in android build

add filter subplugin-cpp base class in android build.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>