platform/upstream/nnstreamer.git
4 years ago[Android/Api] update condition
Jaeyun Jung [Sun, 22 Sep 2019 07:00:54 +0000 (16:00 +0900)]
[Android/Api] update condition

1. update condition to check the given params.
2. update api description about ml model.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[single-new] Remove dependency over pthread
Parichay Kapoor [Fri, 20 Sep 2019 10:13:16 +0000 (19:13 +0900)]
[single-new] Remove dependency over pthread

Remove the dependency over pthread
Use glib functionalities instead

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Android/Api] fix typo
Jaeyun Jung [Sun, 22 Sep 2019 10:33:31 +0000 (19:33 +0900)]
[Android/Api] fix typo

Fix typo in tensor-info class and update related sample code.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android/Test] base code to run instrumented test
Jaeyun [Thu, 19 Sep 2019 10:52:14 +0000 (19:52 +0900)]
[Android/Test] base code to run instrumented test

Add base code to run Android instrumented test on the target devices.

TODO add testcases for each java class

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[ReadMe] Correct typo in bullet items under Getting Started
Wook Song [Thu, 19 Sep 2019 12:19:44 +0000 (21:19 +0900)]
[ReadMe] Correct typo in bullet items under Getting Started

This patch corrects typo in bullet items under the Getting Started
section.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[CAPI/New-Single] Code Clean
MyungJoo Ham [Thu, 19 Sep 2019 10:16:48 +0000 (19:16 +0900)]
[CAPI/New-Single] Code Clean

For the readability and to prevent mistakes in the future,
- Apply symmetricity to lock/unlock, hide magic lock from programmers
- Apply common ops into macro

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Build] remove warning message
Jaeyun [Thu, 19 Sep 2019 10:47:11 +0000 (19:47 +0900)]
[Build] remove warning message

function declaration to avoid build warning (missing-declaration)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Tests/Plugins] Avoid warnings caused by a GCC bug related to gtest
Wook Song [Wed, 18 Sep 2019 08:43:59 +0000 (17:43 +0900)]
[Tests/Plugins] Avoid warnings caused by a GCC bug related to gtest

A GCC bug [1] might cause warnings related to 'conversion-null' when
using googletest macros with !FALSE as arguments. Therefore, in the case
that Werror is true, the build would be broken by this bug. To avoid
such situation, this patch replaces EXPECT_EQs in the plugin unit tests
with EXPECT_TRUE or EXPECT_FALSE.

[1] https://github.com/google/googletest/issues/322

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[single] Thread safety bug fix
Parichay Kapoor [Thu, 19 Sep 2019 03:56:34 +0000 (12:56 +0900)]
[single] Thread safety bug fix

Added bug fix for thread safe usage
Single shot API use single handle lock for making all its API call thread safe
However, the call to close the API destroys the handle itself making the
call to close not thread safe
Added a global lock to make closing of handles thread safe

Further, all the single handle locks are acquired inside the global lock
to ensure that single handle is not closed while the magic has been verified
and the local lock is not acquired

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Clean/SAM] add common functions
Jaeyun [Tue, 17 Sep 2019 07:58:42 +0000 (16:58 +0900)]
[Clean/SAM] add common functions

1. define common functions to reduce complexity
2. condition to print log message about nnapi

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[build] Added cleanup after android/ubuntu build
Parichay Kapoor [Thu, 19 Sep 2019 03:18:51 +0000 (12:18 +0900)]
[build] Added cleanup after android/ubuntu build

Added cleanup of patches after android/ubuntu build
Changed relative path of files to patches in patch file

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[build] Use patch file for modification in build
Parichay Kapoor [Wed, 4 Sep 2019 05:59:53 +0000 (14:59 +0900)]
[build] Use patch file for modification in build

Use patch file to modify the nnstreamer.h when building for non-tizen systems

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Readme] Update deployment status
MyungJoo Ham [Wed, 18 Sep 2019 06:58:48 +0000 (15:58 +0900)]
[Readme] Update deployment status

We now release macoS and JCenter binaries.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Build] cleanup script
Jaeyun [Wed, 18 Sep 2019 03:44:41 +0000 (12:44 +0900)]
[Build] cleanup script

Fix typo and cleanup build options.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Config] remove unnecessary lines
Jaeyun [Wed, 18 Sep 2019 02:09:05 +0000 (11:09 +0900)]
[Config] remove unnecessary lines

Remove unnecessary lines about tensorflow optimization.
The key of mem-optimize was removed and these lines are now unnecessary.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Single] Added unittests
Parichay Kapoor [Tue, 17 Sep 2019 10:47:04 +0000 (19:47 +0900)]
[Single] Added unittests

Added more unittests for single-shot API testing
1. Multiple runs in parallel with varying timeouts
2. Changing timeout/closing the handle while calling the API in a different thread
3. Closing the handle multiple times
4. Check valid result after increasing the timeout, when earlier it was timing out

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Filter] add common functions
Jaeyun [Mon, 16 Sep 2019 11:21:50 +0000 (20:21 +0900)]
[Filter] add common functions

Add common functions for tensor-filter and filter-single.
1. add struct for common property
2. reduce duplicated code of tensor-filter

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Filter/Sub] use glib-mutex
Jaeyun [Tue, 17 Sep 2019 07:10:23 +0000 (16:10 +0900)]
[Filter/Sub] use glib-mutex

remove pthread header and use g_mutex instead.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Tizen] restricted elements in Tizen accepted/tizen/unified/20190918.102219 submit/tizen/20190917.105643
Jaeyun [Tue, 17 Sep 2019 04:03:32 +0000 (13:03 +0900)]
[Api/Tizen] restricted elements in Tizen

Update the restricted elements in Tizen.

Restricted elements
- capsfilter input-selector output-selector queue tee valve
- appsink appsrc
- audioconvert audiorate audioresample audiomixer
- videoconvert videocrop videorate videoscale videoflip videomixer compositor
- fakesrc fakesink filesrc filesink
- audiotestsrc videotestsrc
- jpegparse jpegenc jpegdec pngenc pngdec
- tcpclientsink tcpclientsrc tcpserversink tcpserversrc udpsink udpsrc
- xvimagesink ximagesink evasimagesink evaspixmapsink glimagesink (mmfw ini)
- theoraenc lame vorbisenc wavenc volume oggmux avimux matroskamux (mmfw ini)
- v4l2src avsysvideosrc camerasrc fimcconvert (mmfw ini)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[CodeClean] remove duplicates
Jaeyun [Wed, 11 Sep 2019 12:16:44 +0000 (21:16 +0900)]
[CodeClean] remove duplicates

remove duplicates and unnecessary code.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[single] Static linking with unit-test
Parichay Kapoor [Mon, 16 Sep 2019 02:32:49 +0000 (11:32 +0900)]
[single] Static linking with unit-test

Updated meson to do static linking with unit-test executable
This resolves #1653

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Android/Api] add timeout in single-shot
Jaeyun [Tue, 10 Sep 2019 10:33:02 +0000 (19:33 +0900)]
[Android/Api] add timeout in single-shot

Add method to set the timeout in single-shot API.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Single] invalid condition to check file extension
Jaeyun [Wed, 11 Sep 2019 07:37:02 +0000 (16:37 +0900)]
[Api/Single] invalid condition to check file extension

1. Fix invalid cond to check file extension.
2. Add proper log message and error code to set tensors info.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[single-shot] Added support for timeout in single-shot
Parichay Kapoor [Thu, 5 Sep 2019 05:39:05 +0000 (14:39 +0900)]
[single-shot] Added support for timeout in single-shot

Added support for timeout in new single-shot API implementation to
comply with the existing single-shot API

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Api/Single] clear old buffer
Jaeyun [Wed, 4 Sep 2019 04:36:11 +0000 (13:36 +0900)]
[Api/Single] clear old buffer

1. Add mutex-lock for internal process.
2. Clear old buffer of appsink before pushing new buffer to appsrc.

When old buffer received in appsink after timeout, next output of invoke() may be the previous result.
To prevent this, clear old sample of appsink before pushing new buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android] update script to release
Jaeyun [Thu, 5 Sep 2019 13:01:34 +0000 (22:01 +0900)]
[Android] update script to release

Add dependency and args for jcenter release.

To upload NNStreamer library, run the script with bintray user name.

./api/android/build-android-lib.sh --release=yes --release_version=$release_ver --bintray_user_name=$user_name --bintray_user_key=$user_key

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Dist/RPM] Added library required by devel package
Parichay Kapoor [Mon, 9 Sep 2019 10:19:59 +0000 (19:19 +0900)]
[Dist/RPM] Added library required by devel package

Added dependency of devel-capi on capi

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[single-shot] Added README.md
Parichay Kapoor [Thu, 5 Sep 2019 06:33:03 +0000 (15:33 +0900)]
[single-shot] Added README.md

Added README.md with small details on the source files and
comparison on the single-shot APIs

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[single-shot] benchmarking the latency
Parichay Kapoor [Tue, 3 Sep 2019 04:46:34 +0000 (13:46 +0900)]
[single-shot] benchmarking the latency

Added benchmarking the latency and running times in the test code
This compares old vs new singleshot api - showing reduction in latency and running-time

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Doc] Update the component-description
MyungJoo Ham [Thu, 5 Sep 2019 07:59:56 +0000 (16:59 +0900)]
[Doc] Update the component-description

This document was way too obsolete. Update it with recent info.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[single-shot] Completion for new single-shot API
Parichay Kapoor [Mon, 2 Sep 2019 10:42:41 +0000 (19:42 +0900)]
[single-shot] Completion for new single-shot API

Completed the implementation for single-shot API without GStreamer
Added a separate binary for this API
Added remaining functions in tensor_filter_single.c
Added another test run in meson and nnstreamer.spec for testing of this new implementation

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[TEST] Fix nnapi test
jijoong.moon [Mon, 9 Sep 2019 02:11:11 +0000 (11:11 +0900)]
[TEST] Fix nnapi test

Fix nnapi test (#1647)

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

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
4 years ago[Test] Add decoder-pose unit test
MyungJoo Ham [Fri, 6 Sep 2019 02:16:03 +0000 (11:16 +0900)]
[Test] Add decoder-pose unit test

Add a fail case and a simple-run case of decoder-pose.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Android/Api] change package name
Jaeyun [Mon, 9 Sep 2019 06:06:11 +0000 (15:06 +0900)]
[Android/Api] change package name

1. Change package name of Android API. (com.samsung.android.nnstreamer > org.nnsuite.nnstreamer)
2. Change directory structure (src > src/main)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[README] Add a link to the 'getting-started' manual for macOS
Wook Song [Fri, 6 Sep 2019 15:45:03 +0000 (00:45 +0900)]
[README] Add a link to the 'getting-started' manual for macOS

This patch adds a link to the 'getting-started' manual for macOS.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Documentation] Add 'getting-started' for macOS
Wook Song [Fri, 6 Sep 2019 15:37:31 +0000 (00:37 +0900)]
[Documentation] Add 'getting-started' for macOS

This patch adds a 'getting-started' manual to guide for using NNStreamer
in macOS. Note that this is just an initial draft.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Fix/Test] nnapi test cases breaks non-Tizen-arm builds
MyungJoo Ham [Sat, 7 Sep 2019 13:43:11 +0000 (22:43 +0900)]
[Fix/Test] nnapi test cases breaks non-Tizen-arm builds

With SSAT updates, this bug has been exposed:
- New test cases of nnapi-tensorflow-lite require nnapi. However,
there are systems that do not support nnapi.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Api/Tizen] base code to convert element in pipeline
Jaeyun [Tue, 13 Aug 2019 04:28:12 +0000 (13:28 +0900)]
[Api/Tizen] base code to convert element in pipeline

1. Add new file for Tizen dependent code.
2. Add base code to check predefined element name in pipeline description.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Common] string util to replace str
Jaeyun [Tue, 13 Aug 2019 04:23:42 +0000 (13:23 +0900)]
[Common] string util to replace str

Add util function to replace string.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android] unnecessary log while runng android-lib
Jaeyun [Thu, 5 Sep 2019 10:43:56 +0000 (19:43 +0900)]
[Android] unnecessary log while runng android-lib

1. add condition to check file path or tensor name
2. remove unnecessary res file in android

This will remove unnecessary log-print while running java custom-filter and tf-lite model.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[macOS/Tests/CodeGen] Add extra pkg-config path
Wook Song [Fri, 6 Sep 2019 06:20:43 +0000 (15:20 +0900)]
[macOS/Tests/CodeGen] Add extra pkg-config path

This patch adds extra pkg-config path for macOS to the codegen test
script.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests] Use SO_EXT instead of hard-coded 'so'
Wook Song [Thu, 5 Sep 2019 15:48:55 +0000 (00:48 +0900)]
[Tests] Use SO_EXT instead of hard-coded 'so'

This patch replaces the hard-coded filename extension, 'so', in the
custom filter, repo_lstm, repo_rnn, and codegen test scripts with
SO_EXT defined at ssat-api.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[TESTS] add test cases for nnapi properity
jijoong.moon [Thu, 29 Aug 2019 02:36:37 +0000 (11:36 +0900)]
[TESTS] add test cases for nnapi properity

Add test cases for reading nnapi property in tensorflow lite example.

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

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
4 years ago[single-shot] Added open/close for the new single-shot implementation
Parichay Kapoor [Fri, 30 Aug 2019 15:04:24 +0000 (00:04 +0900)]
[single-shot] Added open/close for the new single-shot implementation

Added open/close for the new single-shot implementation
New single-shot directly uses tensor-filter subplugin to avoid gstreamer overhead
Get input/output info is also added
The API for the new implementation is not changed.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Dist/RPM] devel required library.
MyungJoo Ham [Thu, 5 Sep 2019 08:15:43 +0000 (17:15 +0900)]
[Dist/RPM] devel required library.

In order to use capi-devel, you need capi.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[API] Fix the errors in package config file
Sangjung Woo [Thu, 5 Sep 2019 08:06:37 +0000 (17:06 +0900)]
[API] Fix the errors in package config file

There are wrong include path and link option in CAPI PC file. This
patch fixes that bug.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years agoRelease of 0.3.0 accepted/tizen/unified/20190906.111929 submit/tizen/20190905.082039 v0.3.0
MyungJoo Ham [Wed, 14 Aug 2019 04:39:13 +0000 (13:39 +0900)]
Release of 0.3.0

Please do SR with this.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Test] Prevent unit-test errors in slow systems
MyungJoo Ham [Wed, 4 Sep 2019 07:21:28 +0000 (16:21 +0900)]
[Test] Prevent unit-test errors in slow systems

In slow systems such as QEMU-ARM, a few test cases fail often.

- Add dynamic timeout for pipeline start
- Add mutex for sink callbacks

Changes in v2:
- Loop of wait_for_start runs if it's READY || PAUSED
- Wait 50us right after start() before state-checking.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Android] update script to remove warning accepted/tizen/unified/20190905.060558 submit/tizen/20190905.013539
Jaeyun [Tue, 3 Sep 2019 07:08:12 +0000 (16:08 +0900)]
[Android] update script to remove warning

Clean up build script and remove warning about duplicates.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[filter_single] Common functions between tensor_filter and tensor_filter_single
Parichay Kapoor [Fri, 30 Aug 2019 15:04:24 +0000 (00:04 +0900)]
[filter_single] Common functions between tensor_filter and tensor_filter_single

Simplified common functions between tensor_filter and tensor_filter_single
Added more implementations in tensor_filter_single

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[filter_single] Added tensor_filter_single prototype
Parichay Kapoor [Thu, 29 Aug 2019 10:51:50 +0000 (19:51 +0900)]
[filter_single] Added tensor_filter_single prototype

Added prototype for tensor_filter_single
tensor_filter_single is going to form the backend for singleshot api
to minimize the latency. This is made to be independent of GStreamer,
supporting all the existing tensor_filter plugins

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Filter/Transform] code clean
Jaeyun [Tue, 3 Sep 2019 12:47:33 +0000 (21:47 +0900)]
[Filter/Transform] code clean

1. remove unnecessary code to get output size in tensor-filter.
2. set null to find operator in tensor-transform.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Single] invalid condition to check model
Jaeyun [Tue, 3 Sep 2019 10:19:02 +0000 (19:19 +0900)]
[Api/Single] invalid condition to check model

1. validate model path before checking the file extension.
2. set pre-defined so extension for custom-filter.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[TF-Lite] Add terminating null
MyungJoo Ham [Tue, 3 Sep 2019 05:37:16 +0000 (14:37 +0900)]
[TF-Lite] Add terminating null

The string list requires a terminating null.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[TESTHUB] Append 'gtest_output' for reporting unittest results to TESTHUB.
Dongju Chae [Mon, 2 Sep 2019 06:48:33 +0000 (15:48 +0900)]
[TESTHUB] Append 'gtest_output' for reporting unittest results to TESTHUB.

This commit appends 'gtest_output' into .spec file to generate .xml gtest output files.
These xml files are reported to TESTHUB (for daily x86_64 build).

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years ago[Filter] Fix svace issue
Sangjung Woo [Mon, 2 Sep 2019 06:21:42 +0000 (15:21 +0900)]
[Filter] Fix svace issue

If the parameter hw of constructor is NNAPI_UNKNOWN, the member variable
accel is not initialized. This patch fixes that bug.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[Doc] fix invalid extension
Jaeyun [Fri, 30 Aug 2019 07:09:06 +0000 (16:09 +0900)]
[Doc] fix invalid extension

fix invalid file extension in transform header

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Build] update build script
Jaeyun [Thu, 29 Aug 2019 06:56:29 +0000 (15:56 +0900)]
[Build] update build script

Fix duplicated and unnecessary code with the updation of nnstreamer features.
1. remove src-iio in android-jni (currently excluded to register the element, so unnecessary.)
2. remove option enable-nnfw in .spec (default false)
3. duplicated feature definition for tizen

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Single] set timeout
Jaeyun [Fri, 2 Aug 2019 10:57:25 +0000 (19:57 +0900)]
[Api/Single] set timeout

Add new function to set the timeout to wait for the output.
The function try_pull is supported from gst 1.10, check gst version and return error code if is not supported.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Tizen] function to get data size
Jaeyun [Fri, 2 Aug 2019 07:24:44 +0000 (16:24 +0900)]
[Api/Tizen] function to get data size

Current function returns total byte size of info handle.
Change this to get the byte size with data index.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Tizen/API] Fix the wrong boilerplate text
Sangjung Woo [Thu, 29 Aug 2019 11:22:27 +0000 (20:22 +0900)]
[Tizen/API] Fix the wrong boilerplate text

This patch fixes the wrong boilerplate text. (Apache -> LGPL-2.1)

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[Filter/Decoder] sub-plugins extension
Jaeyun [Thu, 29 Aug 2019 07:07:58 +0000 (16:07 +0900)]
[Filter/Decoder] sub-plugins extension

Check sub-plugins file extension after supporting mac.

Wook defined the file extension for build target. With this, set sub-plugins name in filter/decoder.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[FILTER] add nnapi property to handle
jijoong.moon [Wed, 14 Aug 2019 06:24:55 +0000 (15:24 +0900)]
[FILTER] add nnapi property to handle

Add nnapi property in the tensor_filter element.
Use nnapi=(true|false)(:(cpu|gpu|npu)) option for tensor_filter
element. For example,

gst-launch-1.0 --gst-plugin-path=${PATH_TO_PLUGIN} filesrc
location=${PATH_TO_IMAGE} ! pngdec ! videoscale ! imagefreeze !
videoconvert ! video/x-raw,format=RGB,framerate=0/1 ! tensor_converter
! tensor_filter framework=tensorflow-lite model=${PATH_TO_MODEL} nnapi=true:gpu ! filesink location=tensorfilter.out.log

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

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
4 years ago[filter plugins] Remove dependency on gst headers
Parichay Kapoor [Wed, 28 Aug 2019 08:02:22 +0000 (17:02 +0900)]
[filter plugins] Remove dependency on gst headers

Remove dependency of tensor_filter plugins and tensor_subplugin on gst headers

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Tests/Common] Use macro as file extension of shared object
Wook Song [Wed, 28 Aug 2019 04:20:13 +0000 (13:20 +0900)]
[Tests/Common] Use macro as file extension of shared object

This patch replaces '.so' with a macro that is defined as file
externsion of shared object according to the platform.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[macOS/Conf] Support .dylib as a file extension of sub-plugins
Wook Song [Tue, 27 Aug 2019 03:52:16 +0000 (12:52 +0900)]
[macOS/Conf] Support .dylib as a file extension of sub-plugins

This patch adds .dylib as a file extension of sub-plugins to support.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[macOS/Tests] Let unit test cases for tensor_sink work on macOS
Wook Song [Tue, 27 Aug 2019 02:18:10 +0000 (11:18 +0900)]
[macOS/Tests] Let unit test cases for tensor_sink work on macOS

This patch updates unit test cases for tensor_sink to make them work on
macOS.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[macOS/Meson/IIO] Exclude tensor source plugin for Linux IIO
Wook Song [Mon, 26 Aug 2019 07:27:38 +0000 (16:27 +0900)]
[macOS/Meson/IIO] Exclude tensor source plugin for Linux IIO

Linux IIO is not compatible with macOS so that this patch excludes
tensor source plugin for Linux IIO from build tree.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Meson] Support macOS
Wook Song [Mon, 26 Aug 2019 02:29:28 +0000 (11:29 +0900)]
[Meson] Support macOS

In order to support macOS, this patch updates the meson build script in
the source root directory to pass macro definition, '__MACOS__', to the
compiler.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[nnfw] Adding nnfw support with nnapi
jijoong.moon [Mon, 12 Aug 2019 23:45:52 +0000 (08:45 +0900)]
[nnfw] Adding nnfw support with nnapi

Support nnfw. If enable-nnfw is on, it will use nnfw.

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

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
4 years ago[Api/Android] add option for tf-lite version
Jaeyun [Thu, 22 Aug 2019 12:43:21 +0000 (21:43 +0900)]
[Api/Android] add option for tf-lite version

update script to set tensorflow-lite version (1.9 and 1.13 available)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Android] add target abi
Jaeyun [Thu, 22 Aug 2019 08:20:02 +0000 (17:20 +0900)]
[Api/Android] add target abi

Update build script to set target abi.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api] code clean
Jaeyun [Thu, 22 Aug 2019 03:47:34 +0000 (12:47 +0900)]
[Api] code clean

1. add struct for state change callback
2. check element pointer before free the resources

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Pipeline] remove unnecessary function
Jaeyun [Thu, 22 Aug 2019 03:28:09 +0000 (12:28 +0900)]
[Api/Pipeline] remove unnecessary function

Remove unnecessaty code to set buffer-free function.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android/Api] add script to build api library
Jaeyun [Wed, 31 Jul 2019 10:19:36 +0000 (19:19 +0900)]
[Android/Api] add script to build api library

Add script to build android-api library.
If runs this script, ext-files are downloaded and run gradle build.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Pipeline] element restriction
Jaeyun [Thu, 8 Aug 2019 11:57:45 +0000 (20:57 +0900)]
[Api/Pipeline] element restriction

Handles element restriction (whitelist for API release)

If needs restriction in pipeline elements, simply set the list in meson option.

e.g. meson -Denable-capi=true -Denable-element-restriction=true -Drestricted-elements='videotestsrc videoconvert' build
this allows videotestsrc and videoconvert with nnstreamer elements.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Pipeline] set state paused while constructing the pipeline
Jaeyun [Wed, 7 Aug 2019 09:41:42 +0000 (18:41 +0900)]
[Api/Pipeline] set state paused while constructing the pipeline

when called construct(), set the pipeline state paused.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Tizen] base code to check plugin name
Jaeyun [Fri, 2 Aug 2019 04:40:32 +0000 (13:40 +0900)]
[Api/Tizen] base code to check plugin name

prepare code to validate the plugins in pipeline.

TODO: update code to initialize white-list for tizen

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Test/bmp2png] Use g_strdup to avoid gcc9 strict checks
MyungJoo Ham [Wed, 14 Aug 2019 14:46:23 +0000 (23:46 +0900)]
[Test/bmp2png] Use g_strdup to avoid gcc9 strict checks

strncpy is required not to use strlen for the length.
Use g_strdup and let glib handle it.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Spec] Fix the bug of post uninstall script.
Sangjung Woo [Tue, 6 Aug 2019 04:12:49 +0000 (13:12 +0900)]
[Spec] Fix the bug of post uninstall script.

Post uninstall script with `-p` option invokes a single program directly
instead of spawning shell script. Because of this reason, below error
occurs when uninstalling package. This patch fixes that bug.

/sbin/ldconfig: relative path `1' used to build cache
warning: %postun(nnstreamer-0.2.1-6.4.i686) scriptlet failed, exit
status 1

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[gcc9-fix] fix strncpy '__builtin_strncpy' issue
MyungJoo Ham [Wed, 14 Aug 2019 11:35:59 +0000 (20:35 +0900)]
[gcc9-fix] fix strncpy '__builtin_strncpy' issue

This fixes:

FAILED: tests/59830eb@@bmp2png@exe/bmp2png.c.o
cc -Itests/59830eb@@bmp2png@exe -Itests -I../tests -I/usr/include/libpng16 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Werror -std=gnu89 '-DVERSION="0.2.1"' -Wredundant-decls -Wwrite-strings -Wformat -Wformat-nonliteral -Wformat-security -Winit-self -Waddress -Wno-multichar -Wvla -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Waggregate-return -Wold-style-definition -Wdeclaration-after-statement '-DNNSTREAMER_CONF_FILE="/etc/nnstreamer.ini"' -DHAVE_ORC=1 -DENABLE_TENSORFLOW_LITE=1 -DENABLE_PYTORCH=1 -DENABLE_CAFFE2=1 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ 'tests/59830eb@@bmp2png@exe/bmp2png.c.o' -MF 'tests/59830eb@@bmp2png@exe/bmp2png.c.o.d' -o 'tests/59830eb@@bmp2png@exe/bmp2png.c.o' -c ../tests/bmp2png.c
In file included from /usr/include/string.h:494,
                 from ../tests/bmp2png.c:36:
In function ‘strncpy’,
    inlined from ‘main’ at ../tests/bmp2png.c:291:3:
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:106:10: error: ‘__builtin_strncpy’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
  106 |   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../tests/bmp2png.c: In function ‘main’:
../tests/bmp2png.c:291:34: note: length computed here
  291 |   strncpy (pngfilename, argv[1], strlen (argv[1]) + 1);
      |                                  ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

This is Case 3 of #1598

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Debian/Unittest] Disable capi-unittest in arm/launchpad.
MyungJoo Ham [Wed, 14 Aug 2019 12:03:42 +0000 (21:03 +0900)]
[Debian/Unittest] Disable capi-unittest in arm/launchpad.

It takes too much time in the launchpad arm emulator.
Disable it to pass unittest-capi.

This resolves another case of #1598

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Debian] Remove tensorflow-dev build-dep for arm64
MyungJoo Ham [Wed, 14 Aug 2019 00:45:13 +0000 (09:45 +0900)]
[Debian] Remove tensorflow-dev build-dep for arm64

We are removing tensorflow-arm64 from our PPA.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Debian] Use Tensorflow only if it's amd64
MyungJoo Ham [Tue, 13 Aug 2019 10:08:23 +0000 (19:08 +0900)]
[Debian] Use Tensorflow only if it's amd64

If it's ARM, don't use tensorflow.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Android/Api] method to get data size
Jaeyun [Mon, 5 Aug 2019 05:28:49 +0000 (14:28 +0900)]
[Android/Api] method to get data size

add method to calculate byte size of tensor data.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Single] invalid output if error occurs
Jaeyun [Fri, 2 Aug 2019 10:46:54 +0000 (19:46 +0900)]
[Api/Single] invalid output if error occurs

1. allocate output buffer after invoke is done.
2. allow one buffer in appsink and drop old buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Test] mark negative testcase
Jaeyun [Tue, 6 Aug 2019 02:35:19 +0000 (11:35 +0900)]
[Test] mark negative testcase

1. Add postfix in tc name for the negative testcases.
2. Update comment for future work.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Build] set python encode for meson
Jaeyun [Mon, 12 Aug 2019 07:06:37 +0000 (16:06 +0900)]
[Build] set python encode for meson

set python-encode utf-8 for meson build.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Filter/Py] remove global val to register subplugin
Jaeyun [Fri, 9 Aug 2019 07:19:13 +0000 (16:19 +0900)]
[Filter/Py] remove global val to register subplugin

SAM result, remove global val about filter-framework.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Debian/armhf] Add build dependency on protobuf accepted/tizen/unified/20190812.235554 submit/tizen/20190812.023633
Wook Song [Fri, 9 Aug 2019 04:43:35 +0000 (13:43 +0900)]
[Debian/armhf] Add build dependency on protobuf

Caffe2-related features, which are enabled by default, require
libprotobuf-dev at build time. This build dependency is omitted only for
armhf architecture among those we support. This patch resolves this
issue.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Meson] Apply work-around for gtest-related failure on meson 0.50.1
Wook Song [Wed, 7 Aug 2019 05:32:55 +0000 (14:32 +0900)]
[Meson] Apply work-around for gtest-related failure on meson 0.50.1

In the case that gtest has been installed via apt (i.e., apt install
libgtest-dev), meson provides the -I options indicating the directory
that does not exist. Therefore, it is failed to build when
'-Wmissing-include-dirs' is set. This patch works around this issue.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Meson] option to disable orc
Jaeyun [Thu, 8 Aug 2019 05:58:25 +0000 (14:58 +0900)]
[Meson] option to disable orc

Add meson-option to disable orc library (default true).
Set -Denable-orc=false if you need to block the orc library.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[PythonFilter] Fix svace errors in python filter
Dongju Chae [Thu, 8 Aug 2019 08:06:23 +0000 (17:06 +0900)]
[PythonFilter] Fix svace errors in python filter

This commit fixes svace errors.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years ago[Readme] Update release status
MyungJoo Ham [Thu, 8 Aug 2019 02:04:52 +0000 (11:04 +0900)]
[Readme] Update release status

We now fully ready for Android & Yocto.
Update the release status

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Meson] remove missed option
Jaeyun [Wed, 7 Aug 2019 05:32:55 +0000 (14:32 +0900)]
[Meson] remove missed option

remove missed option about tensorflow mem-optimize in meson.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[C-API] Add sample code for ml_pipeline_switch_get_pad_list()
Sangjung Woo [Wed, 7 Aug 2019 05:38:29 +0000 (14:38 +0900)]
[C-API] Add sample code for ml_pipeline_switch_get_pad_list()

This patch newly adds the sample code for ml_pipeline_switch_get_pad_list()
function since it looks hard to use. Moremover, it updates the remarks
section for finalizing its allocated memory space.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[C-API] Describe pre & post state of the pipeline
Sangjung Woo [Wed, 7 Aug 2019 04:40:00 +0000 (13:40 +0900)]
[C-API] Describe pre & post state of the pipeline

This patch newly add the pre & post state of the pipeline in C-API.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[C-API] Describe the pipeline state as image
Sangjung Woo [Wed, 7 Aug 2019 02:10:51 +0000 (11:10 +0900)]
[C-API] Describe the pipeline state as image

This patch describes the the pipeline state as image instead of ASCII
text art.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[C-API] apply the review guide of C-API
Sangjung Woo [Tue, 6 Aug 2019 11:28:51 +0000 (20:28 +0900)]
[C-API] apply the review guide of C-API

* Fix the typo (targetting -> targeting)
* Use detailed comments (pipe is NULL? -> Not negotiated?)
* Use detailed URL (github.com/nnsuite/nnstreamer -> https://github.com/nnsuite/nnstreamer)
* Add '*' into omitted comment line

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[C-API] Add PERMISSION_DENIED state for privilege issue
Sangjung Woo [Tue, 6 Aug 2019 11:06:26 +0000 (20:06 +0900)]
[C-API] Add PERMISSION_DENIED state for privilege issue

This patch newly adds the ML_ERROR_PERMISSION_DENIED error code for
privilege issue and its checking logic in ml_get_feature_enabled()
function.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>