platform/upstream/nnstreamer.git
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>
2 years ago[Query] separate hybrid feature
Jaeyun [Wed, 13 Oct 2021 02:44:44 +0000 (11:44 +0900)]
[Query] separate hybrid feature

Separate query-hybrid functions and fix build error.
- add new file for query-hybrid feature.
- change property name (mqtt-host > broker-host).
- function declaration on old ubuntu.
- mqtt-c library (downloaded from github released) requires thread.
- fix indent and code style.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[build/fix] Add Android log lib in meson
Yongjoo Ahn [Fri, 8 Oct 2021 06:44:14 +0000 (15:44 +0900)]
[build/fix] Add Android log lib in meson

- Add android log lib dep when the platform is android.
- This resolves #3515

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[build/fix] Fix sign-unsign compare
Yongjoo Ahn [Fri, 8 Oct 2021 06:37:58 +0000 (15:37 +0900)]
[build/fix] Fix sign-unsign compare

- Fix sing-unsign value comapre in tensordec-pose

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[armnn] compilation error - unused parameter
Julien Vuillaumier [Thu, 14 Oct 2021 08:20:38 +0000 (10:20 +0200)]
[armnn] compilation error - unused parameter

correction for occurences of compilation error below, when compilation
switch ENABLE_ARMNN_CAFFE is disabled.

error: unused parameter '[parameter name]' [-Werror=unused-parameter]

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Doc] Fix the simple typo in tensor_quey doc
Sangjung Woo [Tue, 12 Oct 2021 06:17:30 +0000 (15:17 +0900)]
[Doc] Fix the simple typo in tensor_quey doc

This patch fixes the simple typoes in tensor_quey README file.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Query] Set TCP_NODELAY option to avoid buffering algorithm
Sangjung Woo [Wed, 13 Oct 2021 03:32:55 +0000 (12:32 +0900)]
[Query] Set TCP_NODELAY option to avoid buffering algorithm

Basically, the Nagle algorithm is enabled in TCP, which means that data
is buffered until there is a sufficient amount to send out. However, the
payload of Query should be sent as soon as possible, even if there is
only a small amount of data. This patch sets TCP_NODELAY option to avoid
buffering algorithm.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
2 years ago[Query][NEED REVERT] Exclude tensor query from android build.
Gichan Jang [Wed, 6 Oct 2021 01:32:14 +0000 (10:32 +0900)]
[Query][NEED REVERT] Exclude tensor query from android build.

Exclude tensor query from android build until mqtt-hybrid is separated.
After the separation works, please revert this commit.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[TEST] Add MQTT-hybrid test
gichan [Fri, 1 Oct 2021 02:21:44 +0000 (11:21 +0900)]
[TEST] Add MQTT-hybrid test

Test robustness of the query pipeline.
Server 1 stops when it receivces 3 buffers and the client reconnects to server 2.

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Query] Add mqtt state change callback.
gichan [Thu, 30 Sep 2021 09:45:46 +0000 (18:45 +0900)]
[Query] Add mqtt state change callback.

Add mqtt state change callback instead of uncertain sleep.

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[Query] Add meson option.
gichan [Thu, 30 Sep 2021 07:02:13 +0000 (16:02 +0900)]
[Query] Add meson option.

Exclude tensor_query from nnstreamer plugins if nnsquery is not available.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[QUERY] Robustness support of MQTT-hybrid
Gichan Jang [Wed, 29 Sep 2021 01:25:49 +0000 (10:25 +0900)]
[QUERY] Robustness support of MQTT-hybrid

Releated issue: #3508
Robustness support of MQTT-hybrid.
If the connected server is stop, re-connect to another availabe server.

Signed-off-by: Gichan Jang <gichan2.jang@samsung.com>
2 years ago[test/snpe] Add snpe unittest for uint8 input/output model
Yongjoo Ahn [Fri, 17 Sep 2021 07:50:09 +0000 (16:50 +0900)]
[test/snpe] Add snpe unittest for uint8 input/output model

- Add a snpe model `add2_uint8.dlc` which takes
  a single uint8 value as input.
- Add a unittest with it.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[filter/snpe] Support uint8 input/output type
Yongjoo Ahn [Fri, 17 Sep 2021 07:47:17 +0000 (16:47 +0900)]
[filter/snpe] Support uint8 input/output type

- If custom prop "InputType:uint8,OutputType:uint8" is given,
  run the model as uint8 input/output type mode.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Build] fix build warning
Jaeyun [Tue, 5 Oct 2021 03:04:42 +0000 (12:04 +0900)]
[Build] fix build warning

Fix build warning (missing-braces, uninitialized).

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agoREADME update: add recent papers
MyungJoo Ham [Thu, 30 Sep 2021 08:24:08 +0000 (17:24 +0900)]
README update: add recent papers

1. ICSE 2021 SEIP (published)
2. ICSE 2022 SEIP (submitted)

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[test/mqtt] Fix and add negative testcases for mqttsink's invalid prop
Yongjoo Ahn [Fri, 1 Oct 2021 05:20:45 +0000 (14:20 +0900)]
[test/mqtt] Fix and add negative testcases for mqttsink's invalid prop

- Test invalid properties of mqttsink with `gst_harness_new_parse`
  instead of `g_object_set`.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[test/mqtt] Remove a testcase which assumes no broker
Yongjoo Ahn [Fri, 1 Oct 2021 05:17:48 +0000 (14:17 +0900)]
[test/mqtt] Remove a testcase which assumes no broker

- Remove a testcase which assumes no broker.
- When a broker running in the test env, it fails.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Gst/MQTT] Introduce the Unix epoch synchronization using NTP
Wook Song [Wed, 28 Jul 2021 09:30:57 +0000 (18:30 +0900)]
[Gst/MQTT] Introduce the Unix epoch synchronization using NTP

This patch introduces the self-synchronization mechanism of the Unix
epoch timestamps. Note that if the 'ntp-sync' property is set to true
(which means that if this feature is enabled), the pipeline would be
stuck after a while. This is because most of the public NTP servers
restrict clients not to poll too frequently. To fix it, polling
intervals and caching mechanisms should be applied to the NPT utility
functions.

Signed-off-by: Wook Song <wook16.song@samsung.com>