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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>