platform/upstream/nnstreamer.git
2 years ago[filter] Bug fix for pytorch filter with gpu
Parichay Kapoor [Thu, 27 Jan 2022 08:44:04 +0000 (17:44 +0900)]
[filter] Bug fix for pytorch filter with gpu

ptyorch filter when working with gpu backend had bug when converting
between the devices. The tensors returned by the conversion were not
catched. This patch provides the corresponding fix.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
2 years ago[test/pytorch] Add ssat test for multiple input/output tensor model
Yongjoo Ahn [Mon, 27 Dec 2021 13:31:16 +0000 (22:31 +0900)]
[test/pytorch] Add ssat test for multiple input/output tensor model

- Add a simple test for pytorch model whose input and output are multiple tensors

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[filter/pytorch] Add support for tuple type output
Yongjoo Ahn [Tue, 21 Dec 2021 05:18:54 +0000 (14:18 +0900)]
[filter/pytorch] Add support for tuple type output

- Support torch script model whose output value is `Tuple`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Query] Fix invalid return value
Gichan Jang [Thu, 13 Jan 2022 02:37:51 +0000 (11:37 +0900)]
[Query] Fix invalid return value

Fix invalid return value when caps is same.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Doc] Fix and add new feature of the query.
Gichan Jang [Thu, 13 Jan 2022 00:46:39 +0000 (09:46 +0900)]
[Doc] Fix and add new feature of the query.

 - Fix capability of the query server and client.
 - Add about mqtt-hybrid

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Test] Add test cases for extra configuration
Sangjung Woo [Fri, 14 Jan 2022 10:41:02 +0000 (19:41 +0900)]
[Test] Add test cases for extra configuration

This patch newly adds the test cases for extra configuration.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[INI] Add extra configuration for product support
Sangjung Woo [Tue, 14 Dec 2021 03:20:34 +0000 (12:20 +0900)]
[INI] Add extra configuration for product support

The product team wants to update the nnstreamer configuration (i.e.
/etc/nnstreamer.ini). However, the partition is Read-Only so it is not
updatable. Because of this reason, they want another nnstreamer
configuration file to meet their request such as product-specific
allowed elements. This patch newly adds the nnstreamer extra
configuration file for product support.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[TRIx-Engine] Add TRIx-Engine plugin
Dongju Chae [Wed, 12 Jan 2022 06:33:14 +0000 (15:33 +0900)]
[TRIx-Engine] Add TRIx-Engine plugin

This patch adds TRIx-Engine tensor filter subplugin implementation.
It requires TRIV2 NPU HW and devel packages from the upstream tizen repo.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
2 years ago[Build] unnecessary build dependency accepted/tizen/unified/20220124.125235 submit/tizen/20220121.055425
Jaeyun [Fri, 14 Jan 2022 11:03:36 +0000 (20:03 +0900)]
[Build] unnecessary build dependency

Update unnecessary dependency of filter sub-plugins.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[decoder/bounding_box] Support decoder for yolov5
Yongjoo Ahn [Mon, 3 Jan 2022 07:25:10 +0000 (16:25 +0900)]
[decoder/bounding_box] Support decoder for yolov5

- Add feature for decoding yolov5 model's output
- Tested with tflite models from https://github.com/ultralytics/yolov5/releases/tag/v6.0

REF: https://github.com/ultralytics/yolov5
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[trivial] Fix some typos in tensordec-boundingbox.c
Yongjoo Ahn [Thu, 30 Dec 2021 04:19:17 +0000 (13:19 +0900)]
[trivial] Fix some typos in tensordec-boundingbox.c

- Fix some trivial typo issues

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Spec] Enable SNPE filter on DA profile
Sangjung Woo [Thu, 13 Jan 2022 07:33:54 +0000 (16:33 +0900)]
[Spec] Enable SNPE filter on DA profile

Tizen Robot Vacuum cleaner needs the SNPE filter. This patch enables it
on the DA profile.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Test] Fix python custom converter test fail
Gichan Jang [Tue, 11 Jan 2022 06:49:02 +0000 (15:49 +0900)]
[Test] Fix python custom converter test fail

Getting result from python json pareser, result string doesn't contain
null char, the test fails.
Add null char to the string from python json parser.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[trivial] Fix CRLF endend files to be LF ended
Yongjoo Ahn [Tue, 11 Jan 2022 04:32:15 +0000 (13:32 +0900)]
[trivial] Fix CRLF endend files to be LF ended

- Replace CRLF with LF

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Doc] Update debuild guide.
Gichan Jang [Mon, 10 Jan 2022 08:20:16 +0000 (17:20 +0900)]
[Doc] Update debuild guide.

Add description for nnfw ppa.

Related issue: #3612

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Conf] Update the name of 'restricted-elements'
Sangjung Woo [Thu, 6 Jan 2022 10:23:46 +0000 (19:23 +0900)]
[Conf] Update the name of 'restricted-elements'

The name 'restricted-elements' of nnstreamer configuration is not
matched as its real operation. This patch renames it to
'allowed_elements'.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Test/Build] fix error on old machine
Jaeyun [Fri, 7 Jan 2022 03:31:34 +0000 (12:31 +0900)]
[Test/Build] fix error on old machine

Fix implicit declaration on old machine.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[TEST] Changed the comparison method of the padded video.
Gichan Jang [Thu, 30 Dec 2021 07:37:02 +0000 (16:37 +0900)]
[TEST] Changed the comparison method of the padded video.

If the test runs with the valgrind, the comparison of the padded video fails.
(Related issue: https://github.com/nnstreamer/nnstreamer/issues/1367)
Zero was padded when running without the valgrind, but trash value was padded when running with the valgrind.
The comparison of the padded data is meaningless, it is modified to compare only the actual data.

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[TEST] Move replace_string to unittest_util.
gichan [Wed, 5 Jan 2022 03:27:59 +0000 (12:27 +0900)]
[TEST] Move replace_string to unittest_util.

Since `repace_string` is copied to nnstreamer/api and `replace_string` is only used for unit test, moves it to unit test util.
And the test related to `replace_string` is moved to nnstreamer/api.

Test to replace string to check unintended change.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Filter] set default fw in common
Jaeyun [Wed, 5 Jan 2022 08:45:15 +0000 (17:45 +0900)]
[Filter] set default fw in common

Fix mem leak, init default framework in filter-common function.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[fix/bug] Fix destructor of cpp class subplugin submit/tizen/20220106.040326
Yongjoo Ahn [Wed, 5 Jan 2022 08:20:53 +0000 (17:20 +0900)]
[fix/bug] Fix destructor of cpp class subplugin

- Fix pointer for subplugin in `cpp_close`
- Fix edgetpu and snpe filter's model path free function

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[TEST] Wait for the server to start and fix comment.
Gichan Jang [Wed, 29 Dec 2021 07:40:12 +0000 (16:40 +0900)]
[TEST] Wait for the server to start and fix comment.

 - Wait for the server to start.
    If client attempts to connect to the server when the server is not ready, it may  fails.
    Previous PR, sleep time was omitted only in Test 7.
 - Fix invalid comment.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Spec] Remove invalid elements from restricted elements.
Gichan Jang [Wed, 29 Dec 2021 04:51:01 +0000 (13:51 +0900)]
[Spec] Remove invalid elements from restricted elements.

Remove invalid elements from restricted elements.
  queryclient -> tensor_query_client
  queryserversrc -> tensor_query_serversrc
  queryserversink -> tensor_query_serversink

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[TEST/util] Change getTempFileName function
Gichan Jang [Thu, 23 Dec 2021 05:43:07 +0000 (14:43 +0900)]
[TEST/util] Change getTempFileName function

When creating a temp file name, it is set to create a unique name, but duplicated temp names may occasionally generated because we remove generated file and get the temp name only.
So sometimes duplicated temp filed names generated when creating temp filenames multiple times.

For example, generate tmp filename 5 times, tmp2 and tmp3 is duplicated.

[  200s] ** (unittest_cppfilter:132252): CRITICAL **: 05:07:52.416: tmp1: /tmp/nnstreamer_unittest_temp_UJOPE1
[  200s]
[  200s] ** (unittest_cppfilter:132252): CRITICAL **: 05:07:52.416: tmp2: /tmp/nnstreamer_unittest_temp_VIOPE1
[  200s]
[  200s] ** (unittest_cppfilter:132252): CRITICAL **: 05:07:52.416: tmp3: /tmp/nnstreamer_unittest_temp_VIOPE1
[  200s]
[  200s] ** (unittest_cppfilter:132252): CRITICAL **: 05:07:52.416: tmp4: /tmp/nnstreamer_unittest_temp_AJOPE1
[  200s]
[  200s] ** (unittest_cppfilter:132252): CRITICAL **: 05:07:52.416: tmp5: /tmp/nnstreamer_unittest_temp_ILOPE1

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Common] Add error message for tensor common functions accepted/tizen/unified/20211222.230213 submit/tizen/20211221.100006
gichan [Mon, 13 Dec 2021 08:37:07 +0000 (17:37 +0900)]
[Common] Add error message for tensor common functions

Add error message for tensor common functions.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Coverity] Fix use after free
yelini-jeong [Thu, 16 Dec 2021 06:55:01 +0000 (15:55 +0900)]
[Coverity] Fix use after free

This patch fixes coverity issues (WGID 131439, CID 1243725)

Signed-off-by: yelini-jeong <yelini.jeong@samsung.com>
2 years ago[Filter/TFLite] Fix delegates deleter usage
Julien Vuillaumier [Wed, 15 Dec 2021 18:23:21 +0000 (19:23 +0100)]
[Filter/TFLite] Fix delegates deleter usage

On pipeline stop, crash in TFLite filter may be seen with some
delegates with log signature:

Setting pipeline to NULL ...
free(): invalid pointer

Pipeline termination procedure is then aborted.

TFlite delegates shall be released by specific deleter, provided
by their respective interface.
TFLite filter implementation manages delegates instance with
smart pointers for automatic disposal when interpreter goes out of
of scope.

Care should be taken to bind relevant delegate deleter to the
smart pointer, otherwise trivial deleter is used for the managed
pointer which may crash.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Query] Check whether cap is fixed or not.
Gichan Jang [Fri, 10 Dec 2021 09:13:52 +0000 (18:13 +0900)]
[Query] Check whether cap is fixed or not.

 - Check whether the cap is fixed or not before setting the cap.
 - If the tensor format is not fixed, static is set as default format.
 - Set the framerate of the source to the same as the sink.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Query] error handing in query-server init
Jaeyun [Tue, 14 Dec 2021 07:18:51 +0000 (16:18 +0900)]
[Query] error handing in query-server init

Fix possible resource leak - handle error case in query-server init.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Test/Query] fix invalid param
Jaeyun [Tue, 14 Dec 2021 07:39:02 +0000 (16:39 +0900)]
[Test/Query] fix invalid param

Fix invalid param - instance after launching test pipeline.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Typo] Fix some typos in query serversink
Dongju Chae [Tue, 14 Dec 2021 06:25:06 +0000 (15:25 +0900)]
[Typo] Fix some typos in query serversink

This patch fixes some typos in query serversink.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
2 years agofilter/tensorflow-lite: loadModel error message
MyungJoo Ham [Mon, 13 Dec 2021 08:07:42 +0000 (17:07 +0900)]
filter/tensorflow-lite: loadModel error message

For developers, we need to elaborate error messages.
The error messages should have enough information to
understand what's wrong and what to fix.

We will be updating all error messages of nnstreamer.

This helps #3603
This is part of #3475

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Query] client id in connection handle
Jaeyun [Mon, 13 Dec 2021 11:29:57 +0000 (20:29 +0900)]
[Query] client id in connection handle

1. Add new function to set client ID.
2. Remove unnecessary value - protocol in cmd data. The connection handle includes this value.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Query] Set timestamp for each buffer.
Gichan Jang [Thu, 9 Dec 2021 09:11:41 +0000 (18:11 +0900)]
[Query] Set timestamp for each buffer.

Set timestamp for each buffer.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Decoder] Decode tensors to octet stream.
Gichan Jang [Thu, 4 Nov 2021 06:41:15 +0000 (15:41 +0900)]
[Decoder] Decode tensors to octet stream.

Decode tensors to octet stream.
If tensor format is flexible, remove the header.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[TEST] Change filesink buffer mode.
Gichan Jang [Fri, 10 Dec 2021 02:10:59 +0000 (11:10 +0900)]
[TEST] Change filesink buffer mode.

Change filesink buffer mode to ubnuffered.
Related issue: https://github.com/nnstreamer/nnstreamer/issues/3275

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Query] Change error message when GstMeta is invalid.
gichan [Tue, 7 Dec 2021 08:42:04 +0000 (17:42 +0900)]
[Query] Change error message when GstMeta is invalid.

Some GStreamer element don't copy GstMeta. So tensor query cannot handle
buffer.
Change error message when GstMeta is invalid and stop pipeline.
The available elements table is not completed yet and will change frequently, so I will write it on the wiki page first.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[filter] Add a time duration log of filter open
Yongjoo Ahn [Thu, 9 Dec 2021 01:23:30 +0000 (10:23 +0900)]
[filter] Add a time duration log of filter open

- Some filter using hardware accelerator consume quite time for loading model file.
- Add log for what time it takes.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Query] fix invalid data size
Jaeyun [Thu, 9 Dec 2021 07:18:36 +0000 (16:18 +0900)]
[Query] fix invalid data size

1. Fix invalid data size - caps string length.
2. Clearly define client and server param and update log message.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agoTest: enhancing log behaviors for unittest
MyungJoo Ham [Fri, 19 Nov 2021 05:51:41 +0000 (14:51 +0900)]
Test: enhancing log behaviors for unittest

1. Add a dlog_print hijacker that makes dlog calls independent
from dlog daemon and drivers. As a result, developers can now
read the dlog log messages of unittests in gbs environment.

2. Clean up a bit of meson.build dependency declaration of
unit tests.

3. A unit test without direct dlog call is updated to call
it directly so that the hijacker is linked (edgetpu).

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Doc] Add meson build example.
Gichan Jang [Wed, 8 Dec 2021 08:25:49 +0000 (17:25 +0900)]
[Doc] Add meson build example.

Add a simple example of the meson build for a beginner.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Common] change log level to get tensor-config
Jaeyun [Wed, 8 Dec 2021 05:43:07 +0000 (14:43 +0900)]
[Common] change log level to get tensor-config

Change log level and add proper message to set default tensor format.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[doc] query and image update
yelini-jeong [Tue, 7 Dec 2021 07:48:32 +0000 (16:48 +0900)]
[doc] query and image update

This patch updates query and image for tutorial 4

Signed-off-by: yelini-jeong <yelini.jeong@samsung.com>
2 years agomeson: use version_copmare()
MyungJoo Ham [Mon, 6 Dec 2021 02:42:19 +0000 (11:42 +0900)]
meson: use version_copmare()

Do not compare version strings with general operators.
Use version_compare() API instead.

Reported by #3591

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Query] set default timeout
Jaeyun [Thu, 2 Dec 2021 10:01:43 +0000 (19:01 +0900)]
[Query] set default timeout

Define common timeout for tensor-query.

TODO: we should handle timeout in query-server elements.
Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Query/CodeClean] remove unnecessary util functions
Jaeyun [Thu, 2 Dec 2021 09:36:14 +0000 (18:36 +0900)]
[Query/CodeClean] remove unnecessary util functions

Code clean on tensor-query elements.
1. fix build issue on old machine (undefined ref).
2. remove unnecessary util functions.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Query] util function to receive data
Jaeyun [Wed, 1 Dec 2021 10:41:26 +0000 (19:41 +0900)]
[Query] util function to receive data

Add util function to receive data and generate gst-buffer.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agomeson.build: Fixup for multilib support
Julien Vuillaumier [Mon, 29 Nov 2021 14:08:30 +0000 (15:08 +0100)]
meson.build: Fixup for multilib support

meson.build:
moved nnstreamer_prefix definition upward, before its first usage.

packaging/nnstreamer.spec:
corrected subplugindir definition to rely on actual %{_prefix} variable
and use the expected %{_prefix}/lib/nnstreamer path.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years agomeson.build: Fix sideeffects of subplugin install fix
MyungJoo Ham [Fri, 5 Nov 2021 07:36:25 +0000 (16:36 +0900)]
meson.build: Fix sideeffects of subplugin install fix

The PR #3554 breaks conventional non-multilib builds of x64/aarch64
systems (Tizen/Ubuntu). This fixes this side-effect.

Todo: fix Yocto build afterwards.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Cherry-picked from https://github.com/panfir/nnstreamer/pull/1

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years agomeson.build: Fix subplugin install
Cristinel Panfir [Thu, 4 Nov 2021 13:39:04 +0000 (15:39 +0200)]
meson.build: Fix subplugin install

Use 'libdir' for library path to cover a multilib envoironment.

These checks are usually done before release, for example in the scenario
where images are created for a 64-bit target (imx8 * boards) but which also
supports running 32-bit applications.

This is the error in a linux/yocto build:

| ERROR: nnstreamer-2.0.0-r0 do_package: QA Issue: nnstreamer: Files/directories were installed but not shipped in any package:
|   /usr/lib/nnstreamer/customfilters/libnnstreamer_customfilter_passthrough_variable.so
|   /usr/lib/nnstreamer/customfilters/libdummyLSTM.so
|   /usr/lib/nnstreamer/customfilters/libnnstreamer_customfilter_scaler.so
|   /usr/lib/nnstreamer/customfilters/libnnstreamer_customfilter_average.so
|   /usr/lib/nnstreamer/customfilters/libnnstreamer_customfilter_scaler_allocator.so
|   /usr/lib/nnstreamer/customfilters/libnnscustom_drop_buffer.so
|   /usr/lib/nnstreamer/customfilters/libnnscustom_framecounter.so
|   /usr/lib/nnstreamer/customfilters/libdummyRNN.so
|   /usr/lib/nnstreamer/customfilters/libnnstreamer_customfilter_passthrough.so
|   /usr/lib/nnstreamer/converters/libnnstreamer_converter_protobuf.so
|   /usr/lib/nnstreamer/converters/libnnstreamer_converter_python3.so
|   /usr/lib/nnstreamer/decoders/libnnstreamer_decoder_bounding_boxes.so
|   /usr/lib/nnstreamer/decoders/libnnstreamer_decoder_direct_video.so
|   /usr/lib/nnstreamer/decoders/libnnstreamer_decoder_pose_estimation.so
|   /usr/lib/nnstreamer/decoders/libnnstreamer_decoder_image_labeling.so
|   /usr/lib/nnstreamer/decoders/libnnstreamer_decoder_image_segment.so
|   /usr/lib/nnstreamer/decoders/libnnstreamer_decoder_python3.so
|   /usr/lib/nnstreamer/decoders/libnnstreamer_decoder_protobuf.so
|   /usr/lib/nnstreamer/filters/libnnstreamer_filter_cpp.so
|   /usr/lib/nnstreamer/filters/libnnstreamer_filter_armnn.so
|   /usr/lib/nnstreamer/filters/libnnstreamer_filter_python3.so
|   /usr/lib/nnstreamer/filters/libnnstreamer_filter_tensorflow2-lite.so
|   /usr/lib/nnstreamer/extra/nnstreamer_python3.so
| Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
| nnstreamer: 23 installed and not shipped files. [installed-vs-shipped]

Signed-off-by: Cristinel Panfir <cristinel.panfir@nxp.com>
Cherry-picked from https://github.com/nnstreamer/nnstreamer/pull/3554

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Mux/Merge] Change meta copy policy
gichan [Wed, 24 Nov 2021 10:28:33 +0000 (19:28 +0900)]
[Mux/Merge] Change meta copy policy

Currently, GstMeta of the buffer from first pad is used.
Change to copy GstMeta same with sync mode of the tnesor mux and merge.

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[TEST] Wait for the server to start
gichan [Wed, 1 Dec 2021 07:07:31 +0000 (16:07 +0900)]
[TEST] Wait for the server to start

Wait for the server to start.
If client attempts to connect to the server when the server is not
ready, it may  fails.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Query] Change tensor query to accpet ANY caps
Gichan Jang [Mon, 15 Nov 2021 03:21:57 +0000 (12:21 +0900)]
[Query] Change tensor query to accpet ANY caps

Change tensor query to accetp ANY caps.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Query] util function to send gst-buffer
Jaeyun [Wed, 1 Dec 2021 05:25:00 +0000 (14:25 +0900)]
[Query] util function to send gst-buffer

Code clean, add util function to send gst-buffer to destination.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Spec] Add restricted_element_vd for VD element
Sangjung Woo [Wed, 1 Dec 2021 08:29:41 +0000 (17:29 +0900)]
[Spec] Add restricted_element_vd for VD element

This patch newly adds the restricted_element_vd for VD specialized
elements.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Query] fix invalid socket mode
Jaeyun [Wed, 1 Dec 2021 09:42:29 +0000 (18:42 +0900)]
[Query] fix invalid socket mode

Fix socket op mode, blocking IO is unnecessary with multi-threaded server node.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Doc] Fix bad links
yelini-jeong [Wed, 1 Dec 2021 06:56:26 +0000 (15:56 +0900)]
[Doc] Fix bad links

This patch fixes bad links in documentation.

Signed-off-by: yelini-jeong <yelini.jeong@samsung.com>
**Self evaluation:**
1. Build test: [ ]Passed [ ]Failed [X]Skipped
2. Run test: [ ]Passed [ ]Failed [X]Skipped

2 years ago[fix/query] Fix the order of calling `g_socket_listener_set_backlog`
Yongjoo Ahn [Tue, 30 Nov 2021 06:22:50 +0000 (15:22 +0900)]
[fix/query] Fix the order of calling `g_socket_listener_set_backlog`

- backlog should be set before adding address or socket to listener.
REF:
https://people.gnome.org/~ebassi/docs/_build/Gio/method.SocketListener.set_backlog.html#description

- This commit should remove the following error logs:
```
...
GLib-GIO-CRITICAL **: 15:20:18.773: g_socket_set_listen_backlog: assertion '!socket->priv->listening' failed
...
```

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Filter/TFLite] Fix XNNPACK fixed-address buffer handling
Julien Vuillaumier [Thu, 25 Nov 2021 10:27:06 +0000 (11:27 +0100)]
[Filter/TFLite] Fix XNNPACK fixed-address buffer handling

XNNPACK delegate requires fixed addresses for input and output tensors,
for consecutive invoke().
Therefore input and output tensors data coming from GStreamer buffers has
to copied into tensors buffer allocated by TFLite runtime.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Filter/TFLite] Add XNNPACK meson build option
Julien Vuillaumier [Wed, 24 Nov 2021 11:09:39 +0000 (12:09 +0100)]
[Filter/TFLite] Add XNNPACK meson build option

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Filter/TFLite] Disable default delegates usage
Julien Vuillaumier [Wed, 10 Nov 2021 15:45:19 +0000 (16:45 +0100)]
[Filter/TFLite] Disable default delegates usage

TFLite libray may be built to use default delegates when
no delegate is explicitly bound to the interpreter.

In case default delegates are not supported by TFLite filter,
system may crash.

Make sure that no default delegate is applied by using relevant
interpreter builder API available from TFLite 2.4 onward.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Elements] handle single mem chunk
Jaeyun [Wed, 3 Nov 2021 04:54:31 +0000 (13:54 +0900)]
[Elements] handle single mem chunk

If incoming buffer has single memory (case with gst-plugins), nnstreamer elements cannot generate output buffer (invalid memory chunks).

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Query] detach option on msg thread
Jaeyun [Wed, 17 Nov 2021 08:46:58 +0000 (17:46 +0900)]
[Query] detach option on msg thread

Add attr to create message thread, to release thread resource.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Flexbuf] Support flexible tensors for flexbuf. accepted/tizen/unified/20211129.035253 submit/tizen/20211126.064049
gichan [Fri, 29 Oct 2021 04:12:47 +0000 (13:12 +0900)]
[Flexbuf] Support flexible tensors for flexbuf.

Support flexible tensors for flexbuf.

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Protobuf] Support flextensors for protobuf.
gichan [Fri, 29 Oct 2021 01:38:37 +0000 (10:38 +0900)]
[Protobuf] Support flextensors for protobuf.

 Support flexible tensors for protobuf.

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Query] null ptr in finalize callback accepted/tizen/unified/20211116.130323 submit/tizen/20211116.052326 submit/tizen/20211116.063435
Jaeyun [Mon, 15 Nov 2021 09:14:13 +0000 (18:14 +0900)]
[Query] null ptr in finalize callback

Clearly check the handles in finalize callback.
(e.g., gst-inspect shows gst-log if given handle is null.)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Android/mqtt] Add mqtt sources to nnstreamer.mk
Yongjoo Ahn [Tue, 16 Nov 2021 00:34:43 +0000 (09:34 +0900)]
[Android/mqtt] Add mqtt sources to nnstreamer.mk

- Add mqtt sources to nnstreamer.mk
- Android api will build the gst element

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/mqttsrc] Set MQTTClient persistence mode to None
Yongjoo Ahn [Mon, 15 Nov 2021 08:37:04 +0000 (17:37 +0900)]
[fix/mqttsrc] Set MQTTClient persistence mode to None

- Default persistence mode have not been tested on various targets.
- Set it to None mode sync-ing with mqttsink.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/mqttsrc] Fix data type of GstQueryType
Yongjoo Ahn [Mon, 15 Nov 2021 08:31:38 +0000 (17:31 +0900)]
[fix/mqttsrc] Fix data type of GstQueryType

- Fix to proper type.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Doc] Add nnstreamer tutorials
Gichan Jang [Wed, 3 Nov 2021 07:26:13 +0000 (16:26 +0900)]
[Doc] Add nnstreamer tutorials

 - Add NNStreamer tutorials.
 - Change sitemap of the nnstreamer.github.io

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[TEST] Add flatbuf for flexible tensors
gichan [Thu, 28 Oct 2021 15:33:10 +0000 (00:33 +0900)]
[TEST] Add flatbuf for flexible tensors

Add flatbuf test for flexible tensors.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Converter] Support flextensor for flatbuf converter
gichan [Thu, 28 Oct 2021 15:21:55 +0000 (00:21 +0900)]
[Converter] Support flextensor for flatbuf converter

Support flextensor for flatbuf converter.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Decoder] Support flexible tensors for flatbuf decoder
gichan [Thu, 28 Oct 2021 13:06:20 +0000 (22:06 +0900)]
[Decoder] Support flexible tensors for flatbuf decoder

Support flexible tensors for flatbuf decoder.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Spec] Enable SNPE filter on both In-House and public infra
Sangjung Woo [Fri, 29 Oct 2021 12:42:24 +0000 (21:42 +0900)]
[Spec] Enable SNPE filter on both In-House and public infra

To support NNStreamer filter for SNPE on both In-House build infra and
those of the public, this patch conditionally enables nnstreamer-snpe
rpm package when existing actual snpe library. (i.e. snpe.pc). In case
of the dummy SNPE package, nnstreamer-snpe rpm contains no files.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Converter] convert bytes or flex-tensor without properties
Jaeyun [Fri, 22 Oct 2021 07:30:11 +0000 (16:30 +0900)]
[Converter] convert bytes or flex-tensor without properties

1. convert bytes (octet stream) to flex-tensor when input info (type and dimension) is not denoted.
2. parse tensor-mata and convert to static when input is flexible tensor.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Query] Add data receving thread for server.
Gichan Jang [Tue, 19 Oct 2021 05:48:20 +0000 (14:48 +0900)]
[Query] Add data receving thread for server.

Query server is changed to receive data by generating threads for each client.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Filter/TFLite] Add external delegate support
Julien Vuillaumier [Tue, 2 Nov 2021 13:58:59 +0000 (14:58 +0100)]
[Filter/TFLite] Add external delegate support

Implementation for support of TFLite framework external delegate.
External delegate usage requires possibility to configure:
- library name or path for the external delegate
- optional key/values pairs for delegate configuration

External delegate mode and associated configurations are setup at pipeline
definition time using tflite subplugin custom option.

Relevant custom variables:
- Delegate:External
- ExtDelegateLib:<delegate library name or full path>
Optional variable below:
- ExtDelegateKeyVal:<key1 name>#<value1>[;<key2 name>#<value2>[;...]]

Example:
custom=Delegate:External,ExtDelegateLib:libdelegate.so,ExtDelegateKeyVal:fookey#fooval;barkey#barval

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Filter/TFLite] Add external delegate meson build option
Julien Vuillaumier [Tue, 2 Nov 2021 13:49:08 +0000 (14:49 +0100)]
[Filter/TFLite] Add external delegate meson build option

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Common] util function to handle tensors
Jaeyun [Wed, 3 Nov 2021 04:42:51 +0000 (13:42 +0900)]
[Common] util function to handle tensors

With gstreamer plugins, nnstreamer element may receive gst-buffer with invalid memory chunks.
nnstreamer internally checks the number of tensors using the mem blocks in gst-buffer.

To handle multi tensors, add util function to separate memories in gst-buffer.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[TEST] Disable MQTT Test when broker is not abvailable.
Gichan Jang [Thu, 4 Nov 2021 01:35:59 +0000 (10:35 +0900)]
[TEST] Disable MQTT Test when broker is not abvailable.

If the broker is not available, the mqtt element cannot be changed to the playing state.
However, harnesses are used in the mqtt test, and errors occur if harnesses cannot be changed to the playing state.
So, if there's no broker on the test environment, the test fails.
For example, the build on the lunch pad failed.
https://launchpadlibrarian.net/566158157/buildlog_ubuntu-bionic-amd64.nnstreamer_2.1.0.0-0~202110290743~ubuntu18.04.1_BUILDING.txt.gz

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Build] Add g_memdup2() support for glib >= 2.68
Julien Vuillaumier [Wed, 3 Nov 2021 13:46:09 +0000 (14:46 +0100)]
[Build] Add g_memdup2() support for glib >= 2.68

Update to fix build with glib version 2.68 and later

Legacy function:
  gpointer g_memdup ( gconstpointer mem, guint byte_size )
is deprecated since version 2.68 and replaced by:
  gpointer g_memdup2 ( gconstpointer mem, gsize byte_size )

Difference is byte_size argument type changed from guint to gsize.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[test/tf2lite] Add filter extension test for tf2lite sub-plugin
Yongjoo Ahn [Thu, 4 Nov 2021 04:32:51 +0000 (13:32 +0900)]
[test/tf2lite] Add filter extension test for tf2lite sub-plugin

- Add those unittest when tflite2_support is available

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[test/tf2-lite] Add unittest for tensorflow2-lite
Yongjoo Ahn [Thu, 4 Nov 2021 04:25:56 +0000 (13:25 +0900)]
[test/tf2-lite] Add unittest for tensorflow2-lite

- Add gtest based unittests for tensorflow2-lite sub-plugin
  They test the result of mobilenet models when the orange image is given
- Add a float type tflite model "mobilenet_v2_1.0_224.tflite"

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Converter/Doc] doc to convert octet stream
Jaeyun [Thu, 28 Oct 2021 04:44:09 +0000 (13:44 +0900)]
[Converter/Doc] doc to convert octet stream

Update document to convert octet stream to static or flexible tensor.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[Test] Fix build issue with GCC 11 [-Werror=maybe-uninitialized]
Julien Vuillaumier [Wed, 3 Nov 2021 14:19:04 +0000 (15:19 +0100)]
[Test] Fix build issue with GCC 11 [-Werror=maybe-uninitialized]

Correction for build issue showing up with GCC 11

unittest_common.cc:953:51:
error: 'structure' may be used uninitialized [-Werror=maybe-uninitialized]

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[UNITTEST] Handle the error case of run_unittests_binaries.sh
Wook Song [Thu, 28 Oct 2021 05:31:10 +0000 (14:31 +0900)]
[UNITTEST] Handle the error case of run_unittests_binaries.sh

This patch handles the error case when the target is not given.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[UNITTEST] Revise header comments of run_unittests_binaries.sh
Wook Song [Thu, 28 Oct 2021 05:06:17 +0000 (14:06 +0900)]
[UNITTEST] Revise header comments of run_unittests_binaries.sh

This patch revises file description header comments in the script that
runs unit test binaries as follows:
- Apply the change of the script name
- Use more portable shebang

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[UNITTEST] Add a skip option to the script running test cases
Wook Song [Thu, 28 Oct 2021 04:49:19 +0000 (13:49 +0900)]
[UNITTEST] Add a skip option to the script running test cases

This patch adds an option to skip specific test cases to
run_unittests_binaries.sh.

Signed-off-by: Wook Song <wook16.song@samsung.com>
2 years ago[trivial] Fix sub-plugin check in TensorRT test
Yongjoo Ahn [Wed, 3 Nov 2021 01:08:11 +0000 (10:08 +0900)]
[trivial] Fix sub-plugin check in TensorRT test

- Fix to check proper so file

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/test] Build edgetpu test when tflite2 is available
Yongjoo Ahn [Fri, 29 Oct 2021 03:52:49 +0000 (12:52 +0900)]
[fix/test] Build edgetpu test when tflite2 is available

- Build edgetpu when the tflite2 (not only tflite) support is available

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/edgetpu] Handle unused variable in edgetpu filter
Yongjoo Ahn [Fri, 29 Oct 2021 03:51:51 +0000 (12:51 +0900)]
[fix/edgetpu] Handle unused variable in edgetpu filter

- Handle unused variables in the edgetpu filter source

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[fix/openvino] Handle unused var in openvino filer
Yongjoo Ahn [Fri, 29 Oct 2021 03:55:34 +0000 (12:55 +0900)]
[fix/openvino] Handle unused var in openvino filer

- Handle unused variables in tensor_filter_openvino.cc

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[TEST] Add test for multiple query server src and sink
gichan [Mon, 18 Oct 2021 01:31:53 +0000 (10:31 +0900)]
[TEST] Add test for multiple query server src and sink

Add test for multiple query server src and sink.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Query] Use hash table for shared data of query server.
gichan [Mon, 18 Oct 2021 01:08:01 +0000 (10:08 +0900)]
[Query] Use hash table for shared data of query server.

Use hash table for shared data of query server.
By assigning the id, multiple servers src and sinks may be used.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years agoparser: disable if it's macos.
MyungJoo Ham [Wed, 27 Oct 2021 14:37:03 +0000 (23:37 +0900)]
parser: disable if it's macos.

The parser code is not comaptible with macos.
Reenable after fixing them.
This is probably because of parser library versions.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotensor-filter:lua Lua >= 5.3 is not supported.
MyungJoo Ham [Wed, 27 Oct 2021 14:32:34 +0000 (23:32 +0900)]
tensor-filter:lua Lua >= 5.3 is not supported.

Disable lua subplugin build if lua is >= 5.3

Reenable Lua >= 5.3 build if #3531 is fixed.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotensor-query: cross-platform compatibility (non-Linux)
MyungJoo Ham [Wed, 27 Oct 2021 14:17:17 +0000 (23:17 +0900)]
tensor-query: cross-platform compatibility (non-Linux)

EREMOTEIO is Linux-specific error code.
For the compatibility with non-Linux systems,
define it if it's undefined.

This partially addresses #3440

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agotensor-filter-common: unnecessary usage of volatile
MyungJoo Ham [Wed, 27 Oct 2021 14:04:49 +0000 (23:04 +0900)]
tensor-filter-common: unnecessary usage of volatile

GLib-Once (g_once_init_enter/leave) have already taken
care of concurrency.
Its users do not need to worry about cache coherency or
concurrency issues for the initialization.

Actually, as #3440 is showing, the volatile keyword
is neglected by g_once_init_enter function, making
the usage of volatile meaningless anyway.

Remove volatile keyword and mitigate the first
compiler warning-error of #3440

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[MQTT] Wait until connection is established.
gichan [Mon, 11 Oct 2021 10:59:10 +0000 (19:59 +0900)]
[MQTT] Wait until connection is established.

Change to wait until connection is successfully established within timeout
limit.

This patch fix the error:
ERROR: MQTTSrc: cb_mqtt_on_connect_failure: failed to connect to the broker: TCP/TLS connect failure.

Test pipeline:
Publisher
```bash
$ gst-launch-1.0 videotestsrc is-live=true ! video/x-raw,format=RGB,width=640,height=480,framerate=5/1 ! mqttsink pub-topic=test/videotestsrc
```
Subscriber
```bash
$ gst-launch-1.0 mqttsrc sub-topic=test/videotestsrc ! video/x-raw,format=RGB,width=640,height=480,framerate=5/1 ! videoconvert ! ximagesink
```

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[svace] fix svace issue
Jaeyun [Tue, 19 Oct 2021 07:22:42 +0000 (16:22 +0900)]
[svace] fix svace issue

Fix svace issue
- allocation with invalid size param
- possible int underflow

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>