platform/upstream/nnstreamer.git
5 years ago[Decoder] Pull decoder subplugins out to /ext
MyungJoo Ham [Wed, 30 Jan 2019 10:06:14 +0000 (19:06 +0900)]
[Decoder] Pull decoder subplugins out to /ext

Decoder subplugins can now be built externally
without the need to be built along with nnstreamer.

Thus, from now on, third party developers can
write decoder subplugins without nnstreamer sources.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[API] Filter/Decoder subplugin API headers
MyungJoo Ham [Wed, 30 Jan 2019 09:44:49 +0000 (18:44 +0900)]
[API] Filter/Decoder subplugin API headers

Before:
- nnstreamer_plugin_api.h had mandatory filter APIs and optional APIs for filter/decoder, depend on glib, not supporting decoder mandatory APIs.

After:
- nnstreamer_plugin_api.h has optional APIs only / depend on glib
- nnstreamer_plugin_api_filter.h has mandatory Filter APIs / no dependencies
- nnstremaer_plugin_api_decoder.h has mandatory Decoder APIs / depend on gst

With this, we can completely cut the dependencies on glib for nnstreamer sub-plugin writers.
Besides, "ext-nizing" decoders requires this as well.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Common] add common function
Jaeyun [Mon, 11 Feb 2019 09:07:37 +0000 (18:07 +0900)]
[Common] add common function

1. add new function _info_free() to free allocated data in tensor-info structure
2. move functions to plugin api header

TODO:
I will add new PR to use common functions to set/get tensor info in tensor_filter tf sub-plugins.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Common] fix val type
Jaeyun [Fri, 8 Feb 2019 10:31:57 +0000 (19:31 +0900)]
[Common] fix val type

fix return type in common functions and code clean

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter] print message when caps-nego failed
Jaeyun [Mon, 11 Feb 2019 04:35:57 +0000 (13:35 +0900)]
[Filter] print message when caps-nego failed

add warning message if properties and model info are different

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Decoder] refactor subplugin structure for /ext preparation
MyungJoo Ham [Wed, 30 Jan 2019 09:28:08 +0000 (18:28 +0900)]
[Decoder] refactor subplugin structure for /ext preparation

The interface between tensor-decoder::main and tensor-decoder::*
should not include internal tensor-decoder data structure.

Communicate with Gstreamer native or exported data structure only.

For third-party / user-contents developers, detach
glib dependencies as well.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years agoSubplugin register/unregister refactored.
MyungJoo Ham [Wed, 30 Jan 2019 07:27:44 +0000 (16:27 +0900)]
Subplugin register/unregister refactored.

A plugin, "filter" and "decoder" no more have their own
internal data structure to store subplugins.

Both filter and decoder subplugins now use APIs of
nnstreamer_subplugin via
nnstreamer_plugin_api.h (filters)
tensordec.h (decoder)

Decoders are to be refactored further to use
nnstreamer_plugin_api.h after moving decoder subplugins
to ext/

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Build/Filter] code clean
Jaeyun [Fri, 8 Feb 2019 08:52:09 +0000 (17:52 +0900)]
[Build/Filter] code clean

fix typo and clean up build script,

1. remove unnecessary variable and dependency.
2. set common path and dependencies, clean up meson script.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[DIST] Install path changes, add symlink
MyungJoo Ham [Tue, 29 Jan 2019 09:41:31 +0000 (18:41 +0900)]
[DIST] Install path changes, add symlink

1. Add symlink to libnnstreamer.so at _libdir
2. Install tensor-filter subplugins to the tensor-filter
configuration directory, not _libdir.
3. Do not generate api library. We can use libnnstreamer.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Filter:*] Migrate subplugins to ext
MyungJoo Ham [Tue, 29 Jan 2019 09:33:47 +0000 (18:33 +0900)]
[Filter:*] Migrate subplugins to ext

Filter subplugins that have external dependencies are
fully detached from Filter:main now.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Meson] dependency for generated files
Jaeyun Jung [Fri, 1 Feb 2019 16:38:22 +0000 (01:38 +0900)]
[Meson] dependency for generated files

Remove orc-generated files in nnstreamer plugin dep and clean up meson script.

If declares dependency with orc-gen files, it will compile generated file with this dep.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson/CustomFilter] change install path
Jaeyun [Fri, 1 Feb 2019 05:22:55 +0000 (14:22 +0900)]
[Meson/CustomFilter] change install path

install custom-filter examples into {subplugin_install_prefix}/customfilters

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] configuration to install ini
Jaeyun [Fri, 1 Feb 2019 03:53:18 +0000 (12:53 +0900)]
[Meson] configuration to install ini

add config to set sub-plugins install prefix

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[DIST] Install /etc/nnstreamer.ini
MyungJoo Ham [Wed, 30 Jan 2019 10:14:15 +0000 (19:14 +0900)]
[DIST] Install /etc/nnstreamer.ini

Users can configure the locations of decoder/filter subplugins.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Test] runTest.sh typo
MyungJoo Ham [Thu, 31 Jan 2019 01:47:35 +0000 (10:47 +0900)]
[Test] runTest.sh typo

If statements of bash uses ==, not =, for equal-comparison

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Conf] Bugfix of array out of bound
MyungJoo Ham [Wed, 30 Jan 2019 10:36:02 +0000 (19:36 +0900)]
[Conf] Bugfix of array out of bound

The last element of vstr should be NULL.
Set NULL for such elements

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Conf] Bugfix: if no path is given, use current dir.
MyungJoo Ham [Wed, 30 Jan 2019 07:23:56 +0000 (16:23 +0900)]
[Conf] Bugfix: if no path is given, use current dir.

If path is NULL, don't give it to glib path library.
Use "./" instead.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Filter:*] Cut build dependency of filter-subplugin to filter
MyungJoo Ham [Tue, 29 Jan 2019 09:15:05 +0000 (18:15 +0900)]
[Filter:*] Cut build dependency of filter-subplugin to filter

Enable tensor-filter subplugins to be built without
dependencies on tensor_filter.

After this commit, we can build filter subplugins with
the exported "tensor_typedef.h".

This enables #786 and #761

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Subplugin] Do not dlsym if it's already probed.
MyungJoo Ham [Tue, 29 Jan 2019 09:06:17 +0000 (18:06 +0900)]
[Subplugin] Do not dlsym if it's already probed.

With dlopen, consturctor function is loaded, which
may call subplugin-probe.

If it has called subplugin-probe, registering the
subplugin to an element (filter/decoder) specific
internal list, we do not need to register it with
nnstreamer_subplugin structure.

- Add an internal API, "hold_register_subplugin", that
notified nnstremer_subplugin that it has probed already.
- Call "hold_register_subplugin" at probe function.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years agoBugfix of nnstreamer_conf internal API
MyungJoo Ham [Tue, 29 Jan 2019 09:04:30 +0000 (18:04 +0900)]
Bugfix of nnstreamer_conf internal API

- Fix exported name of nnsconf_loadconf (typo)
- Fix incorrect enums of subplugin_prefixes (typo)

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Codeowner] Add kparichay to default reviewers
MyungJoo Ham [Tue, 29 Jan 2019 14:46:03 +0000 (23:46 +0900)]
[Codeowner] Add kparichay to default reviewers

And, we do not need special reviewers for packaging any more.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Repo] Add test case for repo dynamicity
jijoong.moon [Wed, 16 Jan 2019 02:36:48 +0000 (11:36 +0900)]
[Repo] Add test case for repo dynamicity

In this PR, added repo test application. It constructs pipeline and
change slot id from 0 to 1 after spending time waiting for 200 micro
second.

                                         repository
+------------+   +----------+        +-----------------+
| Multi-sink |<--| repo_src |<---+---|     slot 0      |<---+--+
+------------+   +----------+    |   +-----------------+    |  |
                                 +---|     slot 1      |<---+  |
                                     +-----------------+       |
                                                               |
+-----------+   +--------+   +-----------+   +-----------+     |
| Multi-src |-->| pngdec |-->| converter |-->| repo_sink |-----+
+-----------+   +--------+   +-----------+   +-----------+

**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[Decoder/Boundingbox] make decoder possible to handle tensorflow ssd model
Hyoung Joo Ahn [Fri, 25 Jan 2019 06:17:32 +0000 (15:17 +0900)]
[Decoder/Boundingbox] make decoder possible to handle tensorflow ssd model

make it available to process the output tensors of tensorflow ssd model

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
5 years ago[Filter/subplugin] Follow the subplugin naming rule.
MyungJoo Ham [Mon, 28 Jan 2019 04:41:22 +0000 (13:41 +0900)]
[Filter/subplugin] Follow the subplugin naming rule.

Subplugin name rule (described at gst/nnstreamer/nnstreamer_subplugin.h)
states:

The filename should be subplugin_prefixes[type]${name}.so

The subplugins should be follow the rule to be recognized by runtime
plug-and-play mechanism of nnstreamer_subplugin.h

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Common] Remove unused function, 'gst_tensor_media_type_from_caps'
Wook Song [Mon, 28 Jan 2019 02:02:19 +0000 (11:02 +0900)]
[Common] Remove unused function, 'gst_tensor_media_type_from_caps'

This patch removes a unused function, gst_tensor_media_type_from_caps,
from tensor_common.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Dist/Tizen] Add plug-in API library to development package
Wook Song [Fri, 25 Jan 2019 06:27:00 +0000 (15:27 +0900)]
[Dist/Tizen] Add plug-in API library to development package

This patch adds the plug-in API library to the development package for
Tizen.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[DIST/Debian] Add plug-in API library to development package
Wook Song [Fri, 25 Jan 2019 06:08:51 +0000 (15:08 +0900)]
[DIST/Debian] Add plug-in API library to development package

This patch adds the plug-in API library to the development pacakge for
Debian distros.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[PkgConfig] Update to use plug-in API lib
Wook Song [Fri, 25 Jan 2019 06:02:02 +0000 (15:02 +0900)]
[PkgConfig] Update to use plug-in API lib

This patch updates the PkgConfig file for the development package so
that the plug-in developers can use newly added plug-in API library.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Meson] Create shared and static libraries of plug-in APIs
Wook Song [Fri, 25 Jan 2019 01:57:33 +0000 (10:57 +0900)]
[Meson] Create shared and static libraries of plug-in APIs

This patch updates meson build script to create shared and static
libraries of plug-in APIs.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Common] Remove duplicate contents from tensor_common
Wook Song [Fri, 25 Jan 2019 01:27:55 +0000 (10:27 +0900)]
[Common] Remove duplicate contents from tensor_common

This patch removes contents duplicated in the plug-in APIs are removed
from tensor_common. Meson build script is also updated to avoid build
break.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Common] Extract APIs for plug-in developers from tensor_common
Wook Song [Fri, 25 Jan 2019 00:47:42 +0000 (09:47 +0900)]
[Common] Extract APIs for plug-in developers from tensor_common

Since we do not export tensor_common anymore, plug-in developers outside
our repository cannot use typedefed data types and mandatory functions
to implement NNStreamer extension plug-ins. In order to handle such
issue, this patch extracts types and functions can be regarded as APIs
from tensor_common. Note that only subset of all APIs which the plugin
developers would need has been currently extracted.

Signed-off-by: Wook Song <wook16.song@samsung.com>
5 years ago[Build/Deb] enable tensorflow
Jaeyun Jung [Sat, 26 Jan 2019 03:15:27 +0000 (12:15 +0900)]
[Build/Deb] enable tensorflow

protobuf packaging done, enable tensorflow option.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/NNFW] add error message for user&debugging
Hyoung Joo Ahn [Fri, 25 Jan 2019 07:26:13 +0000 (16:26 +0900)]
[Filter/NNFW] add error message for user&debugging

add error message when errors have occurred

Signed-off-by: Hyoung Joo Ahn <hello.ahn@samsung.com>
5 years ago[Filter/Test] flow-return to drop incoming buffer
Jaeyun [Fri, 25 Jan 2019 04:58:55 +0000 (13:58 +0900)]
[Filter/Test] flow-return to drop incoming buffer

check returned value from invoke vmethod and return flow-dropped to skip incoming buffer.

TODO:
define status code for NNFW and custom-filter

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years agoStart of 0.1.1 Release Candidate Development
MyungJoo Ham [Fri, 25 Jan 2019 00:54:08 +0000 (09:54 +0900)]
Start of 0.1.1 Release Candidate Development

This is the start of 0.1.1 development.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years agoRelease NNStreamer 0.1.0 v0.1.0
MyungJoo Ham [Thu, 24 Jan 2019 06:35:55 +0000 (15:35 +0900)]
Release NNStreamer 0.1.0

- Build system migration cmake --> meson
- Support Tensorflow without input/output tensor memcpy
- other/tensor stream format updated
    - From 0.1.0, a single property, "dimension", describes the whole dimension instead of "dim1", "dim2", ...
    - Objective 1: in the future, we may support tensors with more than 4 dimensions without updating the protocol.
    - Objective 2: it was just too ugly.
- Example applications migrated to other git repo to make this repo ready for upstreaming in the fugure and to ensure buildability for third party developers.
- Support run-time attaching subplugins (filter and decoder)
- Support "ini" and envvar configurations for subplugin locations
- Dynamic external recurrences
- Subplugin API sets (draft. do not expect backward compatibility)
- Bug fixes (memory leaks, incorrect logs, type checks, ...)

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Filter/NNFW] clean code of tensorflow & tf-lite
Hyoung Joo Ahn [Thu, 24 Jan 2019 12:39:51 +0000 (21:39 +0900)]
[Filter/NNFW] clean code of tensorflow & tf-lite

adjust the style and remove useless keywords

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Common] common function to copy tensor info
Jaeyun [Thu, 24 Jan 2019 05:46:27 +0000 (14:46 +0900)]
[Common] common function to copy tensor info

add common function to copy tensor info

TODO:
1. seperate util-functions for developer (custom filter and plugins)
2. update custom examples and nnstreamer plugins with these functions

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Doc] Add gitter badge
MyungJoo Ham [Thu, 24 Jan 2019 09:20:44 +0000 (18:20 +0900)]
[Doc] Add gitter badge

Let users find the nnstreamer gitter easily.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Repo] Implement Dynamic Property(slot_id) Change of Repo
jijoong.moon [Fri, 18 Jan 2019 08:21:51 +0000 (17:21 +0900)]
[Repo] Implement Dynamic Property(slot_id) Change of Repo

Implement Dynamic slot_id property change of tensor_reposrc and
tensor_reposink. In order to check the status of current repo,
sink_changed(gboolean), sink_id(guint) and src_changed (gboolean),
src_id(guint) variables are added. While waiting buffer from
repo_sink, repo check if this variables are changed using
gst_tensor_repo_check_chagned call, and if it changed, it trys to get
buffer from new slot id. The changing status of repo is set when slot
id property changed using tensor_repo_set_changed.

**Changes proposed in this PR:**
- Added function calls to check and set the changing status of repo.
- Added variables to control flow in each 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[Doc] Add regular release status
MyungJoo Ham [Thu, 24 Jan 2019 06:21:07 +0000 (15:21 +0900)]
[Doc] Add regular release status

Build/Text status and Test code coverage will be
available after https://github.com/nnsuite/TAOS-CI/issues/452
is resolved.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Doc] Update getting started.
MyungJoo Ham [Thu, 24 Jan 2019 05:25:34 +0000 (14:25 +0900)]
[Doc] Update getting started.

Cleaning up the documentation, following up 3065d38fb8c56064ab695a8d46b2f9dbd3e1aad7

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Aggregator] condition to make output buffer writable
Jaeyun [Wed, 23 Jan 2019 08:41:30 +0000 (17:41 +0900)]
[Aggregator] condition to make output buffer writable

code review:
calls gst_buffer_make_writable when aggregator needs to concatenate output data

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter] fix the memory leak at filter
Hyoung Joo Ahn [Wed, 23 Jan 2019 03:58:23 +0000 (12:58 +0900)]
[Filter] fix the memory leak at filter

this pr solves the memory leak problem about the `model_file` and the `name` of input/output tensor

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Documentation] Update install instructions
Mauro Carvalho Chehab [Thu, 17 Jan 2019 16:24:04 +0000 (14:24 -0200)]
[Documentation] Update install instructions

In order to install it on Debian, it is needed first to get
the ssat and tensorflow packages.

Add instructions about how to do that.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
5 years ago[Decoder/BoundingBox] rename parameters just for tf-lite
Hyoung Joo Ahn [Mon, 21 Jan 2019 11:39:46 +0000 (20:39 +0900)]
[Decoder/BoundingBox] rename parameters just for tf-lite

some parameters subordinated to the ssd model of TFLite should have their own name.

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Build] update document and include path
Jaeyun [Tue, 22 Jan 2019 04:01:26 +0000 (13:01 +0900)]
[Build] update document and include path

1. update document (remove cmake guide)
2. change orc generated header path

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Build] remove cmake
Jaeyun [Tue, 22 Jan 2019 03:34:54 +0000 (12:34 +0900)]
[Build] remove cmake

transition to meson, remove all the cmake script.

relate issue : #927

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Common] change caps format for other/tensor
Jaeyun [Tue, 15 Jan 2019 08:00:10 +0000 (17:00 +0900)]
[Common] change caps format for other/tensor

This PR changes caps format for other/tensor.
Caps for tensor stream : other/tensor, framerate = (fraction) [0, max], type = (string) { uint8, .. }, dimension = (string) d1:d2:d3:d4

Related issue : #1027

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Document] update documents
Jaeyun [Tue, 22 Jan 2019 05:34:10 +0000 (14:34 +0900)]
[Document] update documents

update broken links and nnstreamer changes

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Repo] Add test cases for negotiation check
jijoong.moon [Tue, 15 Jan 2019 01:31:26 +0000 (10:31 +0900)]
[Repo] Add test cases for negotiation check

In order to check negotiation error, added test cases for repo.

**Changes proposed in this PR:**
- Added Test cases for repo

Resolves: #1026

**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[Filter] correct misspells and improper logic
Hyoung Joo Ahn [Tue, 22 Jan 2019 04:22:57 +0000 (13:22 +0900)]
[Filter] correct misspells and improper logic

there are some typos about in/out at a comment & exception handling

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Repo] Add checking caps compatibility between repo_src & repo_sink
jijoong.moon [Mon, 14 Jan 2019 22:44:21 +0000 (07:44 +0900)]
[Repo] Add checking caps compatibility between repo_src & repo_sink

It is difficult to check caps compatibility during negotiation because
they are not pipelined each other. That's why reposrc needs caps
property by the way. However, we have to check compatibility somehow
during runtime. In order to do that, GstMetaRepo is introduced.
In this PR, functions and defines are included to manipulate the meta
for repo. During generating buffer in reposink, insert GstMetaRepo
data with GstCaps and push to repo. After that, reposrc extracts the
GstMetaRepo when pulling the gstbuffer from repo
and compare it with caps defined by user. If they are not compatible,
it shows error and return GST_FLOW_EOS.

**Changes proposed in this PR:**
- Add GstMetaRepo type and manipulation functions
- Add insert GstMetaRepo into buffer
- Add comparison routine during get gstbuffer from repo
- Add Error handling if they are not compatible

Resolves: Issue #1026

**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 agoDIST: apply meson/ninja to debian build
MyungJoo Ham [Mon, 14 Jan 2019 01:28:23 +0000 (10:28 +0900)]
DIST: apply meson/ninja to debian build

Before remocing CMAKE infrastructure,
migrate build system to meson/ninja for debian builds.

This disabled tensorflow for Ubuntu build.
@hello-ahn reenable it after the update of protobuf

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[CI Fix] Temporarily Disable App Test
MyungJoo Ham [Sat, 19 Jan 2019 07:11:18 +0000 (16:11 +0900)]
[CI Fix] Temporarily Disable App Test

With recent updates on app test and build script,
we no longer have example applications in nnstreamer.git
It should be migrated to nnstreamer-example.git

We should build nnstreamer-example.git for app test, not
example directory in nnstreamer.git

This is an emergency fix for #1047

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 years ago[Filter/Tensorflow] remove `memcpy` of the output tensor by implementing `destroyNoti...
Hyoung Joo Ahn [Fri, 18 Jan 2019 06:34:44 +0000 (15:34 +0900)]
[Filter/Tensorflow] remove `memcpy` of the output tensor by implementing `destroyNotify()`

maintain the output tensors at the map for a while and erase it from the map when `destroyNotify()` is called

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Meson] clean script for unittest
Jaeyun [Fri, 18 Jan 2019 06:56:46 +0000 (15:56 +0900)]
[Meson] clean script for unittest

update build script for unittests and test-plugins

1. add script to copy exe for ssat
2. clean script to build test-plugins

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Example] remove all exec-examples
Jaeyun [Mon, 21 Jan 2019 05:56:58 +0000 (14:56 +0900)]
[Example] remove all exec-examples

Now all the exe-examples are migrated to nnstreamer-example repository.

TODO : we have to set up the app-test with the example repo.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson] change dependency for thread
Jaeyun [Thu, 17 Jan 2019 10:38:22 +0000 (19:38 +0900)]
[Meson] change dependency for thread

change dependency for thread (guide in meson-build https://mesonbuild.com/howtox.html)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Example] use an existed function rather than custom
Hyoung Joo Ahn [Fri, 18 Jan 2019 03:56:36 +0000 (12:56 +0900)]
[Example] use an existed function rather than custom

replace _strdup() to g_strdup() because it fulfills exactly same role

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Filter/Example] apply destroyNotify() callback at example
Hyoung Joo Ahn [Fri, 18 Jan 2019 03:33:31 +0000 (12:33 +0900)]
[Filter/Example] apply destroyNotify() callback at example

add destroy_notify callback at the example using allocate_invoke.

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Filter] remove definition of supported framework
Jaeyun [Fri, 18 Jan 2019 09:10:04 +0000 (18:10 +0900)]
[Filter] remove definition of supported framework

FW definition is now unnecessary.
1. remove fw defines
2. update custom filter description

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Documentation] update the doc readme&getting-started document
Hyoung Joo Ahn [Fri, 18 Jan 2019 10:54:39 +0000 (19:54 +0900)]
[Documentation] update the doc readme&getting-started document

change the address of example and modify the guide about meson and ppa address

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Filter] add a method destoryNotify() to handle data pointer
Hyoung Joo Ahn [Tue, 15 Jan 2019 08:30:43 +0000 (17:30 +0900)]
[Filter] add a method destoryNotify() to handle data pointer

It will handle the data pointer after GstMemory being destoryed. If no specific method, it will be g_free()

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Meson] add dependency for generated files
Jaeyun [Wed, 16 Jan 2019 04:52:13 +0000 (13:52 +0900)]
[Meson] add dependency for generated files

Add dependency for generated files.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Meson/Example] update script to install python example
Jaeyun [Wed, 16 Jan 2019 10:30:23 +0000 (19:30 +0900)]
[Meson/Example] update script to install python example

update script to install python example in image-classification

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Example] remove unnecessary examples
Jaeyun [Wed, 16 Jan 2019 09:25:20 +0000 (18:25 +0900)]
[Example] remove unnecessary examples

Remove unnecessary examples and dependency.

All the exec-examples are moved to nnstreamer-example repository.
Remained examples are needed for unit-test and app-test.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 years ago[Filter/Tensorflow] fix bug at input tensor
Hyoung Joo Ahn [Thu, 17 Jan 2019 07:05:44 +0000 (16:05 +0900)]
[Filter/Tensorflow] fix bug at input tensor

fix broken logic at input tensor

Signed-off-by: Hyoung Joo Ahn <hello.ahnn@gmail.com>
5 years ago[Filter/Common] common functions for tensor info
Jaeyun [Mon, 14 Jan 2019 07:58:43 +0000 (16:58 +0900)]
[Filter/Common] common functions for tensor info

Add common functions to handle the fomatted string of dimension, type, and name in tensors info.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
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>