platform/upstream/nnstreamer.git
6 years ago[Cmake/CleanUp] Clean up cmake main logic
MyungJoo Ham [Sat, 13 Oct 2018 06:52:55 +0000 (15:52 +0900)]
[Cmake/CleanUp] Clean up cmake main logic

1. Disable tensorflow by default. Enable it when tensorflow support is completed.

2. Dismangled tizen/gtest dependency logic

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[TensorMerge] fix Dereference before null check
jijoong.moon [Fri, 12 Oct 2018 00:20:59 +0000 (09:20 +0900)]
[TensorMerge] fix Dereference before null check

Fix the derefrencing bug before 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>
6 years ago[Transform/Common] code clean
Jaeyun [Thu, 11 Oct 2018 10:36:08 +0000 (19:36 +0900)]
[Transform/Common] code clean

1. use common functions and structure in tensor-transform
2. add macros to print debug message
3. remove functions to parse caps (get_tensor_from_padcap, get_tensor_from_structure in common)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Single Binary] Merge converter and aggregator into a single plugin binary
MyungJoo Ham [Thu, 11 Oct 2018 08:38:15 +0000 (17:38 +0900)]
[Single Binary] Merge converter and aggregator into a single plugin binary

This is a pilot program for #628

We are going to merge all nnstreamer plugins into one single plugin binary.

Use -DSINGLE_BINARY to generate a single plugin binary with all plugin elements.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Transform/Arithmetic/Test] Add test cases for add-mul and mul-add
Wook Song [Thu, 11 Oct 2018 07:11:59 +0000 (16:11 +0900)]
[Transform/Arithmetic/Test] Add test cases for add-mul and mul-add

This patch adds test cases for testing newly added operators, add-mul
and mul-add.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Transform/Arithmetic/Test] Update test checking API for fused operators
Wook Song [Thu, 11 Oct 2018 06:58:16 +0000 (15:58 +0900)]
[Transform/Arithmetic/Test] Update test checking API for fused operators

This patch updates the test checking API to support the fused add-mul
and fused mul-add operators. According to this change, the existing
tests are slightly modified as well.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Transform/Arithmetic] Support fused add-mul and mul-add operators
Wook Song [Thu, 11 Oct 2018 06:53:55 +0000 (15:53 +0900)]
[Transform/Arithmetic] Support fused add-mul and mul-add operators

This patch adds two operators, fused add-mul and fused mul-add, to the
Arithmetic mode of the transform plugin.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Transform/Arithmetic/Test] Add test cases for floating-point operand
Wook Song [Thu, 11 Oct 2018 01:19:29 +0000 (10:19 +0900)]
[Transform/Arithmetic/Test] Add test cases for floating-point operand

This patch adds more test cases for testing the Arithmetic mode of the
Transform plug-in with floating-point operands.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Transform/Arithmetic] Support operand value of floating point type
Wook Song [Wed, 10 Oct 2018 08:05:08 +0000 (17:05 +0900)]
[Transform/Arithmetic] Support operand value of floating point type

Since the data type of the operand is fixed to 'int64_t', the Arithmetic
mode cannot properly handle operand values of the floating point type
such as 2.3, -10.5, and -9.900000e-001. This patch supports such
floating-point operand values by using the data type, double.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Sink] code clean
Jaeyun [Fri, 12 Oct 2018 03:41:09 +0000 (12:41 +0900)]
[Sink] code clean

add function prefix to prepare single bin

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Common] check max tensor size limit
Jaeyun [Fri, 12 Oct 2018 05:48:39 +0000 (14:48 +0900)]
[Common] check max tensor size limit

update code to check array size limit, tensors max is now 16.

Related issue : #635

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Example App]Add tensor decoder image labelling App
jinhyuck-park [Fri, 12 Oct 2018 06:11:24 +0000 (15:11 +0900)]
[Example App]Add tensor decoder image labelling App

Add tensor decoder image labelling app
only use gst sub plugins including tensor decoder

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[TensorDec] update tensor decoder for proper working
jinhyuck-park [Thu, 11 Oct 2018 22:18:38 +0000 (07:18 +0900)]
[TensorDec] update tensor decoder for proper working

Update tensor decoder for proper working
set caps and some minor updates

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[Transform] Fix transpose
jijoong.moon [Mon, 8 Oct 2018 04:54:03 +0000 (13:54 +0900)]
[Transform] Fix transpose

There was wrong tensro and C array index.
Batch should be last index.
Before this patch, the batch is the first index of C array or Tensor.

**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>
6 years ago[Test/Transform] Add test cases for typecast between float and integer
Wook Song [Fri, 5 Oct 2018 05:59:37 +0000 (14:59 +0900)]
[Test/Transform] Add test cases for typecast between float and integer

This patch adds more test cases for testing the typecast operation
between floating point types and integer types.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[TensorMerge] Add draft tensor_merge plugin
jijoong.moon [Tue, 2 Oct 2018 06:22:47 +0000 (15:22 +0900)]
[TensorMerge] Add  draft tensor_merge plugin

we need tensor_merge to merge tensor. It make multiple tensor into
single tensor. After this PR, C:W:H:B ([B][H][W][C]) +
C:W:H:B ([B][H][W][C]) --> W:H:2xC:B ([B][2xC][H][W]).
Therefore, if you want to use this as input for tensorflow lite, you
may need transform element,
with transpose mode. ( mode=transpose, option=2:0:1:3. It produce
2xC:W:H:B ([B][H][W][2xC]).

**Changes proposed in this PR:**
- Added Tensor merge plugin

**TODO**
- Add Multiple direction merge : Width, Height or mixed.
- Better handling to reduce memcopy.

**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>
6 years ago[Transform] Add Test Case for transform/standardization mode
jijoong.moon [Tue, 9 Oct 2018 23:34:50 +0000 (08:34 +0900)]
[Transform] Add Test Case for transform/standardization mode

Add Test Case for standardization mode.
Compare the result with python and approval diff is
-0.01 < diff < 0.01. (application/octet-stream mime 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>
6 years ago[Aggregator] update code to concatenate data with axis
Jaeyun [Wed, 10 Oct 2018 11:54:45 +0000 (20:54 +0900)]
[Aggregator] update code to concatenate data with axis

update data concatenation for the axis (frames-dim)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Comment Fix] Fix broken URLs in comments / docs
MyungJoo Ham [Mon, 8 Oct 2018 07:10:00 +0000 (16:10 +0900)]
[Comment Fix] Fix broken URLs in comments / docs

There have been old URLs that cannot be accessed.
Fix them all.

There are a few off-topic changes due to recently enforced
coding style/rule of CI/CD system.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Aggregator] update code to concatenate output
Jaeyun [Wed, 10 Oct 2018 04:23:10 +0000 (13:23 +0900)]
[Aggregator] update code to concatenate output

1. add property concat (default true, to do the concatenation)
2. add functions to check dimension before pushing the buffer into source pad

TODO : update concat code with the axis

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[CoC Update] Update due to recent turmoil at LKML
MyungJoo Ham [Fri, 28 Sep 2018 03:54:10 +0000 (12:54 +0900)]
[CoC Update] Update due to recent turmoil at LKML

The COC we are based on appears to be based on postmeritocracy with political intentions.
Before moving on the the official nnsuite CoC, I suggest to use this temporarily updated one.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Test] update stream testcase
Jaeyun [Wed, 10 Oct 2018 04:29:42 +0000 (13:29 +0900)]
[Test] update stream testcase

1. add tc to change dimension in output tensor (tensor-aggregator)
2. change output dimension for octet-stream (tensor-converter)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Transform] Add Standardization Mode in Tranform Plugin
jijoong.moon [Thu, 4 Oct 2018 07:32:35 +0000 (16:32 +0900)]
[Transform] Add Standardization Mode in Tranform Plugin

Add Standardization Mode (mode=stand, option=default). Could be added
more methods.

for Tensor T,
: out[i] = fabs((T[i] - average(T)) / (stand(T) + 1e-10))

**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>
6 years ago[Transform] Remove hard coded values in transform
jijoong.moon [Wed, 10 Oct 2018 02:00:34 +0000 (11:00 +0900)]
[Transform] Remove hard coded values in transform

Use NNS_TENSOR_RANK_LIMIT instead of 4 for transpose.

Resolves: #537

**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>
6 years ago[Converter] fix coverity issue 1034478
Jaeyun [Wed, 10 Oct 2018 02:18:37 +0000 (11:18 +0900)]
[Converter] fix coverity issue 1034478

1. add condition to check frame size (divide by zero)
2. remove debug message (unnecessary to print frames)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Aggregator] fix out-tensor dimension
Jaeyun [Mon, 8 Oct 2018 04:18:18 +0000 (13:18 +0900)]
[Aggregator] fix out-tensor dimension

update output dimension with the properties frames-dim, frames-out.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Converter] support byte-stream
Jaeyun [Mon, 8 Oct 2018 03:50:13 +0000 (12:50 +0900)]
[Converter] support byte-stream

add new properties input-dim and input-type to get tensor info from byte-stream (application/octet-stream)
add testcase for byte-stream

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Common] initial commit to add a type of byte-stream
Jaeyun [Thu, 4 Oct 2018 07:36:58 +0000 (16:36 +0900)]
[Common] initial commit to add a type of byte-stream

1. define new type for byte-stream (application/octet-stream)
2. refactor functions to get tensor config

TODO: need to update tensor-converter later

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Converter/Aggregator] update timestamp
Jaeyun [Tue, 2 Oct 2018 12:12:28 +0000 (21:12 +0900)]
[Converter/Aggregator] update timestamp

set timestamp with distance (bytes from pts)

if frames-in is larger than frames-out, it will set same timestamp.
in this case, elements update timestamp with distance.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[TensorDec] Add install properties in tensor decoder init
jinhyuck-park [Thu, 4 Oct 2018 06:18:13 +0000 (15:18 +0900)]
[TensorDec] Add install properties in tensor decoder init

Add install properties mode and mode-option-1 for tensor decoder
processing image labeling

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[Example] change plugin to get scaled video frame from v4l2
Jaeyun [Thu, 4 Oct 2018 07:46:29 +0000 (16:46 +0900)]
[Example] change plugin to get scaled video frame from v4l2

1. change to videoscale to set 640x480 frame
2. remove framerate in caps filter

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[SVACE-Fix] Fix 376961 / str without termination
MyungJoo Ham [Thu, 4 Oct 2018 05:23:35 +0000 (14:23 +0900)]
[SVACE-Fix] Fix 376961 / str without termination

Fixed error: WID:57241610 Copying from string 'label' to 'out_info.data' without null termination at tensordec.c:743 by calling function 'strncpy'.
Reference: https://stackoverflow.com/questions/1453876/why-does-strncpy-not-null-terminate

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Common] update condition to validate tensor config
Jaeyun [Thu, 4 Oct 2018 02:36:29 +0000 (11:36 +0900)]
[Common] update condition to validate tensor config

update condition about framerate, denominator should be larger than 0.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Mux/Decoder] fix coverity issue
Jaeyun [Tue, 2 Oct 2018 12:52:47 +0000 (21:52 +0900)]
[Mux/Decoder] fix coverity issue

fix coverity issue 1030251, 1030250 in tensor-decoder and tensor-mux

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Demux/Transform] add code to free string
Jaeyun [Tue, 2 Oct 2018 05:59:56 +0000 (14:59 +0900)]
[Demux/Transform] add code to free string

add code to free the array of strings

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Split] remove rank and fix mem leak
Jaeyun [Tue, 2 Oct 2018 04:28:09 +0000 (13:28 +0900)]
[Split] remove rank and fix mem leak

1. remove rank in caps and use common structure to get tensor caps
2. add code to free the array of strings

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[SVACE] fix CID 1030252, CID 1030251 issues
jinhyuck-park [Tue, 2 Oct 2018 04:49:49 +0000 (13:49 +0900)]
[SVACE] fix CID 1030252, CID 1030251 issues

SVACE issues fix for tensor decoder

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[Test] add stream tc with tensor-split
Jaeyun [Tue, 2 Oct 2018 06:29:04 +0000 (15:29 +0900)]
[Test] add stream tc with tensor-split

add stream testcase with tensor-split to check out buffers

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[example/custom] Fix coverity issue.
MyungJoo Ham [Tue, 2 Oct 2018 04:14:05 +0000 (13:14 +0900)]
[example/custom] Fix coverity issue.

Do not check if it's < 0 if it's unsigned.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Test] add stream testcases
Jaeyun [Mon, 1 Oct 2018 07:32:37 +0000 (16:32 +0900)]
[Test] add stream testcases

1. stream test for newly added audio format
2. stream test for multi-tensors with tensor-demux
3. add testcase for no signal case from tensor-sink

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Common] expand audio format
Jaeyun [Mon, 1 Oct 2018 07:29:36 +0000 (16:29 +0900)]
[Common] expand audio format

add audio format (signed/unsigned 32bit, floating point 32/64bit)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Document/CodeClean] update description and debug messages
Jaeyun [Mon, 1 Oct 2018 08:17:01 +0000 (17:17 +0900)]
[Document/CodeClean] update description and debug messages

change log messages in tensor-sink
add description for properties and signals in tensor-sink
fix property name in tensor-converter doc

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[tensorDec] Implement copy label string to out buffer
jinhyuck-park [Mon, 1 Oct 2018 05:31:18 +0000 (14:31 +0900)]
[tensorDec] Implement copy label string to out buffer

Implement set out buffer with updated image label text

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[Common] change tensor type of string
Jaeyun [Fri, 28 Sep 2018 07:13:58 +0000 (16:13 +0900)]
[Common] change tensor type of string

for text stream, change tensor type to uint8

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Test] update testcases
Jaeyun [Fri, 28 Sep 2018 05:22:35 +0000 (14:22 +0900)]
[Test] update testcases

1. [sink] add flag to check timestamp and failure case
2. [sink] change tensor type of string
3. [common] add testcase for dimension string

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[boilerplate] fix broken links
Sangjung Woo [Fri, 28 Sep 2018 07:09:07 +0000 (16:09 +0900)]
[boilerplate] fix broken links

This patch fixes the broken links instead of 'TO-BE-DETERMINED-SOON'
comment on boilerplate code.

Change-Id: I6776096752a5d52829043cd3ab9d9584154752d2
Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
6 years ago[Common] add function to get tensor size
Jaeyun [Fri, 28 Sep 2018 04:22:11 +0000 (13:22 +0900)]
[Common] add function to get tensor size

add function to get date size with GstTensorInfo
and refactor elements and examples

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Demux] change default property value
Jaeyun [Thu, 27 Sep 2018 12:04:53 +0000 (21:04 +0900)]
[Demux] change default property value

change default property value (set default value true)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Mux] set timestamp in output buffer
Jaeyun [Thu, 27 Sep 2018 12:00:19 +0000 (21:00 +0900)]
[Mux] set timestamp in output buffer

1. add timestamp (pts and dts) in output buffer
2. change default property value (silent true)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Mux] fix coverity issue (1029508)
Jaeyun [Thu, 27 Sep 2018 10:09:33 +0000 (19:09 +0900)]
[Mux] fix coverity issue (1029508)

Add log message and remove unnecessary state.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Test/Meta] remove dependency of tensor-meta
Jaeyun [Thu, 27 Sep 2018 06:29:15 +0000 (15:29 +0900)]
[Test/Meta] remove dependency of tensor-meta

1. Refactor test plugins to remove tensor-meta.
(these elements are for testing multi-tensors only)
2. Remove unnecessary header in saveload.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Document/Sink] update README.md about tensor-sink
Jaeyun [Thu, 27 Sep 2018 08:03:18 +0000 (17:03 +0900)]
[Document/Sink] update README.md about tensor-sink

Update README.md file for the element tensor-sink.

Related issue: #490

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[TensorDec] Add functions regarding image labeling in tensor decoder
jinhyuck-park [Sat, 22 Sep 2018 05:16:33 +0000 (14:16 +0900)]
[TensorDec] Add functions regarding image labeling in tensor decoder

Add functions regarding image labeling
in tensor decoder

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[Filter/TF-Lite] refactor to reduce repeated code
MyungJoo Ham [Fri, 21 Sep 2018 05:47:00 +0000 (14:47 +0900)]
[Filter/TF-Lite] refactor to reduce repeated code

Let's not repeat the same code for switch cases.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[TensorSplit] Fix Tensor dimension type assign
jijoong.moon [Thu, 20 Sep 2018 02:01:23 +0000 (11:01 +0900)]
[TensorSplit] Fix Tensor dimension type assign

When we write tensor dimension, it should be [C][W][H][B].
But before this PR, it considered C array type [B][H][W][C].

Resolves: #538

**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>
6 years ago[Example/FilterPerformanceProfile] Fix coverity analysis error 1029509
Wook Song [Fri, 21 Sep 2018 02:33:59 +0000 (11:33 +0900)]
[Example/FilterPerformanceProfile] Fix coverity analysis error 1029509

This patch adds an initialization of a structure variable to fix the
coverity analysis error 1029509: Uninitialized scalar variable.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Example/FilterPerformanceProfile] Fix coverity analysis error 1029505
Wook Song [Fri, 21 Sep 2018 02:28:22 +0000 (11:28 +0900)]
[Example/FilterPerformanceProfile] Fix coverity analysis error 1029505

This patch removes logically dead code, which is duplicated by mistake.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Example/FilterPerformanceProfile] Revise file header comment
Wook Song [Fri, 21 Sep 2018 02:11:18 +0000 (11:11 +0900)]
[Example/FilterPerformanceProfile] Revise file header comment

This patch revises the file header comment by removing unneeded lines
and fixing a misalignment comment line due to the indentation mistake.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Mux] remove dependency of tensor-meta
Jaeyun [Fri, 21 Sep 2018 06:30:50 +0000 (15:30 +0900)]
[Mux] remove dependency of tensor-meta

Parse incoming caps of single tensor and push it to tensors config.
After that, make caps for multi-tensors using tensors config.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Test/Decode] remove debug message
Jaeyun [Fri, 21 Sep 2018 08:26:14 +0000 (17:26 +0900)]
[Test/Decode] remove debug message

remove the property silent in tensor decoder testcase.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Demux/Split] update description
Jaeyun [Fri, 21 Sep 2018 11:09:51 +0000 (20:09 +0900)]
[Demux/Split] update description

1. change the element classification string
2. remove unnecessary header
3. fix typo and duplicated tag

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[TensorDec] Implement get label function for image labeling
jinhyuck-park [Fri, 21 Sep 2018 06:05:50 +0000 (15:05 +0900)]
[TensorDec] Implement get label function for image labeling

add get label function in tensor decoder transform

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years agoSecurity: fix a buffer overflow issue in gst_tensor_dimension_conversion()
Geunsik Lim [Fri, 21 Sep 2018 04:55:28 +0000 (13:55 +0900)]
Security: fix a buffer overflow issue in gst_tensor_dimension_conversion()

Fixed issue https://github.com/nnsuite/nnstreamer/issues/552.

This commit is to fix a security issue that is reported by CPPCheck and SVACE tool.

**Changes proposed in this PR:**
1. Initialized in and out variable to avoid a buffer overflow issue.

* SVACE Checker:
```bash
BUFFER_OVERFLOW.PROC
Warning Message
Array 'in' of size 16 bytes passed to function 'gst_tensor_dimension_conversion' at tensor_transform.c:968
by passing as 5th parameter to function 'gst_tensor_dimension_conversion' at tensor_transform.c:1016,
where it is accessed by unacceptable index. This may lead to buffer overflow.
Trace Message
buffer overflow
┗ Shift at tensor_transform.c:968
┗ Variable '↦in[0]' is passed to function 'gst_tensor_dimension_conversion' as 5th parameter
at tensor_transform.c:1016 at tensor_transform.c:1016
```

* CPPChecker:
```bash
[gst/tensor_transform/tensor_transform.c:1007]: (error) Uninitialized variable: in
[gst/tensor_transform/tensor_transform.c:1010]: (error) Uninitialized variable: in
[gst/tensor_transform/tensor_transform.c:1018]: (error) Uninitialized variable: in
[gst/tensor_transform/tensor_transform.c:1021]: (error) Uninitialized variable: in
[gst/tensor_transform/tensor_transform.c:1010]: (error) Uninitialized variable: out
[gst/tensor_transform/tensor_transform.c:1013]: (error) Uninitialized variable: out
[gst/tensor_transform/tensor_transform.c:1015]: (error) Uninitialized variable: out
[gst/tensor_transform/tensor_transform.c:1018]: (error) Uninitialized variable: out
```

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
6 years ago[Filter/TF-Lite] remove memcpy for input tensor
HyoungjooAhn [Fri, 21 Sep 2018 05:25:06 +0000 (14:25 +0900)]
[Filter/TF-Lite] remove memcpy for input tensor

copy data pointer directly rather than the memcpy logic at input tensor

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
6 years ago[Example/CustomFilter] fix coverity issue (1029512, 1029504)
Jaeyun [Fri, 21 Sep 2018 04:08:40 +0000 (13:08 +0900)]
[Example/CustomFilter] fix coverity issue (1029512, 1029504)

fix unsigned compare issue in custom scaler filter

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Example/CustomFilter/Test] change custom passthrough filter
Jaeyun [Thu, 20 Sep 2018 07:40:05 +0000 (16:40 +0900)]
[Example/CustomFilter/Test] change custom passthrough filter

1. change custom passthrough example to support multi tensors
2. add simple stream testcases for multi tensors

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Tranform] Fix coverity issue 1029522
MyungJoo Ham [Fri, 21 Sep 2018 02:13:41 +0000 (11:13 +0900)]
[Tranform] Fix coverity issue 1029522

unsigned values cannot be <0 checking it whether it's >=0 or not is meaningless

addressing one more item of #558

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Filter/TF-Lite] fix bug about nomalization
HyoungjooAhn [Thu, 20 Sep 2018 10:56:18 +0000 (19:56 +0900)]
[Filter/TF-Lite] fix bug about nomalization

Since tensor_transform will do typecast and data nomalization, temporal nomalization code is useless.

Signed-off-by: HyoungjooAhn <hello.ahnn@gmail.com>
6 years ago[Filter] Fix coverity analysis error
HyoungjooAhn [Thu, 20 Sep 2018 08:05:58 +0000 (17:05 +0900)]
[Filter] Fix coverity analysis error

1. variable initialization was cleared by last pr(they were removed). 2. make useless line as a comment for future

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>
6 years ago[Demux] remove dependency of tensor-meta
Jaeyun [Thu, 20 Sep 2018 12:48:56 +0000 (21:48 +0900)]
[Demux] remove dependency of tensor-meta

Parse incoming caps of multi-tensors and use configured info to get the tensor.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Example] Use tensor_decoder instead of tensordec
Sangjung woo [Thu, 20 Sep 2018 08:01:51 +0000 (17:01 +0900)]
[Example] Use tensor_decoder instead of tensordec

This patch uses tensor_decoder instead of tensordec since its name is
changed.

Signed-off-by: Sangjung woo <sangjung.woo@samsung.com>
6 years ago[TensorDecoder] Update the plugin information and its testcase
Sangjung woo [Thu, 20 Sep 2018 07:36:33 +0000 (16:36 +0900)]
[TensorDecoder] Update the plugin information and its testcase

This patch updates the plugin information such as Name, Description when
getting by gst-inspect tool. Moreover, this updates its test case since
the name is changed.

Signed-off-by: Sangjung woo <sangjung.woo@samsung.com>
6 years ago[TensorDemux] Update the plugin information and its testcase
Sangjung woo [Thu, 20 Sep 2018 07:07:28 +0000 (16:07 +0900)]
[TensorDemux] Update the plugin information and its testcase

This patch updates the plugin information such as Name, Description when
getting by gst-inspect tool. Moreover, this updates its test case since
the name is changed.

Signed-off-by: Sangjung woo <sangjung.woo@samsung.com>
6 years ago[TensorMux] Update the plugin information and its testcase
Sangjung woo [Thu, 20 Sep 2018 06:56:37 +0000 (15:56 +0900)]
[TensorMux] Update the plugin information and its testcase

This patch updates the plugin information such as Name, Description when
getting by gst-inspect tool. Moreover, this updates its test case since
the name is changed.

Signed-off-by: Sangjung woo <sangjung.woo@samsung.com>
6 years ago[TensorSplit] Update the plugin information and its testcase
Sangjung woo [Thu, 20 Sep 2018 06:30:10 +0000 (15:30 +0900)]
[TensorSplit] Update the plugin information and its testcase

This patch updates the plugin information such as Name, Description when
getting by gst-inspect tool. Moreover, this updates its test case since
the name is changed.

Signed-off-by: Sangjung woo <sangjung.woo@samsung.com>
6 years ago[Example/CustomFilterScaler] Fix coverity analysis error 1029511
MyungJoo Ham [Thu, 20 Sep 2018 07:29:53 +0000 (16:29 +0900)]
[Example/CustomFilterScaler] Fix coverity analysis error 1029511

Unsigned variables cannot be less than 0.
Do not check if they are less than 0.

Addresses one item of #558.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Test/BMP2PN] Fix covertify analysis error 1029514
MyungJoo Ham [Thu, 20 Sep 2018 04:57:01 +0000 (13:57 +0900)]
[Test/BMP2PN] Fix covertify analysis error 1029514

Integer overflow affecting critical function, coverity issue 1029514 (Github issue #558), is fixed.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Filter] change filter-framework callbacks
Jaeyun [Wed, 19 Sep 2018 12:21:59 +0000 (21:21 +0900)]
[Filter] change filter-framework callbacks

Change framework callbacks to support multi-tensors.

To support multi tensors,
1. GstTensorFilter allocates the memory block for each output tensor.
2. Fill input and output tensor info (GstTensorMemory)
3. GstTensorFilter calls 'invoke' with the structure GstTensorMemory.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Test] update tc for caps and buffer
Jaeyun [Thu, 20 Sep 2018 05:26:58 +0000 (14:26 +0900)]
[Test] update tc for caps and buffer

1. add value for mem blocks in buffer
2. add simple test for tensor config and caps

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Transform/Transpose] Check the validity of dimensions
MyungJoo Ham [Wed, 19 Sep 2018 08:10:52 +0000 (17:10 +0900)]
[Transform/Transpose] Check the validity of dimensions

If it is < 0 or >= 4, it is not valid and breaks the buffer.

Supposed to Fix #552

ps. @jijoongmoon : You do not have unit testcases for transpose!

CC: Jijoong Moon <jijoong.moon@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Example] fix nego failure case
Jaeyun [Wed, 19 Sep 2018 07:39:03 +0000 (16:39 +0900)]
[Example] fix nego failure case

1. add videoscale to set 640x480 video frame
2. use the framerate of webcam

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Filter] fix caps nego failure case
Jaeyun [Tue, 18 Sep 2018 08:18:16 +0000 (17:18 +0900)]
[Filter] fix caps nego failure case

Tensor-filter gets fixed tensor info, it does not need intersection in fixate_caps.

1. remove intersect in fixate_caps()
2. use tensor meta in fw-property during caps negotiation
3. add macro to print tensor info

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years agocmake: rename some so files to keep a consistent naming rule
Sangjung woo [Tue, 18 Sep 2018 22:32:01 +0000 (07:32 +0900)]
cmake: rename some so files to keep a consistent naming rule

Some generated so files use an underscore between `libtensor' and
element name but others do not use it. To keep a consistent naming rule
in so files, this patch uses an underscore.

Signed-off-by: Sangjung woo <sangjung.woo@samsung.com>
6 years ago[Filter] create new structure for multi tensors
HyoungjooAhn [Mon, 17 Sep 2018 06:39:02 +0000 (15:39 +0900)]
[Filter] create new structure for multi tensors

define new structure as a standard unit of data tensor. it will be allocated and used to store tensor data

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>
6 years ago[TensorDec]Add set label path property
jinhyuck-park [Mon, 17 Sep 2018 22:46:30 +0000 (07:46 +0900)]
[TensorDec]Add set label path property

add set label path property and set label infos in tensor decoder

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[Filter/Main] Correct plugin description
MyungJoo Ham [Tue, 18 Sep 2018 04:52:55 +0000 (13:52 +0900)]
[Filter/Main] Correct plugin description

The copy-pasted description from converter is incorrect.

Fixes #539

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Filter/Common] prepare multi-tensors
Jaeyun [Fri, 14 Sep 2018 07:04:17 +0000 (16:04 +0900)]
[Filter/Common] prepare multi-tensors

refactor tensor-filter to support multi-tensors (other/tensors).
tf and tf-lte should be updated later for multi-tensors.

1. add common GstTensorsInfo in tensor-filter and parse from NN model
2. change NN framework properties
3. fix the bug in common functions for multi-tensors
4. remove space to get tensor dim and type in common function

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[TensorDec] Add initalize function for image labeling data of tensor decoder
jinhyuck-park [Fri, 14 Sep 2018 08:00:59 +0000 (17:00 +0900)]
[TensorDec] Add initalize function for image labeling data of tensor decoder

Add function for image labeling data when initialize tensor decoder

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years agoDelete Untitled Diagram.xml
MyungJoo Ham [Mon, 17 Sep 2018 06:09:47 +0000 (15:09 +0900)]
Delete Untitled Diagram.xml

Add draw.io diagrams at github.com/nnsuite/nnsuite.github.io/ with draw.io directory

6 years agodiagramAllPlugins_CheatSheet
MyungJoo Ham [Mon, 17 Sep 2018 06:00:00 +0000 (15:00 +0900)]
diagramAllPlugins_CheatSheet

6 years agoCI: remove unnecessary folder
Geunsik Lim [Fri, 14 Sep 2018 07:37:09 +0000 (16:37 +0900)]
CI: remove unnecessary folder

This commit is to remove unnecessary folder, TAOS-CI.
This folder is not needed to be archived in nnstreamer repository.

**Changes proposed in this PR:**
1. Removed TAOS-CI folder

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
6 years ago[Filter/Custom] Ensure the loaded private data is stored at the desired position.
MyungJoo Ham [Thu, 13 Sep 2018 09:34:42 +0000 (18:34 +0900)]
[Filter/Custom] Ensure the loaded private data is stored at the desired position.

We check filter->privateData to see if the custom filter (.so) is already loaded or not.
Thus, in order to prevent duplicated filter loading, we need to ensure that
the created private data (*private_data) is stored at the desired location (filter->privateData).

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years agoCI: Updated config files based on latest TAOS-CI version
Geunsik Lim [Thu, 13 Sep 2018 09:41:24 +0000 (18:41 +0900)]
CI: Updated config files based on latest TAOS-CI version

This commit is to update the existing configuration files
based on the latest version of TAOS-CI.

**Changes proposed in this PR:**
1. Added config file for server administrator
2. Updated the existing config files TAOS-CI version 1.0.20180913.

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
6 years ago[Decoder] Minor style fix (variable types)
MyungJoo Ham [Thu, 13 Sep 2018 01:51:54 +0000 (10:51 +0900)]
[Decoder] Minor style fix (variable types)

Let's constify mode names as they are not going to be edited in runtime, but switched between predefined strings only.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Transform] Add Transpose Mode
jijoong.moon [Wed, 12 Sep 2018 07:42:56 +0000 (16:42 +0900)]
[Transform] Add Transpose Mode

We may need transpose operation such as tensor_A[I][J][K][L] to
trneosr_B[I][J][L][K].

In order to support this, transpose mode is added. It is working with
"mode=transpose, option=0:1:3:2" (Notice that the first dim is always
fixed).

**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>
6 years ago[Common] common functions to prepare multi-tensors
Jaeyun [Wed, 12 Sep 2018 06:40:35 +0000 (15:40 +0900)]
[Common] common functions to prepare multi-tensors

prepare multi-tensors (other/tensors)

1. add new structure and functions for tensor info
2. remove dependency of media info
3. remove the rank of tensor dimension

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[TensorDec] Add data struct for tensor decoder modes include image labeling
jinhyuck-park [Tue, 11 Sep 2018 04:33:49 +0000 (13:33 +0900)]
[TensorDec] Add data struct for tensor decoder modes include image labeling

Add initial data struct to process labels for tensor from tensor filter

Signed-off-by: jinhyuck-park <jinhyuck83.park@samsung.com>
6 years ago[Document] update readme.md
Jaeyun [Wed, 12 Sep 2018 05:58:15 +0000 (14:58 +0900)]
[Document] update readme.md

1. add readme.md file for tensor-aggregator
2. fix typo in tensor-converter

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[TensorSplit] Add testcases
jijoong.moon [Wed, 29 Aug 2018 08:04:25 +0000 (17:04 +0900)]
[TensorSplit] Add testcases

In order to check the tensor_split plugin, testcases are added.

**Changes proposed in this PR:**
- Add 3 tensor split test cases from file source
- Add 3 tensor split test cases from multiplefile sources

**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>
6 years ago[Transform] Add Arithmetic Mode
jijoong.moon [Thu, 6 Sep 2018 22:41:59 +0000 (07:41 +0900)]
[Transform] Add Arithmetic Mode

In addition to typecast and dimchg, we may need simple arithmetic for
element by element in tensor. For example, we need to add or
multiplicate a centain constant to element by element to scale. In
order to cover the requirement another mode called "arithmetic" is
added. The option for the this arithmetic mode is
"(operation):(constnat number)" such as "mul:2.0, add:-128".

"mode=arithmetic, option=add:-128"

One thing we should aware is that we do not gurantee the type of
tensor after the arithmetic operation. For the case of multiplication
with float type to the uint8_t type tensor, the output type should be
float. But in the mode, uint8_t is the type from this mode. That
means the type of output from this mode is always same with input type
of tensor. The user should aware of this and use this mode with
caution.

**Changes proposed in this PR:**
- arithmetic mode is added

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>