platform/upstream/nnstreamer.git
5 years agoRelease of NNStreamer 0.2.0 v0.2.0
MyungJoo Ham [Mon, 27 May 2019 10:09:30 +0000 (19:09 +0900)]
Release of NNStreamer 0.2.0

0.1.3 RC has become 0.2.0 as this version is accepted by Tizen 5.5 M1.

- A lot of security issues and bugs fixed (for Tizen 5.5 M1 release)
- Tizen Public C-API Pipeline for 5.5 M1
- Tizen Public C-API SingleShot Prototype
- Yocto/Openembedded layer released
- ROS sink/src
- IIO support
- Android source draft
- Python custom filter
- Android sample application released
- Tensorflow-lite / NNAPI support

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Api/Tizen] unref object after usage
Jaeyun [Tue, 28 May 2019 09:38:20 +0000 (18:38 +0900)]
[Api/Tizen] unref object after usage

unref caps and pad data after getting each object

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Api/Tizen] add macro for logging
Jaeyun [Tue, 28 May 2019 08:56:44 +0000 (17:56 +0900)]
[Api/Tizen] add macro for logging

add macros for dlog message and replace all dlog_print()

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Api/Tizen] change function name
Jaeyun [Tue, 28 May 2019 08:30:47 +0000 (17:30 +0900)]
[Api/Tizen] change function name

change function name and indent rule in tizen-capi.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/MvNCSDK] Write callbacks for getting dimensions of in/out tensor
Wook Song [Mon, 27 May 2019 05:22:13 +0000 (14:22 +0900)]
[Filter/MvNCSDK] Write callbacks for getting dimensions of in/out tensor

This patch fills the bodies of callback functions, getInputDimension and
getOutputDimensions, which return the dimension information of input and
output tensor of this filter.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Filter/MvNCSDK] Implement callbacks for open/close of filter framework
Wook Song [Thu, 23 May 2019 08:55:22 +0000 (17:55 +0900)]
[Filter/MvNCSDK] Implement callbacks for open/close of filter framework

This patch implements callback functions for opening and closing
GstTensorFilterFramework for the Intel Movidius Neural Compute Stick
sub-plugin of tensor_filter.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Conf] add option to enable symbolic link
Jaeyun [Mon, 13 May 2019 06:42:39 +0000 (15:42 +0900)]
[Conf] add option to enable symbolic link

In nnstreamer ini, add new option to enable/disable symbolic link.
Add internal function to check a library is available with symlink option.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Decoder] validate sub-plugin data
Jaeyun [Thu, 2 May 2019 12:00:49 +0000 (21:00 +0900)]
[Decoder] validate sub-plugin data

Check decoder sub-plugins data before registration.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[PythonFilter/Testcases] Add some testcases for Python filter
Dongju Chae [Fri, 17 May 2019 08:23:22 +0000 (17:23 +0900)]
[PythonFilter/Testcases] Add some testcases for Python filter

I've added some existing testcases
- passthrough.py
- scaler.py

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
5 years ago[Meson] remove unnecessary option
Jaeyun [Mon, 13 May 2019 02:51:48 +0000 (11:51 +0900)]
[Meson] remove unnecessary option

For opencv test, 'enable-opencv-test' is unnecessary option.
Check dependency of opencv pkg and build libraries when found the dependency.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Unittest] GCC7-GTEST compatibility
MyungJoo Ham [Fri, 17 May 2019 07:15:26 +0000 (16:15 +0900)]
[Unittest] GCC7-GTEST compatibility

GCC7 has stricter rules on signed-unsigned comparison.

Update unit-test cases to avoid gtest errors with gcc7.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Conf] add flag to load path from env-var
Jaeyun [Tue, 7 May 2019 08:17:39 +0000 (17:17 +0900)]
[Conf] add flag to load path from env-var

Parse ini file and add sub-plugins path from env-var. (default false)
For unittest, add temorary configuration to read env variables.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[PythonFilter/Build] Update build files for Ubuntu/Tizen packaging
Dongju Chae [Thu, 16 May 2019 06:52:23 +0000 (15:52 +0900)]
[PythonFilter/Build] Update build files for Ubuntu/Tizen packaging

Changed ubuntu/tizen build files to support Python subplugin/api

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
5 years ago[Filter/MvNCSDK/Meson] Add a build dependency on NCSDK2
Wook Song [Tue, 14 May 2019 02:51:50 +0000 (11:51 +0900)]
[Filter/MvNCSDK/Meson] Add a build dependency on NCSDK2

In order to use NCSDK v2 in the Intel Movidius Neural Compute Stick
sub-plugin of tensor_filter, this patch adds a build dependency on
it to the meson build script.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Filter] Add skeleton for Intel Movidius Neural Compute Stick support
Wook Song [Mon, 13 May 2019 08:23:00 +0000 (17:23 +0900)]
[Filter] Add skeleton for Intel Movidius Neural Compute Stick support

This patch adds skeleton code of a tensor_filter sub-plugin using Neural
Compute SDK ver.2 for Intel Movidius Neural Compute Stick support. The
build tree is also revised to include this sub-plugin.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Decoder/Api] remove output type
Jaeyun [Mon, 29 Apr 2019 08:29:42 +0000 (17:29 +0900)]
[Decoder/Api] remove output type

Remove output type in sub-plugin definition.
Output mime-type depends on sub-plugins out caps.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Decoder] subplugin mode only
Jaeyun [Fri, 26 Apr 2019 09:20:20 +0000 (18:20 +0900)]
[Decoder] subplugin mode only

Support sub-plugins only.
Remove unnecessary private properties and code clean.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Decoder/Api] change function name
Jaeyun [Fri, 26 Apr 2019 07:34:04 +0000 (16:34 +0900)]
[Decoder/Api] change function name

change decoder register function / struct name

TODO : refactor decoder main (support plugin mode only)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Conf] code clean
Jaeyun [Thu, 9 May 2019 06:41:56 +0000 (15:41 +0900)]
[Conf] code clean

1. remove unused val error. (set NULL to call glib functions)
2. add function to parse bool from string
3. rename functions and clean-up code

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Conf/Tensorflow] remove default flag in conf setting
Jaeyun [Thu, 9 May 2019 03:59:36 +0000 (12:59 +0900)]
[Conf/Tensorflow] remove default flag in conf setting

Remove default flag about tensorflow memory optimization.
In tensorflow sub-plugin, read this option using custom-bool function.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Common] function to get element size
Jaeyun [Mon, 29 Apr 2019 04:38:29 +0000 (13:38 +0900)]
[Common] function to get element size

Add function to get element size.
Remove variable about element size definition in header.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Common] function to get element type str
Jaeyun [Thu, 25 Apr 2019 07:31:38 +0000 (16:31 +0900)]
[Common] function to get element type str

define function to get tensor type string

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Merge/Mux] common functions about time-sync option
Jaeyun [Thu, 25 Apr 2019 05:50:36 +0000 (14:50 +0900)]
[Merge/Mux] common functions about time-sync option

In the element merge/mux, add common functions about time-sync option.
Also refactor function name and param to handle sync option.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Tizen/API] Add 'remarks' information for specific functions
Sangjung Woo [Fri, 10 May 2019 05:57:25 +0000 (14:57 +0900)]
[Tizen/API] Add 'remarks' information for specific functions

This patch adds the remarks information to properly release allocated
memory space.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Tizen/API] Make a verb for the third person singular
Sangjung Woo [Fri, 10 May 2019 05:22:39 +0000 (14:22 +0900)]
[Tizen/API] Make a verb for the third person singular

To comply with Tizen API Process, this patch makes a verb for the third
person singular in doxygen documentation.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Tizen/API] Make a consistency in naming of GStreamer
Sangjung Woo [Fri, 10 May 2019 02:34:34 +0000 (11:34 +0900)]
[Tizen/API] Make a consistency in naming of GStreamer

This patch makes a consistency in naming of GStreamer.
* Normal case: GStreamer
* URL only: gstreamer

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Meson] add minimal warning flag
Jaeyun [Fri, 3 May 2019 08:02:08 +0000 (17:02 +0900)]
[Meson] add minimal warning flag

add minimal flags to prevent build warning

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Repo] move repo sources into one directory
Jaeyun [Fri, 3 May 2019 08:34:52 +0000 (17:34 +0900)]
[Repo] move repo sources into one directory

tensor-repo is not a common header and can be built only in repo directory.
Move files about tensor-repo into tensor_repo directory and clean up sources.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Common] remove typefind function
Jaeyun [Thu, 25 Apr 2019 09:04:35 +0000 (18:04 +0900)]
[Common] remove typefind function

Remove typefind function.

TODO
Consider to add typefind later in tensor-save/load plugins.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Tizen/API] Make API signature as single line
Sangjung Woo [Thu, 9 May 2019 01:46:05 +0000 (10:46 +0900)]
[Tizen/API] Make API signature as single line

This patch makes the API signature as single line to comply with Tizen
API style. This is requested by Sunggyu Choi who is in charge of Tizen
API.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Tizen/API] Update omitted return codes
Sangjung Woo [Thu, 9 May 2019 01:36:39 +0000 (10:36 +0900)]
[Tizen/API] Update omitted return codes

This patch updates the omitted return codes for Tizen API.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Tizen/API] fix the typos in header
Sangjung Woo [Thu, 9 May 2019 01:22:18 +0000 (10:22 +0900)]
[Tizen/API] fix the typos in header

This patch fixes the minor typos in header file.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Build/Meson] remove unnecessary flag
Jaeyun [Thu, 9 May 2019 02:26:26 +0000 (11:26 +0900)]
[Build/Meson] remove unnecessary flag

Meson v0.50 supports the install arg in configure_file().
If install_dir is set, configured file will be installed.

Also, TEST_TENSORFLOW in rpm spec is unnecessary.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Tizen/API] License Tizen-CAPI as LGPL 2.1
MyungJoo Ham [Wed, 8 May 2019 11:27:59 +0000 (20:27 +0900)]
[Tizen/API] License Tizen-CAPI as LGPL 2.1

Unify the licences of subpackages.
Fortunately, there are only a few related contributors and
we have re-licensing agreements in CoC as well.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Tizen/API] Rename tizen-api.h to nnstreamer.h
MyungJoo Ham [Wed, 8 May 2019 08:11:27 +0000 (17:11 +0900)]
[Tizen/API] Rename tizen-api.h to nnstreamer.h

The file name "tizen-api.h" is ubsurd for Tizen application writers.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Tizen/API] Module group hierarchy fix
MyungJoo Ham [Wed, 8 May 2019 06:45:31 +0000 (15:45 +0900)]
[Tizen/API] Module group hierarchy fix

NNStreamer Pipeline is in NNStreamer group.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[UNITTEST] Skip the test when there is not tensorflow and lite
jijoong.moon [Wed, 17 Apr 2019 01:38:18 +0000 (10:38 +0900)]
[UNITTEST] Skip the test when there is not tensorflow and lite

We need to skip tests using tensorflow and lite if they are not
installed. So pkg-config is used to identify their installation.

**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>
5 years ago[Build/Plugin] common plugin registration
Jaeyun [Wed, 24 Apr 2019 12:51:27 +0000 (21:51 +0900)]
[Build/Plugin] common plugin registration

Move all element registration to common file. (warning about function prototype)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Subplugin] handle error case
Jaeyun [Thu, 2 May 2019 11:29:20 +0000 (20:29 +0900)]
[Subplugin] handle error case

update code to handle error case of invalid params.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Subplugin] check symlink before getting handle
Jaeyun [Tue, 30 Apr 2019 08:19:41 +0000 (17:19 +0900)]
[Subplugin] check symlink before getting handle

Add code to check symlink before open file handle.
(fix one of security issues)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter] validate sub-plugin data
Jaeyun [Thu, 2 May 2019 10:44:07 +0000 (19:44 +0900)]
[Filter] validate sub-plugin data

1. Add code to validate nn-framework data before registration.
2. Code clean to set filter properties.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[IIO] open file with with glib function
Jaeyun [Tue, 30 Apr 2019 10:31:29 +0000 (19:31 +0900)]
[IIO] open file with with glib function

Use glib function to open file (fix one of security issues)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Decoder/Sub-plugins] use glib to load labels
Jaeyun [Thu, 2 May 2019 06:21:37 +0000 (15:21 +0900)]
[Decoder/Sub-plugins] use glib to load labels

1. use glib function to load and initialize labels (fix one of security issues)
2. fix exception case when total label is larger then ssd model output

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Repo] handle empty repo data
Jaeyun [Thu, 18 Apr 2019 08:22:38 +0000 (17:22 +0900)]
[Repo] handle empty repo data

If repo has no data or hashtable returns null, this makes exception to set lock or signal.
To prevent this exception, check returned data and handle error case.

Exception case when checking 'gst-inspect-1.0 -a'
tensor-repo made an exception.

TODO: Consider to move repo/reposrc/reposink sources into one directory.
Now tensor-repo is not a common source.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Conf/Subplugins] scan subplugins
Jaeyun [Fri, 19 Apr 2019 10:49:13 +0000 (19:49 +0900)]
[Conf/Subplugins] scan subplugins

1. Scan sub-plugins directory and update only so files.
2. Print the list of sub-plugins using gst-inspect in filter/decoder.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/TF] use glib to parse and compare string
Jaeyun [Tue, 30 Apr 2019 07:31:49 +0000 (16:31 +0900)]
[Filter/TF] use glib to parse and compare string

use glib to compare and parse strings (fix one of security issues)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/Api] move NNFW struct
Jaeyun [Fri, 26 Apr 2019 05:04:05 +0000 (14:04 +0900)]
[Filter/Api] move NNFW struct

Mode the struct NNFW definition and properties into filter-api header.
Change function name and code clean.

TODO : update decoder struct and api also.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[IIO] init local variable
Jaeyun [Thu, 2 May 2019 06:58:48 +0000 (15:58 +0900)]
[IIO] init local variable

Initialize variable to handle memory blocks (fix coverity issue)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Coverity 1050294, 1050288] Dereference before null check
Sangjung Woo [Tue, 30 Apr 2019 07:50:34 +0000 (16:50 +0900)]
[Coverity 1050294, 1050288] Dereference before null check

In order to handle the dereference issue, this patch uses g_strcmp0()
function instead of g_str_equal().

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Coverity 1050034] Resource leak
Sangjung Woo [Tue, 30 Apr 2019 06:01:29 +0000 (15:01 +0900)]
[Coverity 1050034] Resource leak

Since gst_object_get_name() returns a copy of the name string and it
should be freed by calling g_free(). This patch adds the omitted
g_free() function to fix the memory leak issue.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Coverity 1051566] Resource leak
Sangjung Woo [Tue, 30 Apr 2019 05:45:26 +0000 (14:45 +0900)]
[Coverity 1051566] Resource leak

After calling g_file_get_contents(), 'file_contents' variable is not
freed so memory leak occurs. This patch fixes that bug.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Unittest] Added tensorflow-lite model data
jijoong.moon [Tue, 30 Apr 2019 05:24:25 +0000 (14:24 +0900)]
[Unittest] Added tensorflow-lite model data

Add tensorflow-lite model data when test unittest is installed.

**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>
5 years ago[Unittest] add install gen24bBMP.py
jijoong.moon [Mon, 29 Apr 2019 02:14:32 +0000 (11:14 +0900)]
[Unittest] add install gen24bBMP.py

gen24bBMP.py is requried from some of tests

**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>
5 years ago[Meson] remove unnecessary flag
Jaeyun [Wed, 24 Apr 2019 07:54:26 +0000 (16:54 +0900)]
[Meson] remove unnecessary flag

remove unnecessary flag and clean meson script

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Build] fix build warning
Jaeyun [Wed, 24 Apr 2019 06:49:26 +0000 (15:49 +0900)]
[Build] fix build warning

update sources to fix warning (missing-prototypes)

TODO : add function prototype to register tensor_* plugins

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Common] pad info struct
Jaeyun [Wed, 24 Apr 2019 06:33:39 +0000 (15:33 +0900)]
[Common] pad info struct

define common tensor-pad struct used in split/demux

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[IIO] Added support for other/tensors
Parichay Kapoor [Wed, 17 Apr 2019 03:13:54 +0000 (12:13 +0900)]
[IIO] Added support for other/tensors

Added support for other/tensors when merging of channels
with corresponding test cases

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[SVACE] Fix Issue WGID 414649 accepted/tizen/unified/20190425.014439 submit/tizen/20190424.061404 submit/trunk/20190424.060556
jijoong.moon [Tue, 23 Apr 2019 09:37:31 +0000 (18:37 +0900)]
[SVACE] Fix Issue WGID 414649

Threre is svace issue said:

WID:66310927 Return value of a function 'gst_buffer_get_meta' is
dereferenced at tensor_reposrc.c:338 without checking, but it is
usually checked for this function (20/21).

Add check if the meta is null and arise the error.

**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>
5 years ago[Build] remove warning
Jaeyun [Fri, 19 Apr 2019 05:32:33 +0000 (14:32 +0900)]
[Build] remove warning

remove build warning (-Wdiscarded-qualifiers)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[SVACE/IIO] Bugfix of memory leak for iio svace
Parichay Kapoor [Tue, 23 Apr 2019 11:14:13 +0000 (20:14 +0900)]
[SVACE/IIO] Bugfix of memory leak for iio svace

MEMORY_LEAK.EX Dynamic memory referenced by raw_data_base was allocated
by calling function g_malloc and lost

Fixed with updated memory free

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[SVACE] Fix Issue #414638
jijoong.moon [Tue, 23 Apr 2019 09:54:01 +0000 (18:54 +0900)]
[SVACE] Fix Issue #414638

There is svace issuse said:
WID:66310552 Return value of a function 'g_slist_nth' is dereferenced
at tensor_common.c:1096 without checking, but it is usually checked
for this function (195/205).

Add Null check.

**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>
5 years ago[UNITTEST] add tensorflow-lite test cases accorting to option
jijoong.moon [Thu, 18 Apr 2019 05:49:47 +0000 (14:49 +0900)]
[UNITTEST] add tensorflow-lite test cases accorting to option

add
 . nnstreamer_filter_tensorflow-lite
 . nnstreamer_filter_tensorflow
 . nnstreamer_decoder_image_labeling

according to enable-tensorflow and enable-tensorflow-lite option.

**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>
5 years ago[Test/Valgrind] timer to push buffer
Jaeyun [Wed, 17 Apr 2019 08:17:38 +0000 (17:17 +0900)]
[Test/Valgrind] timer to push buffer

1. add timer to push test buffers into appsrc.
2. prevent unittest locked when appsrc cannot send eos event.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson/Test] increase test-timeout
Jaeyun [Mon, 22 Apr 2019 07:30:03 +0000 (16:30 +0900)]
[Meson/Test] increase test-timeout

set unittest timeout to 2 minutes for sink and src_iio stream test.

default 30 seconds may make a timeout error when running unittests in local.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Orc] remove unnecessary code
Jaeyun [Mon, 22 Apr 2019 10:09:13 +0000 (19:09 +0900)]
[Orc] remove unnecessary code

We don't need to init orc functions.
It will be called when creating new orc program.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Split] code clean
Jaeyun [Thu, 18 Apr 2019 03:51:34 +0000 (12:51 +0900)]
[Split] code clean

remove warning, change function and val names, and code clean.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Split] exception to get property
Jaeyun [Wed, 17 Apr 2019 11:46:21 +0000 (20:46 +0900)]
[Split] exception to get property

check null ptr to get the property tensorseg

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Test/Repo] remove unnecessary header
Jaeyun [Thu, 18 Apr 2019 08:31:48 +0000 (17:31 +0900)]
[Test/Repo] remove unnecessary header

1. In testcase of tensor-repo test, it does not need to include repo header.
2. Code clean tensor-repo src/sink

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Build] remove warning
Jaeyun [Thu, 18 Apr 2019 11:56:52 +0000 (20:56 +0900)]
[Build] remove warning

update changes to remove warning message

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[SVACE] Addressess memory leaks
Parichay Kapoor [Thu, 18 Apr 2019 07:31:34 +0000 (16:31 +0900)]
[SVACE] Addressess memory leaks

Resolved memory leaks given by svace for src_iio code as well as tests

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Coverity] Resolved negative returns issue
Parichay Kapoor [Thu, 18 Apr 2019 07:06:12 +0000 (16:06 +0900)]
[Coverity] Resolved negative returns issue

Negative returns: negative value used as argument to a function
expecting a postive value

Resolved with an assert

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Coverity] Resolved memory leaks
Parichay Kapoor [Thu, 18 Apr 2019 06:41:19 +0000 (15:41 +0900)]
[Coverity] Resolved memory leaks

Resource Leak : Leak of memory or pointers to system resources

Resolved with free data pointers

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Coverity] Resolved TOCTOU issuse from coverity
Parichay Kapoor [Thu, 18 Apr 2019 06:30:16 +0000 (15:30 +0900)]
[Coverity] Resolved TOCTOU issuse from coverity

TOCTOU issue : A check occurs on a file's attributes before the file
is used in a priveleged operation, but things may have changed.

Removed file test operation and using stat as a single check operation
as well as file size reading operation.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Tizen/API] Add testcase about src node
Sangjung Woo [Wed, 17 Apr 2019 05:22:43 +0000 (14:22 +0900)]
[Tizen/API] Add testcase about src node

In order to increase test coverage, this patch additionally adds some
test cases for src node.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Tizen/API] Update the comment about nns_pipeline_src_puthandle()
Sangjung Woo [Wed, 17 Apr 2019 02:42:57 +0000 (11:42 +0900)]
[Tizen/API] Update the comment about nns_pipeline_src_puthandle()

This patch updates the header comment of nns_pipeline_src_puthandle()
API. Detailed items are as below.

* Add the omitted return value NNS_ERROR_TRY_AGAIN.
* Set policy as `in` parameter instead of `out` parameter.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Transform/Orc] data ptr in orc function
Jaeyun [Mon, 15 Apr 2019 11:17:03 +0000 (20:17 +0900)]
[Transform/Orc] data ptr in orc function

For add,mul,div op in orc functions, use single array ptr to handle operator.

Orc generated functions have __restrict__ ptr, the pointers overlapping memory regions may cause an error.

To avoid this, pass single array ptr to handle each operator.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[IIO] Refactor sampling frequency handling
Parichay Kapoor [Fri, 12 Apr 2019 11:34:40 +0000 (20:34 +0900)]
[IIO] Refactor sampling frequency handling

1. Refactored handling sampling frequency
2. Added more cases for sampling frequency when files dont exist
3. Renamed functions for better understanding

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Tizen/API] Remove dependency 'tensor_typedef.h'
Sangjung Woo [Mon, 15 Apr 2019 03:55:11 +0000 (12:55 +0900)]
[Tizen/API] Remove dependency 'tensor_typedef.h'

In order to pass the ACR process, 'tensor_typedef.h' in tizen-api.h
should be removed and its related thing also be updated. This patch
handles that issue. Detailed modification are as below.

* Remove dependency for 'nnstreamer/tensor_typedef.h' header
* Add necessary constant and enum variables such as
  NNS_TENSOR_RANK_LIMIT and nns_tensors_info.
* Use nns_tensors_info structure instead of GstTensorsInfo

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[IIO] added more documentation
Parichay Kapoor [Fri, 12 Apr 2019 10:52:08 +0000 (19:52 +0900)]
[IIO] added more documentation

- Updated README.md
- Added section description for the element

V2:
supports -> support

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Build/C-Api] clean build script
Jaeyun [Fri, 12 Apr 2019 07:06:52 +0000 (16:06 +0900)]
[Build/C-Api] clean build script

remove unnecessary dep declare and fix typo

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[IIO] Custom channel index number as input
Parichay Kapoor [Wed, 10 Apr 2019 05:25:33 +0000 (14:25 +0900)]
[IIO] Custom channel index number as input

Added the option for user to specify custom channel number as input
to enable specific channels.
Added test case for custom channel index as well.

V2:
Using hash table for custom channel setting

V3:
Updated property description spec with better format

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[PythonFilter/Subplugin] Add a subplugin for Python custom filters
Dongju Chae [Thu, 11 Apr 2019 09:32:39 +0000 (18:32 +0900)]
[PythonFilter/Subplugin] Add a subplugin for Python custom filters

It's a nnstreamer subplugin for custom filters written in Python.
It supports both Python 2 and 3.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
5 years ago[CONF] remove unnecessary free
Parichay Kapoor [Fri, 12 Apr 2019 06:34:38 +0000 (15:34 +0900)]
[CONF] remove unnecessary free

Remove unnecessary free that caused error with valgrind

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[IIO] Using case insensitive string comparison
Parichay Kapoor [Fri, 12 Apr 2019 04:37:35 +0000 (13:37 +0900)]
[IIO] Using case insensitive string comparison

Using case insensitive string comparison for property decision

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[IIO] bugfixes related to errors from yocto run
Parichay Kapoor [Fri, 12 Apr 2019 02:13:00 +0000 (11:13 +0900)]
[IIO] bugfixes related to errors from yocto run

1. set base src as async, resolves the error of hanging
  without setting base_src as async, _start_complete gets called twice
2. initializing log_file to NULL
3. NULL check for variable before using it for remove/rmdir
4. remove _query function, was incomplete, and complete function
  was same as parent class function

resolve #1353

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[PythonFilter/API] Add a python module to provide NNS-related APIs
Dongju Chae [Thu, 11 Apr 2019 08:27:58 +0000 (17:27 +0900)]
[PythonFilter/API] Add a python module to provide NNS-related APIs

It's a python module which a user will import in a python script.
Currently, only 'TensorShape' type object is supported.
I am currently considering other useful APIs.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
5 years ago[IIO] Enable/Disable buffer at correct state
Parichay Kapoor [Tue, 9 Apr 2019 03:31:36 +0000 (12:31 +0900)]
[IIO] Enable/Disable buffer at correct state

Enabling/Disabling buffer when going from PAUSED to PLAYING state.
This might lead to higher latency but provides latest and correct data.
Enabling in READY to PAUSED can lead to accumulation of frames before playing
and result in unreal latency as well as old data.
This commit will also sync gst timing with iio device time.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[IIO] Added more test cases with corresponding bug fixes
Parichay Kapoor [Tue, 9 Apr 2019 02:59:54 +0000 (11:59 +0900)]
[IIO] Added more test cases with corresponding bug fixes

1. Added test cases for
  - caps verification
  - default restoration
  - setting trigger with number
  - using generic scan element type
  - auto enable channels
2. Corresponding bug fixes

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Tizen/API] TestCase add. "src"
MyungJoo Ham [Tue, 9 Apr 2019 08:06:39 +0000 (17:06 +0900)]
[Tizen/API] TestCase add. "src"

Add unit test cases for Tizen/C-API/Main/source

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Tizen/API] Fix pipeline-src implementation
MyungJoo Ham [Tue, 9 Apr 2019 08:04:24 +0000 (17:04 +0900)]
[Tizen/API] Fix pipeline-src implementation

- Return TensorsInfo with get-src-handle
- Fix src-inputdata with TensorsInfo caching mechanism

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Build/Android] add common definition
Jaeyun [Thu, 11 Apr 2019 06:10:48 +0000 (15:10 +0900)]
[Build/Android] add common definition

define common features to build nnstreamer library for android

TODO: update mk files in nnstreamer-example later

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[IIO] Added more test cases
Parichay Kapoor [Fri, 5 Apr 2019 05:30:10 +0000 (14:30 +0900)]
[IIO] Added more test cases

1. Added test cases when only some of the channels are enabled
2. Bug fix in test case for indexing when filling in data
3. Added test case for using device number and testing name-by-id

V2:
1. Unref the pipeline to invoke finalize()
2. Pipeline variable renamed from src_iio to src_iio_pipeline

V3:
- Integer divide precision updated

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[IIO] Added data validity testcases
Parichay Kapoor [Thu, 4 Apr 2019 08:19:00 +0000 (17:19 +0900)]
[IIO] Added data validity testcases

1. Added test case to check data validity for the element for various data bytes sizes
2. Added a property of timeout while reading file in non-blocking mode.
This allows looping while reading the file along with EAGAIN error.
3. Corrected mask generation
4. IIO dev file is replaced with fifo. Using threads to make these fifo as
opening it blocks unless both read and write mode are opened together.
5. Added test case to validate data with and without trigger.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[Tizen/API] Update header file to comply with Tizen API rule
Sangjung Woo [Tue, 9 Apr 2019 04:48:57 +0000 (13:48 +0900)]
[Tizen/API] Update header file to comply with Tizen API rule

In order to comply with the checklist of Tizen API, this patch modifies
a user header file, which is actually included in the code. Detailed
items of modification are as below.

* Add a period "." at the end of @brief.
* Values NNS_ERROR_PIPELINE_FAIL and TIZEN_ERROR_STREAMS_PIPE have
  different suffixes.
* No description in enum variables.
* Enum names should end with '_e'.
* Please use @param[in], @param[out] or @param[in,out]

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Filter/TF] refcount of tf-buffer
Jaeyun [Mon, 8 Apr 2019 04:56:49 +0000 (13:56 +0900)]
[Filter/TF] refcount of tf-buffer

With mem-optimized flag, always unref tf-buffer after making tensor with passed input data.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Demux] fix invalid pad index
Jaeyun [Mon, 8 Apr 2019 09:45:20 +0000 (18:45 +0900)]
[Demux] fix invalid pad index

1. fix invalid src pad index in tensor-demux
2. add simple testcase for the properties and tensorpick option

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Tizen/API] bugfix when passing a wrong pipeline command
Sangjung Woo [Mon, 8 Apr 2019 04:54:03 +0000 (13:54 +0900)]
[Tizen/API] bugfix when passing a wrong pipeline command

If passing a wrong pipeline command such as non-existent element or
erroneous pipeline, assertion failure occurs in
nns_pipeline_construct(). This is mainly because gst_parse_launch()
could return non-NULL even though the error is set. So this patch checks
both the return value and GError value.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Test:Tizen/API] Add pipeline failure test
Sangjung Woo [Mon, 8 Apr 2019 04:44:08 +0000 (13:44 +0900)]
[Test:Tizen/API] Add pipeline failure test

This patch newly adds the pipeline failure tests when passing the wrong
pipeline command such as non-existent element or erroneous pipeline.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 years ago[Test] checking opencv availability at runtime
Parichay Kapoor [Fri, 5 Apr 2019 06:44:00 +0000 (15:44 +0900)]
[Test] checking opencv availability at runtime

Added option to check opencv availability at runtime.
This simplify meson.build in nnstreamer_example.
Also added verification of the model before running the test.

Resolves #1332

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
5 years ago[IIO] refactor _start()
Parichay Kapoor [Fri, 5 Apr 2019 07:36:48 +0000 (16:36 +0900)]
[IIO] refactor _start()

Refactored _start for code maintainability and understanding.
Resolves #1300

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>