platform/upstream/nnstreamer.git
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>
6 years ago[Common/Refactor] Remove rank from pad cap
MyungJoo Ham [Mon, 10 Sep 2018 02:41:10 +0000 (11:41 +0900)]
[Common/Refactor] Remove rank from pad cap

- Remove rank from pad cap of other/tensor and other/tensors
- Remove dependencies on rank info from plugins

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Documentation] Update README.md entry for tensor_filter
MyungJoo Ham [Fri, 7 Sep 2018 06:27:51 +0000 (15:27 +0900)]
[Documentation] Update README.md entry for tensor_filter

Addressing #490, this adds more information about tensor_filter.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Documentation] Add README.md entry for tensor_decoder
MyungJoo Ham [Wed, 5 Sep 2018 09:52:53 +0000 (18:52 +0900)]
[Documentation] Add README.md entry for tensor_decoder

This add the new README.md for tensor_decoder.

As partial solution of #490, this follows the format of other #490 related commits

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Documentation] Update the root README.md
MyungJoo Ham [Wed, 5 Sep 2018 07:26:43 +0000 (16:26 +0900)]
[Documentation] Update the root README.md

- Updated the developmental status of each element.
- Updated URLs
- The whole document is revised.
- The component list is detached from the root. (per the comment of @leemgs)

Partially addressing #490.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Common] Refactor num tensors range of other/tensors
MyungJoo Ham [Mon, 10 Sep 2018 02:34:57 +0000 (11:34 +0900)]
[Common] Refactor num tensors range of other/tensors

With default Gstreamer, it is [1, 16], not [1, 65535]

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Convert] refactor tensor-converter
Jaeyun [Wed, 5 Sep 2018 09:05:05 +0000 (18:05 +0900)]
[Convert] refactor tensor-converter

refactor tensor-converter with gst-adapter, so that this plugin can aggregate the frames.

1. change properties
- add frames-per-tensor to set the number of frames in output tensor
- remove force-memcpy, frames-per-buffer
2. fixed size of string type (GST_TENSOR_STRING_SIZE)
3. remove media format and type in GstTensorConfig
4. add simple testcases to test media stream and data aggregation using tensor-sink

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Test] set lib path
Jaeyun [Fri, 7 Sep 2018 10:18:18 +0000 (19:18 +0900)]
[Test] set lib path

1. set lb_lib_path before starting unittest
2. fix typo in cmake

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Aggregator] fix output tensor dimension and timestamp
Jaeyun [Wed, 5 Sep 2018 05:23:44 +0000 (14:23 +0900)]
[Aggregator] fix output tensor dimension and timestamp

1. add property to set the index of frames in tensor dimension.
2. add pad query function for caps negotiation.
3. set timestamp to push a buffer to src pad

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[TensorSplit] Complete TensorSplit Implementation
jijoong.moon [Tue, 28 Aug 2018 22:48:00 +0000 (07:48 +0900)]
[TensorSplit] Complete TensorSplit Implementation

Complete TensorSplit Implementation.
- Adding chain function
  . Create pad to push downstream
  . Create GstMemory and insert into GstBuffer

**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[unittest] Remove dependency
sewon.oh [Fri, 7 Sep 2018 02:25:19 +0000 (11:25 +0900)]
[unittest] Remove dependency

To check unit test coverage, need 'taos-ci-unittest-coverage' package.
But this package is not provided 'download.tizen.org' so remove that package and add 'unittest.py' file, lcov package.

Signed-off-by: sewon.oh <sewon.oh@samsung.com>
6 years agoUpdate CODE_OF_CONDUCT.md
MyungJoo Ham [Tue, 4 Sep 2018 10:14:10 +0000 (19:14 +0900)]
Update CODE_OF_CONDUCT.md

This creates CODE OF CONDUCT for nnstreamer, targetting external contributors.
Based on the base CoC template of github.com, I've added "contributors' responsibilities".

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Documentation] Update README.md of converter
MyungJoo Ham [Wed, 5 Sep 2018 09:21:51 +0000 (18:21 +0900)]
[Documentation] Update README.md of converter

- Updated the status of converter.
- Added more information for converter.

Addressing #490

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[CODEOWNERS] Update for github.com migration
MyungJoo Ham [Wed, 5 Sep 2018 10:46:19 +0000 (19:46 +0900)]
[CODEOWNERS] Update for github.com migration

The usernames at github.com are different from our internal github repo.
Update CODEOWNERS accordingly.

Fixes #497

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Convert/Test] Add test cases for the GRAY8 color format
Wook Song [Mon, 3 Sep 2018 07:56:07 +0000 (16:56 +0900)]
[Convert/Test] Add test cases for the GRAY8 color format

This patch adds test cases for the 8-bit grayscale video format (i.e.,
video/x-raw,format=GRAY8).

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Test F/W] Update tools in the test framework to support GRAY8
Wook Song [Mon, 3 Sep 2018 07:40:37 +0000 (16:40 +0900)]
[Test F/W] Update tools in the test framework to support GRAY8

This patch updates gen24bBMP.py, which generates BMP files for the
testcases, and testAPI.sh, which is a helper tool for the unit tests, to
support the newly added color format, GRAY8.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Test F/W] Modify bmp2png to support converting from GRAY8 BMP
Wook Song [Mon, 3 Sep 2018 05:54:48 +0000 (14:54 +0900)]
[Test F/W] Modify bmp2png to support converting from GRAY8 BMP

This patch modifies the bmp2png tool to support converting from 8-bit
grayscale BMP to 8-bit grayscale PNG. To use this feature, it is
required to provide the second command line option '--GRAY8' with no
argument.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Common] Support GRAY8, the 8-bit grayscale video format
Wook Song [Fri, 31 Aug 2018 07:30:21 +0000 (16:30 +0900)]
[Common] Support GRAY8, the 8-bit grayscale video format

This patch adds support for the 8-bit grayscale video format, GRAY8.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Decode] remove dependency of media type in tensor config
Jaeyun [Tue, 4 Sep 2018 10:59:16 +0000 (19:59 +0900)]
[Decode] remove dependency of media type in tensor config

Updates tensordec before removing media type and format in GstTensorConfig structure

1. add property to set output media type
2. add functions for media caps
 - some functions in tensor_common will be removed

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[config] Updated the existing configuration files for TAOS-CI
Geunsik Lim [Tue, 4 Sep 2018 06:56:50 +0000 (15:56 +0900)]
[config] Updated the existing configuration files for TAOS-CI

This commit is to update the existing configuration files for TAOS-CI because
the files are out-of-date.

**Changes proposed in this PR:**
1. Added webhook configuration file
2. Updated out-of-date configuration files
3. Updated default variables in the configuration files
4. Removed license contents in configuration files to avoid license issue

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
6 years ago[Style Fix] Indentation Error Fix.
MyungJoo Ham [Tue, 4 Sep 2018 10:26:31 +0000 (19:26 +0900)]
[Style Fix] Indentation Error Fix.

As the CI system returns, we got unchecked style error.
Fixes CI style error found with PR #487

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Filter] Fix CMake Build Bug
jijoong.moon [Mon, 3 Sep 2018 02:06:00 +0000 (11:06 +0900)]
[Filter] Fix CMake Build Bug

When DISABLE_TENSORFLOW_LITE=ON or DISABLE_TENSORFLOW=ON, it is not
working becasue of the wrong CMakeList.txt.

**Changes proposed in this PR:**
- Fix IF-ENDIF statement in CMakeList.txt

**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[TensorSplit] Add Set/Get Properties
jijoong.moon [Tue, 28 Aug 2018 01:27:17 +0000 (10:27 +0900)]
[TensorSplit] Add Set/Get Properties

In order to get/set tensor split size, TENSORSEG property is added. To
Manupilate set and get properties function is modified.

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
6 years ago[Filter] make filter available handling multi tensor
HyoungjooAhn [Thu, 30 Aug 2018 08:37:30 +0000 (17:37 +0900)]
[Filter] make filter available handling multi tensor

get rid of set the index 0 and make it iteration

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>
6 years ago[Aggregator] initial commit
Jaeyun [Wed, 29 Aug 2018 08:05:43 +0000 (17:05 +0900)]
[Aggregator] initial commit

Plugin to aggregate tensor stream. (used gst-adapter)

1. add properties to set output frames
 - frames-in : number of frames in input buffer
 - frames-out : number of frames in output buffer
 - frames-flush : number of frames to flush data

2. testcase (stream with aggregater) will be added soon.

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

related issue : #474 [Advanced Queueing] Support aggregation

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years agoChange file extension
Sung-Jae Lee [Thu, 30 Aug 2018 14:35:15 +0000 (23:35 +0900)]
Change file extension

* add `*.md` extension to CONTRIBUTING document to display properly on
 github

Signed-off-by: Sung-Jae Lee <sj925.lee@samsung.com>
6 years ago[Example] Add a tensor_filter application for performance profiling
Wook Song [Tue, 28 Aug 2018 02:27:58 +0000 (11:27 +0900)]
[Example] Add a tensor_filter application for performance profiling

This patch adds a NNStreamer example application (based on tensor_filter
using Tensorflow Lite) for performance profiling.

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 years ago[Filter] Modify property dimension to get tensors format
jijoong.moon [Wed, 22 Aug 2018 00:20:59 +0000 (09:20 +0900)]
[Filter] Modify property dimension to get tensors format

In order to get tensors format, set & get properties in filter should
be changed. It takes "1:640:480:3,1:100:100:3". It counts the rank of
each tensor and number of tensor in tensors as well.

**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[TensorSplit] Skeleton to split tensor into multiple tensor
jijoong.moon [Mon, 27 Aug 2018 01:53:02 +0000 (10:53 +0900)]
[TensorSplit] Skeleton to split tensor into multiple tensor

In order to split tensor to multiple tensor, tensor_split is
requried. It take one big tensor as an input and push the multiple
smale tensor segment to downstream according to segment option.

This PR indlucdes skeleton of tensor split.

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
6 years ago[Convert/Decode] support text type (text/x-raw)
jy1210.jung [Fri, 24 Aug 2018 05:01:17 +0000 (14:01 +0900)]
[Convert/Decode] support text type (text/x-raw)

1. add code to support string (text/x-raw,format=utf8)
2. update transform buffer size (passes received size)
3. change code to get raw caps from string
4. add simple stream test using tensor sink

related issue : #305

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Sink/Example] update example for text stream
jy1210.jung [Fri, 24 Aug 2018 04:49:09 +0000 (13:49 +0900)]
[Sink/Example] update example for text stream

1. add code to test text stream
2. remove max-lateness (default -1 unlimited time)
3. update comments for changed code

related issue : #305

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Common] add int64/uint64 type
Jaeyun [Mon, 20 Aug 2018 09:53:00 +0000 (18:53 +0900)]
[Common] add int64/uint64 type

1. add type for int64, uint64
2. update unittest for tensor type
3. update comments for changed code

related issue : #304

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Doc] add link to examples wiki page
jy1210.jung [Tue, 21 Aug 2018 08:30:32 +0000 (17:30 +0900)]
[Doc] add link to examples wiki page

[how-to-run-examples.md]
link to examples wiki page (nnsuite/nnstreamer)

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

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Decode] support audio
jy1210.jung [Fri, 17 Aug 2018 07:22:45 +0000 (16:22 +0900)]
[Decode] support audio

1. added audio format
2. code refactoring
 - add macro for debug message
 - use common functions to set tensor and media caps

Needs to check later : test with debug message (set silent=false)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Filter/TF] Skeleton for Tensorflow support
jijoong.moon [Thu, 2 Aug 2018 02:54:48 +0000 (11:54 +0900)]
[Filter/TF] Skeleton for Tensorflow support

Add Skeleton code to support tensorflow model

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

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
6 years ago[Filter/TF-Lite] add a variable to store in/out tensor rank
HyoungjooAhn [Thu, 16 Aug 2018 05:33:48 +0000 (14:33 +0900)]
[Filter/TF-Lite] add a variable to store in/out tensor rank

the TfLiteCore class will hold the rank information of each tensors

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>
6 years ago[Filter/TF-Lite] update tflite core to hold model datas
HyoungjooAhn [Thu, 16 Aug 2018 01:54:23 +0000 (10:54 +0900)]
[Filter/TF-Lite] update tflite core to hold model datas

the tflite core class hold and manage the model information likes dimensions, size, types of each tensor.

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>
6 years ago[Filter] change properties for one tensors to array
HyoungjooAhn [Thu, 9 Aug 2018 11:03:46 +0000 (20:03 +0900)]
[Filter] change properties for one tensors to array

for now, the first index(0) will be used before multi tensor environment

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>
6 years ago[Convert] initial commit to support audio format
jy1210.jung [Fri, 10 Aug 2018 06:15:08 +0000 (15:15 +0900)]
[Convert] initial commit to support audio format

1. supported audio format : S8, U8, S16LE, S16BE, U16LE, U16BE
2. add property for frames to set tensor dim (frames-per-buffer)
 - if frames-per-buffer is 0, tensor-converter sets sample rate into [frames]
3. code refactoring (add macros for debug, remove duplicated)
4. change property name and flags
5. add simple testcase for audio format

related issue : #350

needs discussion (later work)
 - audio tensor dim ([channels][frames] or [frames])
   In this PR, just added [channels][frames]
 - how to set the frames in buffer (samples count per buffer)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Sink] update test example / macro for debug
jy1210.jung [Tue, 7 Aug 2018 11:32:07 +0000 (20:32 +0900)]
[Sink] update test example / macro for debug

1. add test pipeline to test audio stream in sink example
   (default type 0 for video stream)
2. add definition for debug
3. fix pad caps for other/tensors

Do not use GstStaticCaps and gst_static_caps_get() as local variable

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

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Common] add method to get media type / macro for caps
jy1210.jung [Tue, 7 Aug 2018 09:51:05 +0000 (18:51 +0900)]
[Common] add method to get media type / macro for caps

1. add common method to get media type from caps (video and audio type)
2. add macro for tensor cap definition

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

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Filter/TF-Lite] remove unnecessary code
jy1210.jung [Wed, 1 Aug 2018 12:28:20 +0000 (21:28 +0900)]
[Filter/TF-Lite] remove unnecessary code

1. use interpreter inputs() / outputs() to get input/output tensor index
list
2. add debug logs to print tensor dim and type

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

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Performance/profile] Implement profile feature
sewon.oh [Thu, 2 Aug 2018 03:58:14 +0000 (12:58 +0900)]
[Performance/profile] Implement profile feature

You can know time and cpu usage in pipeline using same command './testAll.sh 1'.

Signed-off-by: sewon.oh <sewon.oh@samsung.com>
6 years ago[CMAKE] Cleanup the cmake files
Sangjung woo [Fri, 3 Aug 2018 06:11:17 +0000 (15:11 +0900)]
[CMAKE] Cleanup the cmake files

* Remove redundant minimum required version checker in CMakeLists
* Move 'ADD_SUBDIRECTORY' statements as a single block to imporve
  readability

Signed-off-by: Sangjung woo <sangjung.woo@samsung.com>
6 years ago[README] Update readme, remove internal links.
MyungJoo Ham [Thu, 2 Aug 2018 00:16:04 +0000 (09:16 +0900)]
[README] Update readme, remove internal links.

- Remove an internal link for github.com users
- Add some notes on temporarily unavailable items.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Common] Add and refactor common functions
MyungJoo Ham [Tue, 31 Jul 2018 09:38:52 +0000 (18:38 +0900)]
[Common] Add and refactor common functions

- Added common metadata type for other/tensors
- Added GstStructure --> other/tensors meta data conversion
- Refactored GstCaps --> other/tensor meta data conversion

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Filter/Main] Fix memerr (dangling pointer)
MyungJoo Ham [Tue, 31 Jul 2018 10:55:52 +0000 (19:55 +0900)]
[Filter/Main] Fix memerr (dangling pointer)

An object was not freed and dangling around.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Sink] add testcase about negotiated caps
jy1210.jung [Tue, 31 Jul 2018 02:56:48 +0000 (11:56 +0900)]
[Sink] add testcase about negotiated caps

1. add tc to check negotiated caps (other/tensor, other/tensors)
2. change plugin path for unittest

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

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[other/tensorsave] Update header format
MyungJoo Ham [Mon, 30 Jul 2018 05:44:38 +0000 (14:44 +0900)]
[other/tensorsave] Update header format

Add "name" for each other/tensor in other/tensorsave.

This will be a "comment" that won't be used by nnstreamer
for a while, but later, this may be used by demuxer/tensorpick.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[Demux] Fix test break when performance option=1
sewon.oh [Tue, 31 Jul 2018 02:42:59 +0000 (11:42 +0900)]
[Demux] Fix test break when performance option=1

occur segmentation error when testing
```bash
nnstreamer/tests $ ./testAll.sh 1
0:00:00.025194169 21004 0x7f47b0002d90 DEBUG            tensordemux gsttensordemux.c:437:gst_tensor_demux_chain:<demux>  Number or Tensors: 1
0:00:00.025209492 21004 0x7f47b0002d90 DEBUG            tensordemux gsttensordemux.c:307:gst_get_tensor_pad:<demux> createing pad: 0(0th)

****** skip ********

0:00:00.008473223 21133      0x1b51e80 DEBUG            tensordemux gsttensordemux.c:488:gst_tensor_demux_chain:<demux> pushing buffer with timestamp 99:99:99.999999999
Caught SIGSEGV
Spinning.  Please run 'gdb gst-launch-1.0 21170' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
```

I guess that cause is to typecast integer pointer to char pointer without converting.
This is temporary fix.

Signed-off-by: sewon.oh <sewon.oh@samsung.com>
6 years ago[Sink] update pad template
jy1210.jung [Mon, 30 Jul 2018 10:22:38 +0000 (19:22 +0900)]
[Sink] update pad template

prepare tensors caps,
1. add function to merge tensor caps
2. set sink pad caps (other/tensor, other/tensors)

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

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Filter/Custom/Example] Fix scaler-alloc type bug
MyungJoo Ham [Mon, 30 Jul 2018 05:12:32 +0000 (14:12 +0900)]
[Filter/Custom/Example] Fix scaler-alloc type bug

The pointer locations didn't count the effect of element size.

Fixes #193

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[DIST] Install gst plugins to gst directory
MyungJoo Ham [Mon, 30 Jul 2018 01:25:20 +0000 (10:25 +0900)]
[DIST] Install gst plugins to gst directory

The install path for gst plugins are not %{_libdir}.
It's %{_libdir}/gstreamer-1.0

We need to use gstreamer convention.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[TEST] shorten length of path to plugin
sewon.oh [Fri, 27 Jul 2018 05:45:17 +0000 (14:45 +0900)]
[TEST] shorten length of path to plugin

Got an idea by @jijoong-moon @myungjoo-ham
Only use top-level directory path.

Signed-off-by: sewon.oh <sewon.oh@samsung.com>
6 years ago[Release] Version 0.0.1 v0.0.1
MyungJoo Ham [Fri, 27 Jul 2018 04:51:04 +0000 (13:51 +0900)]
[Release] Version 0.0.1

As the basic requirement (stream app with camera and single-tensor output tf-lite model)
is fulfilled finally with #360, we hereby announce the release of 0.0.1.

We will move on to 0.0.2-rc1 after this.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
6 years ago[TensorDemux] Add multiple tensor choose testcase
jijoong.moon [Thu, 26 Jul 2018 02:38:55 +0000 (11:38 +0900)]
[TensorDemux] Add multiple tensor choose testcase

Add testcases to evaluate mutiple tensor choose

**Changes proposed in this PR:**
- Added testcase
  . "tensorpick=1,2" among 3 png sink mux and demux
  . "tensorpick=0,2" among 3 png stream sink mux and demux

**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] change video sink and update document
jy1210.jung [Fri, 27 Jul 2018 03:52:08 +0000 (12:52 +0900)]
[Example] change video sink and update document

1. change video sink (xvimagesink > ximagesink)
2. update guide document
 - sync to wiki page
 - add tflite model link
3. add qos message for debug (filter example)

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

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 years ago[Filter/TF-Lite] upload the unittest with test data
HyoungjooAhn [Thu, 26 Jul 2018 11:40:04 +0000 (20:40 +0900)]
[Filter/TF-Lite] upload the unittest with test data

the model will detect the image file and the result will be compared with the label

Signed-off-by: HyoungjooAhn <hello.ahn@samsung.com>