platform/upstream/nnstreamer.git
5 months agofilter::python3: do not break converter/decoder
MyungJoo Ham [Tue, 12 Dec 2023 10:28:41 +0000 (19:28 +0900)]
filter::python3: do not break converter/decoder

A python-global reference counter is required for py-finalize.
This is workaround before applying such a global reference counter.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 months ago[tensor_transform] Fix confusing usage of transpose
Yongjoo Ahn [Mon, 18 Dec 2023 07:57:29 +0000 (16:57 +0900)]
[tensor_transform] Fix confusing usage of transpose

- Correct usage is `... option=1:2:0:3` when a user want to change tensor
  layout NHWC into NCHW.
- Fix document abuout it.
- Fix incorrect usage in a SSAT test.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
5 months ago[CodeClean] fix svace issue
Jaeyun Jung [Mon, 18 Dec 2023 05:07:02 +0000 (14:07 +0900)]
[CodeClean] fix svace issue

Fix svace issue, prevent index error case.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 months ago[Test] Remove the MOBILE and WEARABLE tags in header file
Sangjung Woo [Fri, 15 Dec 2023 05:32:58 +0000 (14:32 +0900)]
[Test] Remove the MOBILE and WEARABLE tags in header file

Since both mobile and wearable profiles in Tizen project are removed,
related tags also should be removed. This patch removes them at Tizen
PM's request.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
5 months ago[build] Check flatbuffers header files before build tflite subplugin
Yongjoo Ahn [Mon, 11 Dec 2023 08:55:04 +0000 (17:55 +0900)]
[build] Check flatbuffers header files before build tflite subplugin

- TFLite API requires flatbuffers header. Let meson check required header
- Add `BuildRequires` flatbuffers-devel explicitly in spec

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
5 months agoSuppress valgrind errors due to system libraries
MyungJoo Ham [Thu, 17 Aug 2023 06:02:17 +0000 (15:02 +0900)]
Suppress valgrind errors due to system libraries

Added a valgrind-suppression configuration that ignores Valgrind errors from:
- Python runtime
- Between glib/gstreamer
- Not freeing memory allocated by gstreamer/gobject class init.

This works with SSAT 1.3.0+.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 months agogithub action: add tests of valgrind, gtest, ssat.
MyungJoo Ham [Fri, 22 Apr 2022 07:57:15 +0000 (16:57 +0900)]
github action: add tests of valgrind, gtest, ssat.

Add test runs for github-action - Ubuntu clean build.
However, do not block PRs for valgrind errors until
we get most valgrind errors fixed.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 months ago[Filter/TF-lite] fill 1 when changing input dimension accepted/tizen/unified/20231213.162136 accepted/tizen/unified/riscv/20231215.050236
Jaeyun Jung [Fri, 8 Dec 2023 08:50:02 +0000 (17:50 +0900)]
[Filter/TF-lite] fill 1 when changing input dimension

After implementing 0-init dims, tf-lite subplugin fills zero when changing input dimension.
Fill 1 if given dimension is 0 dim value.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 months ago[Common] check tensor dim to append previous caps
Jaeyun Jung [Mon, 4 Dec 2023 07:48:42 +0000 (16:48 +0900)]
[Common] check tensor dim to append previous caps

Prevent appending same caps if tensor dimension has min rank 4.
(e.g., given dim is 1001:1, previous caps with rank 4 is unnecessary.)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 months ago[Filter] condition to update dimension
Jaeyun Jung [Mon, 4 Dec 2023 08:22:59 +0000 (17:22 +0900)]
[Filter] condition to update dimension

For caps negotiation, compare tensor dimension if caps is tensor stream and already configured.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 months ago[QueryClient] handle tensor buffer
Jaeyun Jung [Mon, 4 Dec 2023 06:58:39 +0000 (15:58 +0900)]
[QueryClient] handle tensor buffer

1. Decrease the ref count of incoming buffer if an error occurs.
2. Check the number of requested buffer before creating edge-data handle, and try to get the output from query-server.
3. Append gst-buffer using util function if current caps is tensor stream.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
5 months ago[build] Set cpp_std=c++17 (changed from c++14)
Yongjoo Ahn [Fri, 8 Dec 2023 09:24:25 +0000 (18:24 +0900)]
[build] Set cpp_std=c++17 (changed from c++14)

- Recent neural network frameworks needs c++17 standards to use its APIs
- Let nnstreamer be built with c++17.
- Add a Wno flag to snpe filter.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
5 months agoRISCV/lua: disable an exception handling test case
MyungJoo Ham [Wed, 6 Dec 2023 08:28:15 +0000 (17:28 +0900)]
RISCV/lua: disable an exception handling test case

Somehow, in Ubuntu 20.04 filter::lua@RISCV cannot handle
exceptions as x64/aarch64 handles.

Issue #4342 will track this.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 months agoConfigure unit test environments
MyungJoo Ham [Mon, 19 Dec 2022 03:28:04 +0000 (12:28 +0900)]
Configure unit test environments

Unit test requires a few more configurations for plugins.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 months agogithub-action/riscv64: update build name
MyungJoo Ham [Fri, 16 Dec 2022 08:01:11 +0000 (17:01 +0900)]
github-action/riscv64: update build name

The build name was incorrect. It's Ubuntu now!

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
5 months ago[Test/onnxruntime] Add unit tests and ssat tests for ONNX Runtime
SuYeon [Mon, 4 Dec 2023 05:25:47 +0000 (14:25 +0900)]
[Test/onnxruntime] Add unit tests and ssat tests for ONNX Runtime

 - Add gtest based unit test for ONNX Runtime
 - Add SSAT test cases for ONNX Runtime tensor filter subplugin

Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
5 months ago[Filter/onnxruntime] Add filter subplugin for ONNX Runtime
SuYeon [Mon, 4 Dec 2023 05:10:19 +0000 (14:10 +0900)]
[Filter/onnxruntime] Add filter subplugin for ONNX Runtime

 - Add onnxruntime filter with ONNX runtime
 - To build ONNX Runtime: https://onnxruntime.ai/

TODO:
 - Only supports CPU. GPU and oter hardware support is NYI.
 - Only supports float32 with input/output. Other types are NYI.

Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
6 months ago[Doc] remove unnecessary lines from ml-api
Jaeyun Jung [Fri, 1 Dec 2023 04:58:26 +0000 (13:58 +0900)]
[Doc] remove unnecessary lines from ml-api

Code clean, now we do not define data structure in ML API repo and use common functions of nnstreamer.
Remove unnecessary lines defined in api repo.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[tensor_trainer] Modify description of model-load-path
hyunil park [Thu, 30 Nov 2023 00:40:14 +0000 (09:40 +0900)]
[tensor_trainer] Modify description of model-load-path

Change to 'pre-trained' instead of 'existing' expression

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
6 months ago[Transform] available caps without peer
Jaeyun Jung [Wed, 22 Nov 2023 08:22:44 +0000 (17:22 +0900)]
[Transform] available caps without peer

tensor-transform cannot determine the caps, this element can set out-caps by using incoming caps.
Remove unnecessary query for peer caps and update types of out-caps if input has tensors.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[datareposrc] Bugfix: Fixed removing JSON file before unittest
hyunil park [Thu, 23 Nov 2023 07:30:18 +0000 (16:30 +0900)]
[datareposrc] Bugfix: Fixed removing JSON file before unittest

- The Filename is changed for each TC because sometimes the JSON file of
  unittest(fps30ReadFlexibleTensors) is deleted by g_remove() in the previous unittest

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
6 months ago[trivial] Fix some typos
Yongjoo Ahn [Wed, 22 Nov 2023 06:37:30 +0000 (15:37 +0900)]
[trivial] Fix some typos

- Fix some typos in some old source code.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
6 months ago[build] Enable clang with some deps
Yongjoo Ahn [Wed, 22 Nov 2023 06:36:40 +0000 (15:36 +0900)]
[build] Enable clang with some deps

- Fix compile error with clang

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
6 months ago[Common] macro for max number of tensors
Jaeyun Jung [Fri, 10 Nov 2023 03:43:17 +0000 (12:43 +0900)]
[Common] macro for max number of tensors

Change definition for the max number of tensors (256), and update related code.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[doc] Fix outdated urls
Yongjoo Ahn [Thu, 23 Nov 2023 03:54:11 +0000 (12:54 +0900)]
[doc] Fix outdated urls

- Fix outdated urls for Tizen releases.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
6 months ago[Test] tensorflow-lite version in testcase
Jaeyun Jung [Wed, 22 Nov 2023 11:12:04 +0000 (20:12 +0900)]
[Test] tensorflow-lite version in testcase

Fix version of tensorflow-lite.
Both version 2.x and 1.x can be used in testcase if tensor-filter property framework is tensorflow-lite.
Default version is v2.x, and it has higher priority.

Also, added minor patch to fix indent.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Reviewers] update reviewers
Jaeyun Jung [Wed, 22 Nov 2023 12:12:37 +0000 (21:12 +0900)]
[Reviewers] update reviewers

Update reviewers list in nnstreamer repo.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[build] Remove unnecessary compile args for SNPE sub-plugin
Yongjoo Ahn [Wed, 22 Nov 2023 06:27:08 +0000 (15:27 +0900)]
[build] Remove unnecessary compile args for SNPE sub-plugin

- Remove those args thus it's not needed with recent snpe sdk.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
6 months ago[CodeClean/Element] util function to handle tensors
Jaeyun Jung [Mon, 20 Nov 2023 12:00:41 +0000 (21:00 +0900)]
[CodeClean/Element] util function to handle tensors

Code clean, use common util function to handle tensor information and memory.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Common/CodeClean] update description
Jaeyun Jung [Mon, 20 Nov 2023 10:59:12 +0000 (19:59 +0900)]
[Common/CodeClean] update description

Code clean, update doc and API description.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[TEST] Add tensor query test for drop prop
gichan2-jang [Tue, 21 Nov 2023 01:58:20 +0000 (10:58 +0900)]
[TEST] Add tensor query test for drop prop

 - Add tensor query test for drop prop.
 - Add framerate for tensor query server.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
6 months ago[Query] Add drop prop to query client
gichan2-jang [Tue, 21 Nov 2023 01:07:38 +0000 (10:07 +0900)]
[Query] Add drop prop to query client

Currently, the query client sends all input buffers to the query server.
If the processing speed of the server is slower than the client,
The result time of the server is gradually different from the input time.
To prevent this, the server processes only two buffers, and drop the remaining input buffers.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
6 months ago[Subplugin/flatbuf/protobuf] util to handle tensor data
Jaeyun Jung [Tue, 7 Nov 2023 11:54:06 +0000 (20:54 +0900)]
[Subplugin/flatbuf/protobuf] util to handle tensor data

Use common util function to handle tensor data.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months agoCommon/API: Introduce g_auto for automatic memory cleaning of "gchar *"
Wook Song [Fri, 17 Nov 2023 05:28:00 +0000 (14:28 +0900)]
Common/API: Introduce g_auto for automatic memory cleaning of "gchar *"

This patch introduces g_autofree and g_auto for automatic memory
cleaning of "gchar *" and "gchar **", respectively. Note that "GStrv" is
a typedef alias for "gchar **".

Signed-off-by: Wook Song <wook16.song@samsung.com>
6 months ago[Edge] util to handle tensor info
Jaeyun Jung [Mon, 13 Nov 2023 05:31:40 +0000 (14:31 +0900)]
[Edge] util to handle tensor info

Code clean, fix indent and use util function if current caps is tensor stream.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Test/CodeClean] util to append tensors
Jaeyun Jung [Thu, 9 Nov 2023 08:55:29 +0000 (17:55 +0900)]
[Test/CodeClean] util to append tensors

Code clean, remove duplicated code and use util function to append tensor memory.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[DataRepo/CodeClean] parse gst-caps
Jaeyun Jung [Fri, 17 Nov 2023 06:32:16 +0000 (15:32 +0900)]
[DataRepo/CodeClean] parse gst-caps

Code clean,
- reduce function call, parse caps and update stream type.
- update log message.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Edge] Remove re-connect from nnstreamer element
gichan2-jang [Fri, 10 Nov 2023 04:30:24 +0000 (13:30 +0900)]
[Edge] Remove re-connect from nnstreamer element

 - Since the reconnection has been changed to be done inside the nns-edge, nns_edge_connect for reconnection is deleted from the nnstreamer element.
 - Add state change function and set `playing` prop.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
6 months ago[Common] init after free
Jaeyun Jung [Tue, 14 Nov 2023 08:49:49 +0000 (17:49 +0900)]
[Common] init after free

Set default value after releasing tensor information struct.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Filter] Typecast using G_TENSOR_FILTER_SINGLE_PRIV macro
linuxias [Sat, 11 Nov 2023 08:44:17 +0000 (17:44 +0900)]
[Filter] Typecast using G_TENSOR_FILTER_SINGLE_PRIV macro

 Changed to use a macro when converting a pointer to the GstTensorFilterSinglePrivate type.
 Through this, the type conversion method is unified in other functions to maintain
 consistency and ensure stability.

Signed-off-by: linuxias <linuxias@gmail.com>
6 months ago[Test/CodeClean] macro to handle tensor info
Jaeyun Jung [Thu, 9 Nov 2023 10:28:22 +0000 (19:28 +0900)]
[Test/CodeClean] macro to handle tensor info

Code clean, use valid macro in test.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Element/gprc] release tensor-config struct
Jaeyun Jung [Tue, 7 Nov 2023 12:00:41 +0000 (21:00 +0900)]
[Element/gprc] release tensor-config struct

Release tensor-config struct when finalizing the element.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[action] Change gbs cache timing
Yongjoo Ahn [Wed, 8 Nov 2023 01:05:48 +0000 (10:05 +0900)]
[action] Change gbs cache timing

- Let action cache gbs every morning weekday.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
6 months ago[Decoder] macro for video formats accepted/tizen/unified/20231110.172147
Jaeyun Jung [Mon, 6 Nov 2023 11:55:27 +0000 (20:55 +0900)]
[Decoder] macro for video formats

Define macro to specify video formats supported in decoder direct-video.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[CodeClean] fix indent
Jaeyun Jung [Mon, 6 Nov 2023 11:21:41 +0000 (20:21 +0900)]
[CodeClean] fix indent

Trivial, fix indent and remove unnecessary space.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Tizen/SensorSrc] fix mem leak case
Jaeyun Jung [Mon, 6 Nov 2023 11:20:28 +0000 (20:20 +0900)]
[Tizen/SensorSrc] fix mem leak case

Code clean, fix mem leak case when failed to add new gst-buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Common] check index to get nth tensor
Jaeyun Jung [Wed, 1 Nov 2023 10:16:00 +0000 (19:16 +0900)]
[Common] check index to get nth tensor

Code clean, check index to get nth tensor from gst-buffer and remove unnecessary code.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Python] validate tensors info
Jaeyun Jung [Wed, 1 Nov 2023 06:49:06 +0000 (15:49 +0900)]
[Python] validate tensors info

Validate output tensors info after parsing pyobject.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Python] fix log util
Jaeyun Jung [Wed, 1 Nov 2023 08:35:47 +0000 (17:35 +0900)]
[Python] fix log util

Update util function to print log message in python module.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[action] Cache gbs once every weekday
Yongjoo Ahn [Thu, 2 Nov 2023 05:49:22 +0000 (14:49 +0900)]
[action] Cache gbs once every weekday

- Let the new workflow cache gbs every weekday.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
6 months ago[action] Do not run workflows on every push
Yongjoo Ahn [Thu, 2 Nov 2023 05:46:14 +0000 (14:46 +0900)]
[action] Do not run workflows on every push

- Doing every workflows on each push is not necessary as each
  pull request already checks it.
- Do not run those to save the earth!

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
6 months ago[Common] unref memory when appending tensor buffer
Jaeyun Jung [Thu, 2 Nov 2023 04:43:48 +0000 (13:43 +0900)]
[Common] unref memory when appending tensor buffer

Fix util function to take gst-memory if failed to append it.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
6 months ago[Common] fix mem leak case
Jaeyun Jung [Thu, 2 Nov 2023 05:12:15 +0000 (14:12 +0900)]
[Common] fix mem leak case

Fix mem leak case if failed to append memory into gst-buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
7 months ago[Converter/Python] function to handle tensor buffer
Jaeyun Jung [Wed, 1 Nov 2023 04:39:22 +0000 (13:39 +0900)]
[Converter/Python] function to handle tensor buffer

Change util function to handle gst-buffer including tensors.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
7 months ago[Common] util to get nth info
Jaeyun Jung [Wed, 1 Nov 2023 05:01:17 +0000 (14:01 +0900)]
[Common] util to get nth info

Code clean, use util function to handle nth tensor.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
7 months ago[action] Gbs build with `_skip_debug_rpm` and `--skip-srcrpm`
Yongjoo Ahn [Thu, 2 Nov 2023 01:20:41 +0000 (10:20 +0900)]
[action] Gbs build with `_skip_debug_rpm` and `--skip-srcrpm`

- Let gbs build do not make debug rpms and skip srcrpm
- This will save some seconds..

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months ago[action] Let gbs action cache 'GBS-ROOT/local/cache'
Yongjoo Ahn [Tue, 31 Oct 2023 05:44:32 +0000 (14:44 +0900)]
[action] Let gbs action cache 'GBS-ROOT/local/cache'

- Let github action cache the directory. Speed gbs build up by removing
  package downloads.
- The cache key is the date. The very first run each day will make new
  cache.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months agodoc: product list updates
MyungJoo Ham [Thu, 26 Oct 2023 10:27:42 +0000 (19:27 +0900)]
doc: product list updates

We have more products using NNStreamer. Update the list.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agoREADME: add face landmark example
MyungJoo Ham [Thu, 26 Oct 2023 07:58:23 +0000 (16:58 +0900)]
README: add face landmark example

Use the code from https://github.com/songgot/Tizen_IoT_face_landmark
CC: @songgot
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months ago[Common] hide old rank limit
Jaeyun Jung [Wed, 1 Nov 2023 03:22:29 +0000 (12:22 +0900)]
[Common] hide old rank limit

Hide old rank limit from header.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
7 months ago[action] Fix meson install and usage
Yongjoo Ahn [Mon, 30 Oct 2023 08:21:08 +0000 (17:21 +0900)]
[action] Fix meson install and usage

- Let ubuntu build install proper meson and python.
- And use meson commands explicilty rather than use outdated action from
  github marketplace

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months ago[doc] Add a gst-launch-script example for audio
Yongjoo Ahn [Mon, 23 Oct 2023 06:31:21 +0000 (15:31 +0900)]
[doc] Add a gst-launch-script example for audio

- Add a simple audio classification gst-launch example.
- This resolves #3777

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months ago[edge] Deprecate port and host property of edgesrc and update description for port...
hyunil park [Fri, 20 Oct 2023 01:12:54 +0000 (10:12 +0900)]
[edge] Deprecate port and host property of edgesrc and update description for port property

- Add a description of deprecated for port and host property of edgesrc.
  In the case of edgesrc, port and host settings are not required.
- Update description of port property of edgesink

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
7 months ago[util] Fix gst_tensors_info_to_string
Yongjoo Ahn [Thu, 19 Oct 2023 08:39:21 +0000 (17:39 +0900)]
[util] Fix gst_tensors_info_to_string

- Let the method returns string ended with "]" always.
- Let get_dimension_string returns NULL when given dim is filled with 0

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months agoDecoder: Add detailed descriptions for the bounding box sub-plugin
Wook Song [Tue, 17 Oct 2023 05:29:36 +0000 (14:29 +0900)]
Decoder: Add detailed descriptions for the bounding box sub-plugin

In addition to nnstreamer#4284, this patch adds descriptions for the
bounding box sub-plugin options.

Signed-off-by: Wook Song <wook16.song@samsung.com>
7 months agoDecoder/BoundingBox: Apply gst-indent to the bounding box sub-plugin
Wook Song [Tue, 17 Oct 2023 05:21:32 +0000 (14:21 +0900)]
Decoder/BoundingBox: Apply gst-indent to the bounding box sub-plugin

This is a trivial patch that applies gst-indent to the bounding box
sub-plugin of Tensor Decoder to keep the constant code style.

Signed-off-by: Wook Song <wook16.song@samsung.com>
7 months agodecoder: add detailed descriptions for a few subplugins.
MyungJoo Ham [Mon, 16 Oct 2023 07:29:11 +0000 (16:29 +0900)]
decoder: add detailed descriptions for a few subplugins.

As #3903 requests, we need descriptions for subplugin users.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agodecoder/filter: more info for gst-inspect.
MyungJoo Ham [Mon, 16 Oct 2023 07:02:35 +0000 (16:02 +0900)]
decoder/filter: more info for gst-inspect.

Show available frameworks / mode with gst-inspect.
This is the first step to address #3903

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months ago[test] Add SSAT testcases for yolo decoders
Yongjoo Ahn [Mon, 16 Oct 2023 07:42:20 +0000 (16:42 +0900)]
[test] Add SSAT testcases for yolo decoders

- Add SSAT TCs for yolov5 and yolov8 decoder.
- Add raw input files and golden result files.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months ago[decoder] Fix track mode bug (wrong struct size)
Yongjoo Ahn [Mon, 16 Oct 2023 07:39:01 +0000 (16:39 +0900)]
[decoder] Fix track mode bug (wrong struct size)

- Fix wrong size of glib array for distanceArray.
  sizeof (float) -> sizeof (distanceArrayData)

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months ago[test] Add simple ssat testcase for pose decoder
Yongjoo Ahn [Mon, 16 Oct 2023 08:18:22 +0000 (17:18 +0900)]
[test] Add simple ssat testcase for pose decoder

- Add a simple test for option3 and option4 (increasing line coverage)

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months agoDelete unnecessary empty line
seungha son [Mon, 16 Oct 2023 05:07:23 +0000 (14:07 +0900)]
Delete unnecessary empty line

Signed-off-by: seungha son <linuxias@gmail.com>
7 months agogithub-action: ubuntu-llvm/clang build test
MyungJoo Ham [Fri, 13 Oct 2023 09:55:48 +0000 (18:55 +0900)]
github-action: ubuntu-llvm/clang build test

Add llvm/clang build test.
Fixes #3979

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agoSupport clang/clang++
MyungJoo Ham [Fri, 13 Oct 2023 09:16:58 +0000 (18:16 +0900)]
Support clang/clang++

Fix clang's complaints.
Addressing #3979

To build w/ LLVM, do
$ CC=clang CXX=clang++ meson ...

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agoFilter/MLAgent: Replace MLAgentd with MLAgent
Wook Song [Fri, 13 Oct 2023 01:22:07 +0000 (10:22 +0900)]
Filter/MLAgent: Replace MLAgentd with MLAgent

Since MLAgentd would not be used interchangeably with MLAgent anymore,
this patch applies those changes.

Signed-off-by: Wook Song <wook16.song@samsung.com>
7 months agoFilter/MLAgent: Apply function name changes in the MLAgent API
Wook Song [Fri, 13 Oct 2023 01:17:33 +0000 (10:17 +0900)]
Filter/MLAgent: Apply function name changes in the MLAgent API

This patch applies the changes of function names in the MLAgent API.

Signed-off-by: Wook Song <wook16.song@samsung.com>
7 months ago[decoder] Let user set yolo decoder parameters
Yongjoo Ahn [Fri, 13 Oct 2023 06:00:15 +0000 (15:00 +0900)]
[decoder] Let user set yolo decoder parameters

- Let option3 of yolo decoders can handle user provided parameters.
  For yolov5 and yolov8 mode:
    The option3 requires up to 3 numbers, which tell
    - whether the output values are scaled or not
      0: not scaled (default), 1: scaled (e.g., 0.0 ~ 1.0)
    - the threshold of confidence (optional, default set to 0.25)
    - the threshold of IOU (optional, default set to 0.45)
  An example of option3 is "option3=0:0.65:0.6"

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months ago[Build] allowed element (identity)
Jaeyun Jung [Fri, 13 Oct 2023 09:45:35 +0000 (18:45 +0900)]
[Build] allowed element (identity)

Add 'identity' in the list of allowed elements.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
7 months agomemleak fix: tensor_split forgot to free things.
MyungJoo Ham [Fri, 25 Aug 2023 07:59:01 +0000 (16:59 +0900)]
memleak fix: tensor_split forgot to free things.

1. split->tensorseg is not freed when overwritten.
2. tensordim pointers are never freed but new-ed frequently.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agofilter: handle error of convert_to_meta
MyungJoo Ham [Wed, 11 Oct 2023 07:30:56 +0000 (16:30 +0900)]
filter: handle error of convert_to_meta

gst_tensor_info_convert_to_meta may return error
if the configured output tensor is invalid.
Handle the error before feeding it to another function,
that may access uninitialized value.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agotest: don't wait for 10000sec. wait 10sec.
MyungJoo Ham [Wed, 11 Oct 2023 07:33:50 +0000 (16:33 +0900)]
test: don't wait for 10000sec. wait 10sec.

wait_pipeline_process_buffers accepts timeout in ms, not us.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agodecoder:tensor_region: fix for future expansion.
MyungJoo Ham [Wed, 6 Sep 2023 08:30:40 +0000 (17:30 +0900)]
decoder:tensor_region: fix for future expansion.

- Fix a mem leak (tr_exit())
- For future expansion with different mode, prepare exiting previous modes.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agostyle fix: decoder/tensor_region dos2unix & trailing whitespaces
MyungJoo Ham [Wed, 6 Sep 2023 08:18:41 +0000 (17:18 +0900)]
style fix: decoder/tensor_region dos2unix & trailing whitespaces

It was formatted in "DOS" type. Apply dos2unix.
Then, remove trailing whitespaces.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agobuild: better flatc-flatbuf version mismatch message
MyungJoo Ham [Tue, 10 Oct 2023 09:52:33 +0000 (18:52 +0900)]
build: better flatc-flatbuf version mismatch message

Flatbuf is not enabled if the version of flatc mismatches.
Print a more friendly message for such version mismatch.

This helps #4226

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months agotest/datarepo_src: scope error
MyungJoo Ham [Tue, 10 Oct 2023 10:26:09 +0000 (19:26 +0900)]
test/datarepo_src: scope error

The bus_callback was using a global variable, loop,
while its registerers (e.g., TEST (datareposrc, fps30ReadFlexibleTensors) )
has loop local variable.

Therefore, the callback has been using uninitialied and unrelated
global variable, loop, which often causes unit test errors:

```
[  316s] [ RUN      ] datareposrc.fps30ReadFlexibleTensors
[  317s] Elapsed time: 0.687305 second
[  317s] ../tests/nnstreamer_datarepo/unittest_datareposrc.cc:686: Failure
[  317s] Expected: (0.8) < (elapsed_time), actual: 0.8 vs 0.687305
[  317s] Elapsed time: 0.003219 second
[  318s] Elapsed time: 1.001501 second
[  318s] [  FAILED  ] datareposrc.fps30ReadFlexibleTensors (2045 ms)
```

by exiting from g_main_loop too early.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 months ago[decoder] Add log option for bounding_box decoder
Yongjoo Ahn [Thu, 14 Sep 2023 06:25:52 +0000 (15:25 +0900)]
[decoder] Add log option for bounding_box decoder

- Add an option to decide whether to log (print) result boxes.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
7 months agoFilter/MLAgent: Initial draft for ml-agent support in TensorFilter
Wook Song [Tue, 27 Jun 2023 08:56:41 +0000 (17:56 +0900)]
Filter/MLAgent: Initial draft for ml-agent support in TensorFilter

This patch is an initial draft to bring the ML Agent features into NNS.

Signed-off-by: Wook Song <wook16.song@samsung.com>
7 months ago[Doc] edit documentation files related with tensor info
Yelin Jeong [Thu, 21 Sep 2023 03:09:34 +0000 (12:09 +0900)]
[Doc] edit documentation files related with tensor info

This patch edits docs and comments related with tensor info.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
7 months ago[Filter/Decoder] function to get property
Jaeyun Jung [Fri, 22 Sep 2023 05:37:59 +0000 (14:37 +0900)]
[Filter/Decoder] function to get property

Fix warning on gst-inspect cmd,
1. add config-path to read plugin properties.
2. update invalid description.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
7 months agoDataRepo/Src: Apply g_autoptr for local variables
Wook Song [Mon, 25 Sep 2023 09:00:07 +0000 (18:00 +0900)]
DataRepo/Src: Apply g_autoptr for local variables

This patch applies g_auto and g_autofree for local gchar * and gchar **
variables to improve readability.

Signed-off-by: Wook Song <wook16.song@samsung.com>
8 months agoDataRepo/Src: Add missing null check to the finalize function
Wook Song [Mon, 25 Sep 2023 02:14:21 +0000 (11:14 +0900)]
DataRepo/Src: Add missing null check to the finalize function

Since a null check is omitted in the finalize function, g_object_unref
complains about it in some cases as follows:

(unittest_datareposrc:19927): GLib-GObject-CRITICAL **: 10:46:26.793: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

This patch fixes it.

Signed-off-by: Wook Song <wook16.song@samsung.com>
8 months agoDataRepo/Src: Correct typos
Wook Song [Mon, 25 Sep 2023 08:32:33 +0000 (17:32 +0900)]
DataRepo/Src: Correct typos

This is a trivial patch that corrects typos. It would be better to
revise the texts in the file later.

Signed-off-by: Wook Song <wook16.song@samsung.com>
8 months agoDataRepo/Src: Get the framerate only if the data have it
Wook Song [Mon, 25 Sep 2023 07:27:17 +0000 (16:27 +0900)]
DataRepo/Src: Get the framerate only if the data have it

This patch fixes the bug that tries to get the 'framerate' value from
the caps of any data source. Note that there is no 'framerate' field in
GstAudioInfo.

Signed-off-by: Wook Song <wook16.song@samsung.com>
8 months ago[Edge] Fix memory leak when finalize edge-src/sink
linuxias [Sun, 24 Sep 2023 13:46:52 +0000 (22:46 +0900)]
[Edge] Fix memory leak when finalize edge-src/sink

 Free edge-src and sink variable memory when call
 finalize method to clear GstEdgeSink and Source memory

Signed-off-by: linuxias <linuxias@gmail.com>
8 months ago[Edge] Change type casting to GST macro
seungha son [Mon, 25 Sep 2023 09:55:58 +0000 (18:55 +0900)]
[Edge] Change type casting to GST macro

 - An explicit type casting technique is used to
   safely and clearly convert the type using a GST macro.

Signed-off-by: seungha son <linuxias@gmail.com>
8 months ago[doc] fix broken link in github.io
Yelin Jeong [Fri, 22 Sep 2023 05:54:19 +0000 (14:54 +0900)]
[doc] fix broken link in github.io

This patch fixes broken link in github.io.
github.com uses .md file and github.io uses .html file for link.
So conversion is required.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
8 months ago[Release] start impl for next release
Jaeyun Jung [Fri, 15 Sep 2023 09:30:49 +0000 (18:30 +0900)]
[Release] start impl for next release

Update version, start implementation for next release.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
8 months agotest: tensor_filter/tflite2 correct postfix
MyungJoo Ham [Thu, 21 Sep 2023 08:24:02 +0000 (17:24 +0900)]
test: tensor_filter/tflite2 correct postfix

Negative test cases require _n postfix for the test infrastucture
to recognize them. The new test cases with property config forgot
to add such postfix properly.

This fixes test case infra regression with #4262

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
8 months ago[tensor_filter] Add tensor filter config property
linuxias [Tue, 12 Sep 2023 15:26:33 +0000 (00:26 +0900)]
[tensor_filter] Add tensor filter config property

 tensor filter configuration is very complex, so when you set filter,
 property settings become longer and more complicated, making it
 difficult to find them at once even if human errors occur.

 If config is used, readability can be increased and human errors
 can be reduced due to organized properties.

Signed-off-by: linuxias <linuxias@gmail.com>
8 months agoMeson: Append force option to 'ln' creating python sub-plugin
Wook Song [Mon, 18 Sep 2023 04:30:55 +0000 (13:30 +0900)]
Meson: Append force option to 'ln' creating python sub-plugin

Since the ln command returns an error when the target already exists,
'meson build --reconfigure' fails as follows:

meson.build:746:4: ERROR: Command "/usr/bin/ln -s nnstreamer/build/ext/nnstreamer/extra/nnstreamer_python3.so
    nnstreamer/build/ext/nnstreamer/extra/nnstreamer_python.so" failed with status 1.

To fix it, this patch appends the -f, (--force) option to the ln command
that creates a soft link file for the python3 sub-plugin.

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