platform/upstream/nnstreamer.git
5 years ago[Test] remove unnecesary file
Jaeyun [Mon, 14 Jan 2019 10:08:10 +0000 (19:08 +0900)]
[Test] remove unnecesary file

testcase_mux.tar.gz is now unnecessary.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Repo] Fix the test case dimension
jijoong.moon [Mon, 14 Jan 2019 01:04:12 +0000 (10:04 +0900)]
[Repo] Fix the test case dimension

The input dim of tensor is 3:16:16.

**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 unnecessary installation
Jaeyun [Mon, 14 Jan 2019 01:59:14 +0000 (10:59 +0900)]
[Build] remove unnecessary installation

installing libraries (.a) is unnecessary with meson.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years agoPlug-and-play sub-plugins for Tensor_Filter
MyungJoo Ham [Fri, 11 Jan 2019 06:26:06 +0000 (15:26 +0900)]
Plug-and-play sub-plugins for Tensor_Filter

Allow tensor_filter sub-plugins to be independently built
and attached/detached in run-time with subplugin APIs.

This resolves one of "future work" in ATC 2019 submitted paper already :)

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Converter] remove code to update property
Jaeyun [Mon, 14 Jan 2019 01:28:58 +0000 (10:28 +0900)]
[Converter] remove code to update property

Updating tensor info property may cause an error when doing caps negotiation.

related issue : #941

error case:
1. run pipeviz (e.g., videotestsrc - capsfilter - tensor_converter - tensor_sink)
2. set caps video/x-raw,format=RGB,width=640,height=480 in capsfilter and run pipeline
3. stop pipeline, and change caps (width=320,height=240)
4. run pipeline again, then it will make caps-negotiation failure.

If set tensor_info (line 1199), stop and run pipeline again,
- It resets the flag tensor_configured false. (in gst_tensor_converter_change_state())
- After running pipeline again, gst_tensor_info_validate (line 1189) returned true
  and in-caps is different with saved tensor_info. This makes caps-negotiation failure.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years agoReviewer List Updated
MyungJoo Ham [Mon, 14 Jan 2019 01:34:32 +0000 (10:34 +0900)]
Reviewer List Updated

The two reviewers have left the team.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Meson] change option name
Jaeyun [Fri, 11 Jan 2019 04:12:47 +0000 (13:12 +0900)]
[Meson] change option name

change option to avoid duplicated feature name

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Test] remove warning in testcases
Jaeyun [Tue, 8 Jan 2019 09:45:13 +0000 (18:45 +0900)]
[Test] remove warning in testcases

remove unnecessary path (ld preload)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Build] change dir structure
Jaeyun [Tue, 8 Jan 2019 05:12:40 +0000 (14:12 +0900)]
[Build] change dir structure

1. update meson/cmake to change directory structure (move common files and plugins to gst/nnstreamer)
2. move nnstreamer meson-build to gst/nnstreamer
3. set project args to build nnstreamer

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Example] remove script to build test-app
Jaeyun [Mon, 7 Jan 2019 10:19:39 +0000 (19:19 +0900)]
[Example] remove script to build test-app

1. remove .spec and cmake to build test-app
2. remove unnecessary include in example obj-detection

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Example] Upload the tensorflow example
Hyoung Joo Ahn [Tue, 8 Jan 2019 02:24:22 +0000 (11:24 +0900)]
[Example] Upload the tensorflow example

this example detects objects with ssd model. it works similar with the tf-lite example

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Unittest] Tensorflow unittest with MNIST
Hyoung Joo Ahn [Mon, 7 Jan 2019 06:54:33 +0000 (15:54 +0900)]
[Unittest] Tensorflow unittest with MNIST

the basic unittest of tensorflow with MNIST model. it resolves #994

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Filter] reset prop values when closing nnfw
Jaeyun [Fri, 4 Jan 2019 10:40:31 +0000 (19:40 +0900)]
[Filter] reset prop values when closing nnfw

1. init properties when closing nnfw
2. change logger format and code clean

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Test] add testcases for tensor-aggregator
Jaeyun [Fri, 4 Jan 2019 07:12:24 +0000 (16:12 +0900)]
[Test] add testcases for tensor-aggregator

testcases for testing data concat in tensor-aggregator

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Split] use common functions
Jaeyun [Fri, 4 Jan 2019 03:46:56 +0000 (12:46 +0900)]
[Split] use common functions

1. use nns_memcpy to copy tensor data
2. use common function to get tensor elements count
3. remove unnecessary local val

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] gbs build using meson
Jaeyun [Wed, 19 Dec 2018 11:29:34 +0000 (20:29 +0900)]
[Meson] gbs build using meson

update .spec to build using meson

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] set dependency with include dir
Jaeyun [Thu, 20 Dec 2018 07:25:19 +0000 (16:25 +0900)]
[Meson] set dependency with include dir

declare nnstreamer-lib dependency with include directory

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/TF] change macro to copy in/out tensor
Jaeyun [Thu, 20 Dec 2018 06:14:19 +0000 (15:14 +0900)]
[Filter/TF] change macro to copy in/out tensor

check data type in outside the loop and code clean

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/Cmake] link proper modules
Jaeyun [Wed, 19 Dec 2018 06:57:57 +0000 (15:57 +0900)]
[Filter/Cmake] link proper modules

set pkgs for tensorflow and link with necessary modules

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years agoFixed typo in the comments
MyungJoo Ham [Thu, 20 Dec 2018 06:10:49 +0000 (15:10 +0900)]
Fixed typo in the comments

Fixed trivial typos in the comments.

5 years ago[Filter/Tensorflow] add an exception case for tensorflow
HyoungjooAhn [Wed, 19 Dec 2018 04:26:28 +0000 (13:26 +0900)]
[Filter/Tensorflow] add an exception case for tensorflow

checking the status of tensorflow after running model

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
5 years ago[Filter/TF] fix warning
Jaeyun [Thu, 20 Dec 2018 04:16:03 +0000 (13:16 +0900)]
[Filter/TF] fix warning

To fix coverity issue, init variables and code clean.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/TF/TF-lite] remove link of tensor-common
Jaeyun [Tue, 18 Dec 2018 04:44:07 +0000 (13:44 +0900)]
[Filter/TF/TF-lite] remove link of tensor-common

remove dependency of tensor-common and unnecessary headers

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/Tensorflow] take the original rank of model internally
HyoungjooAhn [Mon, 17 Dec 2018 10:26:01 +0000 (19:26 +0900)]
[Filter/Tensorflow] take the original rank of model internally

to run model, hold the original rank internally

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
5 years ago[Test/TensorMux] Add test cases for multi-tensors multiplexing
Wook Song [Mon, 17 Dec 2018 02:22:06 +0000 (11:22 +0900)]
[Test/TensorMux] Add test cases for multi-tensors multiplexing

This provides unit test cases for multiplexing of multi-tensors.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[TensorMux] Support multi-tensors for input
Wook Song [Mon, 17 Dec 2018 02:14:03 +0000 (11:14 +0900)]
[TensorMux] Support multi-tensors for input

This patch makes the TensorMux element have multi-tensors as its input
stream.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Decoder] remove build warning
Jaeyun [Wed, 19 Dec 2018 03:44:24 +0000 (12:44 +0900)]
[Decoder] remove build warning

rename internal functions and sub-plugin callback

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson/Submodule] install both static/shared libraries
Jaeyun [Mon, 17 Dec 2018 04:29:04 +0000 (13:29 +0900)]
[Meson/Submodule] install both static/shared libraries

build and install both static/shared libraries (filter-submodules and common libs)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] add installation
Jaeyun [Wed, 12 Dec 2018 11:30:23 +0000 (20:30 +0900)]
[Meson] add installation

1. add option to install examples
2. set install path and add configuration
3. install libraries, headers, and examples

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson/Test] add code to make bmp2png for test
Jaeyun [Wed, 12 Dec 2018 07:45:18 +0000 (16:45 +0900)]
[Meson/Test] add code to make bmp2png for test

1. make bmp2png for the unittest
2. set gtest dependency false

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson/Example] dependency of examples
Jaeyun [Wed, 12 Dec 2018 07:28:18 +0000 (16:28 +0900)]
[Meson/Example] dependency of examples

set proper dependencies for each examples.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] code clean
Jaeyun [Wed, 12 Dec 2018 06:24:58 +0000 (15:24 +0900)]
[Meson] code clean

1. add flags for tensorflow and tensorflow-lite
2. set objs with the flags and dependency of libraries
3. build with each plugin files

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Test] Set LD_PRELOAD to the nnstreamer library
Wook Song [Mon, 17 Dec 2018 08:05:29 +0000 (17:05 +0900)]
[Test] Set LD_PRELOAD to the nnstreamer library

Fixes #919

This patch set LD_PRELOAD to libnnstreamer.so in runTest.sh for testing
custom filter and arithmetic/dimchg/stand/transpose/typcast transforms
so that fixing the issue related to the warning messages about
libtensor_filter_tflitecore.so load failure.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[bugfix] fix checking the dimension of input tensor
HyoungjooAhn [Fri, 14 Dec 2018 02:55:34 +0000 (11:55 +0900)]
[bugfix] fix checking the dimension of input tensor

logic is fixed to make it work properly for the any type of input dimension

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
5 years ago[Example/Cmake] remove unnecessary link
Jaeyun [Wed, 12 Dec 2018 04:25:08 +0000 (13:25 +0900)]
[Example/Cmake] remove unnecessary link

Examples don't need to link nnstreamer libs.
Remove this link and add modules for each examples.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Example] remove common header
Jaeyun [Wed, 12 Dec 2018 03:57:27 +0000 (12:57 +0900)]
[Example] remove common header

In custom filter examples, remove tensor-common header.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Test] add plugin path
Jaeyun [Wed, 12 Dec 2018 07:34:29 +0000 (16:34 +0900)]
[Test] add plugin path

set plugin path for the unittest using nnstreamer elements.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter] add condition to check input/output name
HyoungjooAhn [Tue, 11 Dec 2018 04:05:53 +0000 (13:05 +0900)]
[Filter] add condition to check input/output name

check the existance of the value before free for input/output name properties

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
5 years ago[Transform/Orc] remove unnecessary memcpy
Jaeyun Jung [Mon, 10 Dec 2018 14:50:12 +0000 (23:50 +0900)]
[Transform/Orc] remove unnecessary memcpy

Related issue: #975

In arith mode, copying input array to output is unnecessary.
To fix this, add source in orc functions and set the data ptr for each operator.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson/CustomFilter] link custom-filter obj
Jaeyun [Mon, 10 Dec 2018 10:27:33 +0000 (19:27 +0900)]
[Meson/CustomFilter] link custom-filter obj

In example custom-filter, link custom-filter.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/TF] fix warning and check dependency
Jaeyun [Mon, 10 Dec 2018 04:53:48 +0000 (13:53 +0900)]
[Filter/TF] fix warning and check dependency

1. check dependency of protobuf, tensorflow
2. fix build warning and code indentation

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter] Build Error Fix (gcc > 6)
MyungJoo Ham [Sat, 8 Dec 2018 08:58:05 +0000 (17:58 +0900)]
[Filter] Build Error Fix (gcc > 6)

Recent code commit has introduced the following errors in
modern gcc:

```
[ 20%] Building C object gst/tensor_filter/CMakeFiles/tensor_filterOBJ.dir/tensor_filter.c.o
cd /<<PKGBUILDDIR>>/build/gst/tensor_filter && /usr/bin/cc -DENABLE_TENSORFLOW_LITE -DHAVE_ORC=1 -DVERSION=\"0.1.0\" -I/<<PKGBUILDDIR>>/gst/nnstreamer -isystem /usr/include/gstreamer-1.0 -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/orc-0.4  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Werror -fPIC -g -std=c89  -Wno-sign-compare   -o CMakeFiles/tensor_filterOBJ.dir/tensor_filter.c.o   -c /<<PKGBUILDDIR>>/gst/tensor_filter/tensor_filter.c
In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0,
                 from /usr/include/glib-2.0/glib/gtypes.h:32,
                 from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/gstreamer-1.0/gst/gstinfo.h:27,
                 from /<<PKGBUILDDIR>>/gst/tensor_filter/tensor_filter.c:57:
/<<PKGBUILDDIR>>/gst/tensor_filter/tensor_filter.c: In function ‘gst_tensor_filter_set_property’:
/<<PKGBUILDDIR>>/gst/tensor_filter/tensor_filter.c:560:51: error: comparison between pointer and zero character constant [-Werror=pointer-compare]
           g_assert (prop->input_meta.info[i].name != '\0');
                                                   ^
/<<PKGBUILDDIR>>/gst/tensor_filter/tensor_filter.c:560:21: note: did you mean to dereference the pointer?
           g_assert (prop->input_meta.info[i].name != '\0');
                     ^
/<<PKGBUILDDIR>>/gst/tensor_filter/tensor_filter.c:581:52: error: comparison between pointer and zero character constant [-Werror=pointer-compare]
           g_assert (prop->output_meta.info[i].name != '\0');
                                                    ^
/<<PKGBUILDDIR>>/gst/tensor_filter/tensor_filter.c:581:21: note: did you mean to dereference the pointer?
           g_assert (prop->output_meta.info[i].name != '\0');
                     ^
```

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Meson] add unittest
Jaeyun [Fri, 7 Dec 2018 10:40:57 +0000 (19:40 +0900)]
[Meson] add unittest

check dependency of gtest and add exe to run unittest
(command '$ ninja test' will build and start gtest)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] code clean
Jaeyun [Fri, 7 Dec 2018 10:34:42 +0000 (19:34 +0900)]
[Meson] code clean

1. rename nnstreamer include path and dependencies
2. link proper objs
3. fix indentation

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] rename gst/glib dependency
Jaeyun [Fri, 7 Dec 2018 07:55:03 +0000 (16:55 +0900)]
[Meson] rename gst/glib dependency

rename dependencies of gstreamer, glib (follows gst-base)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Converter] code clean
Jaeyun Jung [Sat, 8 Dec 2018 02:05:47 +0000 (11:05 +0900)]
[Converter] code clean

1. move function video-stride to converter.
2. move mainpage tag to nnstreamer.c.
3. in nnstreamer.c, include config header for orc feature.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/Tensorflow] upload tensorflow draft
HyoungjooAhn [Tue, 4 Dec 2018 07:14:25 +0000 (16:14 +0900)]
[Filter/Tensorflow] upload tensorflow draft

this is a draft of tensorflow filter

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
5 years ago[Test] add more testcases
Jaeyun [Thu, 6 Dec 2018 10:12:13 +0000 (19:12 +0900)]
[Test] add more testcases

Using gst-harness, add testcases for the property acceleration in tensor-transform.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Transform/Orc] code clean to prepare meson
Jaeyun [Fri, 7 Dec 2018 03:50:57 +0000 (12:50 +0900)]
[Transform/Orc] code clean to prepare meson

1. Orc feature is defined in config, include config header to prepare meson build.
2. Set default property value with orc feature.
3. Add log message to indicate orc acceleration.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] include orc
Jaeyun [Fri, 7 Dec 2018 04:14:06 +0000 (13:14 +0900)]
[Meson] include orc

1. set base-args and include orc features
2. check orc lib and orcc, and generate orc files in tensor-transform

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Transform] apply orc functions
Jaeyun [Wed, 5 Dec 2018 08:14:33 +0000 (17:14 +0900)]
[Transform] apply orc functions

1. add flags to check orc support
2. add property to set orc acceleration
3. apply orc functions for arith/typecast

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Orc] update functions for divide, typecast
Jaeyun [Wed, 5 Dec 2018 08:10:32 +0000 (17:10 +0900)]
[Orc] update functions for divide, typecast

1. add function _div (float and double only)
2. add typecast to same type (copy input array to output)
3. update opcode for typecast

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter] fix cmake typo about tensorflow
HyoungjooAhn [Wed, 5 Dec 2018 11:27:16 +0000 (20:27 +0900)]
[Filter] fix cmake typo about tensorflow

fix typos at CMakeLists.txt of tensor_filter

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
5 years ago[Orc] add functions for typecast
Jaeyun [Tue, 4 Dec 2018 10:16:47 +0000 (19:16 +0900)]
[Orc] add functions for typecast

1. add typecast functions
2. add testcases for typecast

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Bug Fix] fix unused variables bug
HyoungjooAhn [Tue, 4 Dec 2018 11:43:05 +0000 (20:43 +0900)]
[Bug Fix] fix unused variables bug

it resolves #957 about unused variables

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
5 years ago[Tool] Added a front-end GUI toolkit
Geunsik Lim [Mon, 3 Dec 2018 11:50:07 +0000 (20:50 +0900)]
[Tool] Added a front-end GUI toolkit

Fixed issue #878.

This commit is to provide a front-end GUI application to connect
tools such as tracing, debugging, profiling packages.

After doing a packaging work of back-end applications, the each menu
is going to be interconnected each other.

**Changes proposed in this PR:**
1. Added front-end GUI application

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
5 years ago[Orc] update function for operator add/mul
Jaeyun [Mon, 3 Dec 2018 08:31:35 +0000 (17:31 +0900)]
[Orc] update function for operator add/mul

1. add functions for operator add/mul
2. add functional testcases for orc

TODO :
1. support int64
2. add typecast functions

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years agoStart of 0.1.0 rc1 development
MyungJoo Ham [Mon, 3 Dec 2018 06:33:04 +0000 (15:33 +0900)]
Start of 0.1.0 rc1 development

This commit marks the start of 0.1.0 rc1 development.

The version is jumped to 0.1.0 as it has now enough
number of features for a few real products/applications
and we have full CI/CD support.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years agoRelease of v0.0.3 v0.0.3
MyungJoo Ham [Mon, 3 Dec 2018 05:45:54 +0000 (14:45 +0900)]
Release of v0.0.3

As Sprint 1811A and 1811B conclude along with Coverity/SVACE issues cleared, 0.0.3 is hereby released.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Common/Subplugin] Internal API to handle subplugins
MyungJoo Ham [Tue, 27 Nov 2018 12:28:11 +0000 (21:28 +0900)]
[Common/Subplugin] Internal API to handle subplugins

Any subplugin-using elements may call get_subplugin () to
get internal data (set of callbacks) of the subplugin.

Next Step: modify tensor_decoder to use nnstreamer_subplugin.h
and test with it.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Filter] update macros to avoid assertion
Jaeyun [Fri, 30 Nov 2018 11:10:06 +0000 (20:10 +0900)]
[Filter] update macros to avoid assertion

1. check fw and fw-function before calling in macro
2. return true in _start() and _stop() vmethods

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Decoder] Coverity issue 1036581 fix
MyungJoo Ham [Mon, 3 Dec 2018 00:56:47 +0000 (09:56 +0900)]
[Decoder] Coverity issue 1036581 fix

Coverity wants to check the return value of
_tensordec_process_plugin_options.

Let't check and log if there is an unwanted return value.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Transform] limit typecast in arith mode
Jaeyun Jung [Fri, 30 Nov 2018 16:15:51 +0000 (01:15 +0900)]
[Transform] limit typecast in arith mode

set typecast option only in the first

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Orc] initial commit to add orc file
Jaeyun [Thu, 29 Nov 2018 08:30:25 +0000 (17:30 +0900)]
[Orc] initial commit to add orc file

add command to generate -orc c and h files in tensor-transform

TODO update orc functions and link to tensor-transform

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[meson] add meson.build for example apps and custom filter
sewon.oh [Thu, 29 Nov 2018 08:08:31 +0000 (17:08 +0900)]
[meson] add meson.build for example apps and custom filter

For ssat and example, add meson.build

Signed-off-by: sewon.oh <sewon.oh@samsung.com>
5 years ago[Filter] Support pipeline stop and go.
MyungJoo Ham [Fri, 30 Nov 2018 02:28:42 +0000 (11:28 +0900)]
[Filter] Support pipeline stop and go.

Pipeline Stop does not always mean pipeline close.
A pipeline may be paused and resumed (stop and start).
Thus, do not clean up internal data structure for stop.

Instead just notify the plugins of the events with
callbacks.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Decoder] Do not die for option errors.
MyungJoo Ham [Thu, 29 Nov 2018 02:26:11 +0000 (11:26 +0900)]
[Decoder] Do not die for option errors.

With dynamic pipeline configurations, the mode/option
properties may become incomplete. Do not die for such status
if the pipeline is not active.

This is critical for GUI toolkits.

Fixes a subitem of #827

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Repo] Add runTest.sh for the dummy LSTM Test
jijoong.moon [Wed, 28 Nov 2018 06:05:38 +0000 (15:05 +0900)]
[Repo] Add runTest.sh for the dummy LSTM Test

- Add python script to generate input stream & golden data.
- Add runTest.sh to run.

                        repository
                      +-----------+
+---------------------|  slot 1   |<-------------------- ---+
|                     +-----------+                         |
|  +------------------|  slot 0   |<----------------------+ |
|  |                  +-----------+                       | |
|  |                                                      | |
|  |                  +---+   +---+  +---+                | |
|  +-->repo_src:0 --->|   |-->|   |->|   |-->repo_sink:0 -+ |
+----->repo_src:1 --->| M |   | F |  | D |-->repo_sink:1 ---+
       filesrc(new)-->|   |   |   |  |   |  |
                      +---+   +---+  +---+  -->out_%1d.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>
5 years ago[Repo] Split Cond variable to use push and pull the data
jijoong.moon [Tue, 27 Nov 2018 07:57:26 +0000 (16:57 +0900)]
[Repo] Split Cond variable to use push and pull the data

In order to keep the synchronization better, two cond variable is
used.

**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[Common/Conf] Fix coverity issue, uninitialized pointer read
MyungJoo Ham [Fri, 30 Nov 2018 02:43:20 +0000 (11:43 +0900)]
[Common/Conf] Fix coverity issue, uninitialized pointer read

With auto-ptr, it tries to access read the pointer.
Thus, it should be initialized somehow.

Fixes Coverity Issue 1036166

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Repo] Fix the test bug
jijoong.moon [Thu, 29 Nov 2018 11:00:50 +0000 (20:00 +0900)]
[Repo] Fix the test bug

Caps for the tensor_reposrc has bug. unit8 should be uint8.

**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[Repo] Add MIME to limit for the tensor/tensors only for now.
jijoong.moon [Tue, 27 Nov 2018 00:34:10 +0000 (09:34 +0900)]
[Repo] Add MIME to limit for the tensor/tensors only for now.

Add MIME check becase currently onlye tensor/tensors are supported
for now.

**Changes proposed in this PR:**
- Added TOC generator for README.md

Resolves:

**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[Repo] Fix bug return without releasing lock
jijoong.moon [Thu, 29 Nov 2018 02:05:47 +0000 (11:05 +0900)]
[Repo] Fix bug return without releasing lock

tensor_repo.c::gst_tensor_repo_add_repodata, unlock should be used
before return.

Resolves: #933

**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[DummyLSTM] Add Dummy LSTM custom example
jijoong.moon [Wed, 28 Nov 2018 02:33:42 +0000 (11:33 +0900)]
[DummyLSTM] Add Dummy LSTM custom example

Add Dymmy LSTM custom example. Two input stream and two outputstream.
First input is recursion and Second input is new input stream. First
output is recursion stream which is matched with first inputstream and
the second output stream is matched with second input stream.

 - in2_tmp0 = (in2+in1)/2 (in2_tmp0 : mimic sigmoid)
 - in2_tmp1 = tanh(in2)
 - in0 = in0 x in2_tmp0
 - in0 = in0 + (in2_tmp0 x in2_tmp1)
 - out0 = in0
 - out1 = in1 = (tanh(in0) x in2_tmp0)

                     +------------+
         in0 ------->|            |----> out0
         in1 ------->| dummy LSTM |----> out1
         in2 (new)-->|            |  |
                     +------------+  +--> out (equal out1)

**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[Repo/RNN] Add dummy RNN test case
jijoong.moon [Mon, 26 Nov 2018 06:42:53 +0000 (15:42 +0900)]
[Repo/RNN] Add dummy RNN test case

In order to test recurtion & Tensor repo, dumm RNN test case is added.

It generate 10 4x4x4x1 tensors and use first input of RNN. Second
input for RNN is generated by tensor_reposrc which take from
Tensor_Repo. Of course, the first tensor of tensor_reposrc is filled
with zero. After simple calcution,
RNN (build/nnstreamer_exampel/custom_exampe_RNN/libdummyRNN.so ) push
the result and tensor_reposink upload this output into Tensor_Repo.

**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[Common/Conf] Close g_dir_open instance.
MyungJoo Ham [Thu, 29 Nov 2018 00:39:32 +0000 (09:39 +0900)]
[Common/Conf] Close g_dir_open instance.

The returned object must be closed.

Reported-by: Wook Song <wook16.song@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Repo] Add testcases for tensor_reposink/tesnor_reposrc
jijoong.moon [Fri, 23 Nov 2018 02:12:06 +0000 (11:12 +0900)]
[Repo] Add testcases for tensor_reposink/tesnor_reposrc

3 testcases are added.

- ID 0 : 10 stream --> tensor_reposink --> (Repo) --> tensor_reposrc

- ID 0 : 10 stream --> tensor_reposink --> (Repo) --> tensor_reposrc
  ID 1 : 10 stream --> tensor_reposink --> (Repo) --> tensor_reposrc

- ID 0 : 10 stream --> tensor_reposink --> (Repo) --> tensor_reposrc
  ID 1 : 10 stream --> tensor_reposink --> (Repo) --> tensor_reposrc
  ID 2 : 10 stream --> tensor_reposink --> (Repo) --> tensor_reposrc

**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[Orc] add init function
Jaeyun [Wed, 28 Nov 2018 07:19:48 +0000 (16:19 +0900)]
[Orc] add init function

add orc_init to initialize orc library.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Transform/Orc] replace memcpy
Jaeyun [Tue, 27 Nov 2018 09:39:22 +0000 (18:39 +0900)]
[Transform/Orc] replace memcpy

1. define macro nns_memcpy/nns_memset
2. include liborc and use orc_memcpy instead in plugin tensor-transform and tensor-aggregator.

TODO check cmake to use orc lib

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Repo] Add & Modify for meson.build for tensor_repo
jijoong.moon [Tue, 27 Nov 2018 04:57:27 +0000 (13:57 +0900)]
[Repo] Add & Modify for meson.build for tensor_repo

- Add meson.build for tensor_reposrc & tensor_reposink
- Modify meson.build in nnstreamer root dir.

**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[Common/Conf] API to get conf values.
MyungJoo Ham [Mon, 26 Nov 2018 10:24:32 +0000 (19:24 +0900)]
[Common/Conf] API to get conf values.

We are going to allow users to configure paths of
filters, decoders, and custom filters.

This is the API skeletons for the first step of #804

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[CMake] Do not download anything during build.
MyungJoo Ham [Mon, 26 Nov 2018 07:41:53 +0000 (16:41 +0900)]
[CMake] Do not download anything during build.

Let the user download the model at run-time with the given scripts.
They will be able to do so after #909

With #909, this concludes #866

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Filter/CMAKE] Remove unnecessary message printing out
Wook Song [Mon, 26 Nov 2018 10:08:31 +0000 (19:08 +0900)]
[Filter/CMAKE] Remove unnecessary message printing out

This patch removes unnecessary message printed out by the cmake script
in the filter directory.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Repo] Use GST_DEBUG instead of silent_debug
jijoong.moon [Fri, 23 Nov 2018 02:53:29 +0000 (11:53 +0900)]
[Repo] Use GST_DEBUG instead of silent_debug

Replace custom debug/error/warning macro to GST_*

**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[Repo] Change GstTensorData to GstTensorRepoData
jijoong.moon [Fri, 23 Nov 2018 07:49:28 +0000 (16:49 +0900)]
[Repo] Change GstTensorData to GstTensorRepoData

In order not to confuse, change the name GstTensorData to
GstTensorRepoData.

**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[Repo] Change Element Name & Fix Sync Bug when EOS
jijoong.moon [Fri, 23 Nov 2018 00:33:44 +0000 (09:33 +0900)]
[Repo] Change Element Name & Fix Sync Bug when EOS

- Element Name is changed.
  . tensor_repopush -> tensor_reposink
  . tensor_repopop  -> tensor_reposrc

- There is hanging bug when reposrc is tryig to get buffer and
  reposink set eos signal meanwhile. It is fixed by double check eos
  signal during cond wait.

**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[Repo/Push-Pop] Implement NYI part of tensor_reppop.
jijoong.moon [Thu, 22 Nov 2018 06:02:28 +0000 (15:02 +0900)]
[Repo/Push-Pop] Implement NYI part of tensor_reppop.

- Implement NYI part of tensor_reppop. It's parent element is
  GstPushSrcClass and it's relevant vm functions are implemented such
  as (create*).

- Several utility functions of tensor_repo is newly implemented.

- Some changes are made to handle thread synchronization.

**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[Repo/Pop] Tensor_RepoPop Draft
jijoong.moon [Tue, 20 Nov 2018 10:03:29 +0000 (19:03 +0900)]
[Repo/Pop] Tensor_RepoPop Draft

This is the the anthor part to complete the tensor
repo. tensor_repopop get the tensor repo data.

**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[Repo/Push] Use Has Table to handle repo & add slot_id property
jijoong.moon [Wed, 21 Nov 2018 01:46:32 +0000 (10:46 +0900)]
[Repo/Push] Use Has Table to handle repo & add slot_id property

- Instead of single linked list, Hash table is used to manage repo's
  data. Hash Table is "key [slot_id], GstTensorData*" where slot_id is
  given by user when the tensor_repopush is used.

- Slot Id is added to use as key for hash table. This should be same
  with tensor_repopop element. "tensor_repopop" will withdraw the data
  according to this slot_id.

**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[CMake] Install example apps to "EXAMPLE_EXEC_PREFIX".
MyungJoo Ham [Mon, 26 Nov 2018 07:16:31 +0000 (16:16 +0900)]
[CMake] Install example apps to "EXAMPLE_EXEC_PREFIX".

Do not install example apps into /usr/bin, but to /usr/lib/nnstreamer/bin/

Partially addresses the third subitem of #866

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Filter] Fix coverity issue, pointer out of scope.
MyungJoo Ham [Mon, 26 Nov 2018 05:18:52 +0000 (14:18 +0900)]
[Filter] Fix coverity issue, pointer out of scope.

This fixes the coverity issue, pointer out of scope.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Meson] Support Ubuntu/Xenial and Tizen.
MyungJoo Ham [Mon, 26 Nov 2018 05:09:24 +0000 (14:09 +0900)]
[Meson] Support Ubuntu/Xenial and Tizen.

1. Both Tizen and Ubuntu/Xenial does not support meson 0.47.
Lower down the Meson version requirement.
2. Add meson support for repo-push

Fixes #897

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Example] remove unnecessary caps-filter
Jaeyun [Mon, 26 Nov 2018 04:34:07 +0000 (13:34 +0900)]
[Example] remove unnecessary caps-filter

1. remove caps-filter between tensor-converter and tensor-filter. (tensor-converter will get peer caps and set possible caps.)
2. update download link to get tf-lite model

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Converter] get possible caps from downstream
Jaeyun [Wed, 21 Nov 2018 10:41:34 +0000 (19:41 +0900)]
[Converter] get possible caps from downstream

When received caps query, get the possible caps of peer pad and convert it to media caps.
Related issue #818

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/TFLite] code clean
HyoungjooAhn [Mon, 26 Nov 2018 10:45:00 +0000 (19:45 +0900)]
[Filter/TFLite] code clean

move unused method to private and remove extern methods

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>
5 years ago[PkgConfig] Update 'Libs' field
Wook Song [Mon, 26 Nov 2018 01:29:40 +0000 (10:29 +0900)]
[PkgConfig] Update 'Libs' field

This patch fills the 'Libs' field in the pkg-config file.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Dist/Debian] Change installation directories based on multiarch scheme
Wook Song [Mon, 26 Nov 2018 01:25:22 +0000 (10:25 +0900)]
[Dist/Debian] Change installation directories based on multiarch scheme

This patch, based on the multiarch directory scheme of Debian/Ubuntu,
chages the installation directories of nnstreamer and nnstreamer
development packages.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Filter/TFLite] Move shared object of tflitecore to libdir
Wook Song [Mon, 26 Nov 2018 01:17:58 +0000 (10:17 +0900)]
[Filter/TFLite] Move shared object of tflitecore to libdir

This patch moves the shared object of tflitecore,
libtensor_filter_tflitecore.so, from GST_PLUGIN_PATH to INSTALL_LIBDIR.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Common] build error fix for ubuntu/example.
MyungJoo Ham [Mon, 26 Nov 2018 07:27:46 +0000 (16:27 +0900)]
[Common] build error fix for ubuntu/example.

There is a missing header in typedef header.
Without stdint.h, you won't be able to find "uint8_t".

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Example] Change LSTM to RNN
jijoong.moon [Mon, 26 Nov 2018 01:40:42 +0000 (10:40 +0900)]
[Example] Change LSTM to RNN

It is more like RNN rather than LSTM. RNN is better name for this testcase.

**Changes proposed in this PR:**
- Change directory name and files LSTM to RNN

**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>