platform/upstream/nnstreamer.git
21 months ago[trivial] Check gst-indent to nnstreamer_plugin_api
Yongjoo Ahn [Thu, 9 Feb 2023 12:30:33 +0000 (21:30 +0900)]
[trivial] Check gst-indent to nnstreamer_plugin_api

- Run gst-indent to nnstreamer_plugin_api.h and
  nnstreamer_plugin_api_impl.c

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
21 months ago[common] Add API which appends a GstMemory into given GstBuffer
Yongjoo Ahn [Thu, 9 Feb 2023 12:11:10 +0000 (21:11 +0900)]
[common] Add API which appends a GstMemory into given GstBuffer

- Add a function to check whether the given memory has extra tensors.
- Add an API which appends given GstMemory into given GstBuffer.
  It append the memory into the last block of buffer with given tensor
  info in extra tensor scenario.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
21 months ago[num_tensors] Add APIs for GstTensorExtraInfo
Yongjoo Ahn [Mon, 30 Jan 2023 11:52:42 +0000 (20:52 +0900)]
[num_tensors] Add APIs for GstTensorExtraInfo

- Add an init API `gst_tensors_extra_init`
- Add an API `gst_tensors_get_nth_memory` which returns GstMemory from given GstBuffer with index larger than 16.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
21 months ago[num_tensors] Add header structure for 16+th tensors.
Yongjoo Ahn [Mon, 30 Jan 2023 11:49:51 +0000 (20:49 +0900)]
[num_tensors] Add header structure for 16+th tensors.

- Those tensors would be packed into 16th GstMemory in a GstBuffer.
- Define NNS_TENSOR_SIZE_EXTRA_LIMIT as 200

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
21 months ago[Test] Fix the test failure
Sangjung Woo [Wed, 8 Feb 2023 05:30:38 +0000 (14:30 +0900)]
[Test] Fix the test failure

After upgrading the version of GStreamer to 1.22.0, the test case of the
Tizen sensor filter failed. This is mainly because gst_parse_launch()
can return a non-NULL value even though the error is set. So error
should be checked first before using the return value of
gst_parse_launch(). This code fixes this bug.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
21 months ago[tensor_converter] Remove a seemingly unnecessary caps attribute views=1
Torsten Schulz [Fri, 13 Jan 2023 01:47:56 +0000 (17:47 -0800)]
[tensor_converter] Remove a seemingly unnecessary caps attribute views=1

This fix makes tensor_converter compatible with vaapih264dec and adds a WARNING if incoming video caps views>1.

The need for this workaround and warning has been surfaced because of
a bug in vaapih264hdec https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1712
which provides `video/x-raw, ... multiview-mode=(string)mono, ... views=(int)2`.
The caps restriction of `views=(int)1` prohibits the successful negotiation.

This has been tested with a mono video but not with a truly
stereoscopic video which might need further handling in the buffer
processing.

Signed-off-by: Torsten Schulz <torsten.schulz@gmail.com>
21 months ago[tensor_trainer] Rename callback parameter name
hyunil park [Fri, 20 Jan 2023 02:22:39 +0000 (11:22 +0900)]
[tensor_trainer] Rename callback parameter name

- Change 'train' and 'invoke' to 'start' and 'push_data' respectively
- Rename function releated to callback
- fix typo

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[tensor_trainer] Fixed output tensor's dimension and type
hyunil park [Mon, 26 Dec 2022 06:22:31 +0000 (15:22 +0900)]
[tensor_trainer] Fixed output tensor's dimension and type

Remove the properties that determines the output tensor's caps

- Remove output and outputtype property
- Add initialization of output tensor's dimension and type
- output dimension is 1:1:4:1, '4' has the value of loss, accuracy,
  val_loss, val_accuracy
- output type is float16
- Modify example launch line and log

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[tensor_trainer] Change tensor_trainer from GstBaseTransfrom to GstElement
hyunil park [Thu, 15 Dec 2022 07:00:06 +0000 (16:00 +0900)]
[tensor_trainer] Change tensor_trainer from GstBaseTransfrom to GstElement

- A deleted GstBaseTransfrom's inheritance and used GstElement to push
  GstBuffer only when necessary.
- Add event and query function for caps negotiation
- Add chain function for handling input buffer
- Remove virtual function of GstBaseTransfrom

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[tensor_trainer] Add train_complete_cond signal
hyunil park [Tue, 13 Dec 2022 05:46:25 +0000 (14:46 +0900)]
[tensor_trainer] Add train_complete_cond signal

- Add signal for waitng model train complete

Tensor trainer need to wait when receive EOS event before model training is complete,
subplugin should send signal when model train is complete

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[tensor_trainer] Apply tensor trainer sub-plugin structure
hyunil park [Thu, 1 Dec 2022 08:56:57 +0000 (17:56 +0900)]
[tensor_trainer] Apply tensor trainer sub-plugin structure

- Apply GstTensorTrainerProperties for internal data required by sub-plugin
- Apply GstTensorTrainerFramework for sub-plugin definition
- Apply trainer subpluginType(NNS_SUBPLUGIN_TRAINER) to get, register and
  unregister subplugin
- Add model-save-path property to set path for saving trained model

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[tensor_trainer] Add properties for training in sub-plugin
hyunil park [Mon, 31 Oct 2022 04:59:29 +0000 (13:59 +0900)]
[tensor_trainer] Add properties for training in sub-plugin

- Add model-config to set model configuration file,
  it is used to configure the model to be trained in framework
- Add push-output to push output tensors, default value is false
- Add num-inputs to set how many inputs are received,
  an input in a tensor can have one or more features data
- Add num-labels to set how many labels are received,
  a label in a tensor can have one or more classes data
- Add num-training-samples to set how many samples are taken for training model
- Add num-validation-samples to set how many samples are taken for validation model

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[tensor_trainer] Create tensor_trainer initial element
hyunil park [Fri, 28 Oct 2022 00:09:07 +0000 (09:09 +0900)]
[tensor_trainer] Create tensor_trainer initial element

- Add basic function (event handler, finalize, start, stop, change state, property)
- Add property (framework, input, output, inputtype and outputtype)
- Add caps negotiation (transform_caps, fixate_caps and set_caps)
- Add checking pipeline's input tensor info and tensor's set property values
- Add finding framework and sub-plugin
- Add calling invoke function in transfrom function

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[API][trainer] Packaging nnstreamer_plugin_api_trainer.h into debian accepted/tizen/unified/20230131.162133
hyunil park [Wed, 25 Jan 2023 02:18:43 +0000 (11:18 +0900)]
[API][trainer] Packaging nnstreamer_plugin_api_trainer.h into debian

- Packaing header file to nnstreamer-single-dev.install

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[API][trainer] Change type of train_complete to int
hyunil park [Wed, 25 Jan 2023 01:57:05 +0000 (10:57 +0900)]
[API][trainer] Change type of train_complete to int

- Sub-plugin using c++ cannot access this type

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
21 months ago[API][trainer] Change callback parameter name of GstTensorTrainerFramework
hyunil park [Wed, 18 Jan 2023 04:23:32 +0000 (13:23 +0900)]
[API][trainer] Change callback parameter name of GstTensorTrainerFramework

- Change 'train' and 'invoke' to 'start' and 'push_data' respectively

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
22 months ago[Query] Prevent overwriting of the query server caps accepted/tizen/unified/20230118.172039
gichan [Fri, 6 Jan 2023 04:52:02 +0000 (13:52 +0900)]
[Query] Prevent overwriting of the query server caps

Add new function to set query server caps.
This patch prevents the race condition of the query server caps.

Signed-off-by: gichan <gichan2.jang@samsung.com>
22 months ago[API][trainer] Add number of epoch and epoch count
hyunil park [Thu, 5 Jan 2023 05:13:00 +0000 (14:13 +0900)]
[API][trainer] Add number of epoch and epoch count

- Add num_epochs to inform the total amount of data than sub-plugin can receive
- Add epoch count to provide currently epoch information for sub-plugin to tensor_trainer

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
22 months ago[API][trainer] Add train_complete to GstTensorTrainerFrameworkInfo
hyunil park [Wed, 4 Jan 2023 09:30:16 +0000 (18:30 +0900)]
[API][trainer] Add train_complete to GstTensorTrainerFrameworkInfo

To abvoid dead lock, g_cond_wait is determined by train_complete value
when receive EOS.

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
22 months ago[API] Add nnstreamer_plugin_api_trainer.h to spec for rpm packaging
hyunil park [Mon, 26 Dec 2022 08:28:14 +0000 (17:28 +0900)]
[API] Add nnstreamer_plugin_api_trainer.h to spec for rpm packaging

Add header to nnstreamer.spec for rpm packaging

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
22 months ago[API] Add structure for tensor_trainer's sub-plugin
hyunil park [Wed, 30 Nov 2022 04:31:03 +0000 (13:31 +0900)]
[API] Add structure for tensor_trainer's sub-plugin

- Create nnstreamer_plugin_api_trainer.h
- Add GstTensorTrainerFramework to define tensor_trainer sub-plugin
- Add GstTensorTrainerProperties to send tensor_trainer properties
- Add GstTensorTrainerFrameworkInfo to get framework information

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
22 months ago[fix][tensor_filter] Fix the first output with garbage value with tflite
Yongjoo Ahn [Tue, 3 Jan 2023 08:27:55 +0000 (17:27 +0900)]
[fix][tensor_filter] Fix the first output with garbage value with tflite

- The output buffer address may change after the first invoke.
- To handle this case, Memcpy the output from tflite interpreter
  at the first invoke.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
22 months agoFilter/Meson: Move 'filter-snpe-list' to the build directory
Wook Song [Tue, 27 Dec 2022 04:35:50 +0000 (13:35 +0900)]
Filter/Meson: Move 'filter-snpe-list' to the build directory

This patch moves the 'filter-snpe-list' file generated during the build
time from the source directory to the build directory.

Signed-off-by: Wook Song <wook16.song@samsung.com>
22 months agoDist/Tizen: Define a macro that designates build directory
Wook Song [Tue, 27 Dec 2022 08:12:23 +0000 (17:12 +0900)]
Dist/Tizen: Define a macro that designates build directory

This patch replaces the hard-coded 'build' directory with a macro
designating the build directory.

Signed-off-by: Wook Song <wook16.song@samsung.com>
22 months ago[test] Add testcases for tensor_mux and tensor_merge with num_tensors=16
Yongjoo Ahn [Thu, 29 Dec 2022 08:31:30 +0000 (17:31 +0900)]
[test] Add testcases for tensor_mux and tensor_merge with num_tensors=16

- Add simple testcases for tensor_mux and tensor_merge when the
  num_tensors equals 16

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
22 months ago[fix] Fix NNS_TENSOR_SIZE_LIMIT check in collectpad
Yongjoo Ahn [Tue, 27 Dec 2022 04:56:10 +0000 (13:56 +0900)]
[fix] Fix NNS_TENSOR_SIZE_LIMIT check in collectpad

- Fix assertion checking the NNS_TENSOR_SIZE_LIMIT

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
22 months agoFilter/API: Fix wrong indentation accepted/tizen/unified/20230103.164729
Wook Song [Mon, 26 Dec 2022 04:16:29 +0000 (13:16 +0900)]
Filter/API: Fix wrong indentation

This is a trivial patch that fixes the wrong indentation.

Signed-off-by: Wook Song <wook16.song@samsung.com>
22 months agoFilter/API: Update out-of-date comments
Wook Song [Mon, 26 Dec 2022 03:32:26 +0000 (12:32 +0900)]
Filter/API: Update out-of-date comments

This patch updates out-of-date comments which have not followed the
changes in tensor_filter.c and tensor_filter_common.c.

Signed-off-by: Wook Song <wook16.song@samsung.com>
22 months agoFilter/API: Correct a typo
Wook Song [Mon, 26 Dec 2022 03:26:29 +0000 (12:26 +0900)]
Filter/API: Correct a typo

This patch corrected a type in the GstTensorFilterFramework's version
field.

Signed-off-by: Wook Song <wook16.song@samsung.com>
22 months ago[Join] Fix join run tesh pipeline.
gichan [Fri, 23 Dec 2022 06:12:51 +0000 (15:12 +0900)]
[Join] Fix join run tesh pipeline.

Fix join runTesh pipeline.
 - Increase the number of buffers : Before the multifilesink saves four files, the pipeline receives the EOS and stops. This is prevented by increasing the number of buffers.
 - Change tensor mux sync mode: Set the buffer used for comparison used by tensor_if slowly enough and sync on this buffer.
 - Enable timestamp.

Signed-off-by: gichan <gichan2.jang@samsung.com>
22 months agoGitHub/Actions: Enable binary tests defined in the meson script
Wook Song [Fri, 23 Dec 2022 02:21:38 +0000 (11:21 +0900)]
GitHub/Actions: Enable binary tests defined in the meson script

This patch makes the unit test cases defined in the meson build script
run.

Signed-off-by: Wook Song <wook16.song@samsung.com>
22 months agoGitHub/Actions: Use a matrix strategy in the workflow for Ubuntu
Wook Song [Mon, 5 Dec 2022 07:07:12 +0000 (16:07 +0900)]
GitHub/Actions: Use a matrix strategy in the workflow for Ubuntu

As 'ubuntu-latest' is currently migrating from 20.04 to 22.04 [1], this
patch uses a matrix strategy in our CI/CD workflow for Ubuntu.

[1] https://github.com/actions/runner-images#ongoing-migrations

Signed-off-by: Wook Song <wook16.song@samsung.com>
22 months ago[tests] change hardcoded dimension compare to use NNS_TENSOR_RANK_LIMIT
Yelin Jeong [Wed, 21 Dec 2022 08:26:36 +0000 (17:26 +0900)]
[tests] change hardcoded dimension compare to use NNS_TENSOR_RANK_LIMIT

This patch changes to use NNS_TENSOR_RANK_LIMIT instead of hardcoded dimension.
It will be used for increasing NNS_TENSOR_RANK_LIMIT

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
22 months ago[decoder] Support scaled-output model for yolov5 bounding box decoder
Yongjoo Ahn [Fri, 16 Dec 2022 07:12:58 +0000 (16:12 +0900)]
[decoder] Support scaled-output model for yolov5 bounding box decoder

- The yolov5 models released by github.com/ultralytics/yolov5 have
  different output semantics:
   - the output of tfliteand tf models should be scaled to input image
     size.
   - torchscript and others return scaled output value.
- This patch support those two semantics by add option3:
  - option1=yolov5 ...  option3=0 ... (default) for tflite models
  - option1=yolov5 ...  option3=1 ... for other models

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
22 months ago[decoder] Update yolov5 decoder parameters
Yongjoo Ahn [Fri, 16 Dec 2022 06:27:27 +0000 (15:27 +0900)]
[decoder] Update yolov5 decoder parameters

- Set the conf and iou threshold values to follow the upstream
  https://github.com/ultralytics/yolov5.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
22 months ago[lcov] Change base directory
gichan [Thu, 22 Dec 2022 08:20:53 +0000 (17:20 +0900)]
[lcov] Change base directory

Because the file path for build has been changed to relative path, change base directory for lcov.
This patch fixes failure of coverage generation.

Signed-off-by: gichan <gichan2.jang@samsung.com>
22 months ago[spec] Disable armnn_support option as default accepted/tizen/unified/20221226.070009
Sangjung Woo [Thu, 22 Dec 2022 09:45:01 +0000 (18:45 +0900)]
[spec] Disable armnn_support option as default

Since ARMNN is deprecated in Tizen, this patch disables the
armnn_support option.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
22 months ago[TEST/coverity] Check return value
gichan [Tue, 20 Dec 2022 07:53:59 +0000 (16:53 +0900)]
[TEST/coverity] Check return value

Fix coverity issue.
 - Check return value of `g_remove`.

Signed-off-by: gichan <gichan2.jang@samsung.com>
23 months agoriscv64 alpine linux --> ubuntu
MyungJoo Ham [Mon, 5 Dec 2022 10:32:17 +0000 (19:32 +0900)]
riscv64 alpine linux --> ubuntu

Try Ubuntu instead of alpine for riscv64 tests

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months ago[Svace] Fix the array overflow issue
Sangjung Woo [Fri, 16 Dec 2022 02:38:24 +0000 (11:38 +0900)]
[Svace] Fix the array overflow issue

The result of 'sizeof (dump_list_type) / sizeof (nnsconf_type_path)' is
4 but dump_list_str array has only 3 items. Because of this reason, it
can occur the array overflow issue. This patch fixes this issue.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
23 months ago[Common] Add common utils for tensors dimension compare
Yelin Jeong [Wed, 7 Dec 2022 10:54:16 +0000 (19:54 +0900)]
[Common] Add common utils for tensors dimension compare

This patch adds common function for tensors dimension compare.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
23 months ago[Query] remove mqtt connection type enum
gichan [Thu, 8 Dec 2022 06:35:08 +0000 (15:35 +0900)]
[Query] remove mqtt connection type enum

Since the tensor query does not send data through the mqtt, remove unnecessary enum.

Signed-off-by: gichan <gichan2.jang@samsung.com>
23 months ago[Meson] Don't use join_paths for library.
gichan [Mon, 12 Dec 2022 02:29:56 +0000 (11:29 +0900)]
[Meson] Don't use join_paths for library.

Let's use `files` instead of `join_paths` to create a library.
This patch prevents object file name containing the absolute path.
Refer: https://mesonbuild.com/Reference-manual_functions.html#join_paths

@todo: Update the tests in the next PR.

Signed-off-by: gichan <gichan2.jang@samsung.com>
23 months ago[Lua] Allow to declare TensorInfo not using full dimension
Yelin Jeong [Mon, 12 Dec 2022 08:09:48 +0000 (17:09 +0900)]
[Lua] Allow to declare TensorInfo not using full dimension

This patch allows to declare TensorInfo not using full dimension.
It will be used for increaseing NNS_TENSOR_RANK_LIMIT.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
23 months ago[SUBPLUGIN] Support nnstreamer trainer subplugin
hyunil park [Wed, 7 Dec 2022 02:56:21 +0000 (11:56 +0900)]
[SUBPLUGIN] Support nnstreamer trainer subplugin

Allow to add trainer subplugin in runtime

- Add NNS_SUBPLUGIN_TRAINER to subpluginType
- Add NNSTREAMER_TRAINERS to meson.build
- Add group name(trainer) to nnstreamer.ini.in
- Add NNSTREAMER_TRAINER to spec

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
23 months agoREADME: Replace the broken link for the SSDC 2019 page
Wook Song [Fri, 2 Dec 2022 14:23:20 +0000 (23:23 +0900)]
README: Replace the broken link for the SSDC 2019 page

This patch replaces the link for the SSDC 2019 page, which exists no
more (404 Not Found), in README.md with the YouTube link.

Signed-off-by: Wook Song <wook16.song@samsung.com>
23 months ago[Common] function to get peer caps
Jaeyun [Tue, 29 Nov 2022 02:07:23 +0000 (11:07 +0900)]
[Common] function to get peer caps

Code clean, remove unnecessary func call to get peer caps.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
23 months agogithub-action: Add libunwind-dev for jammy (22.04)
Sangjung Woo [Thu, 1 Dec 2022 03:13:33 +0000 (12:13 +0900)]
github-action: Add libunwind-dev for jammy (22.04)

In case of Ubuntu 22.04, below error occurs since unmet dependencies.
This patch fixes this bug.
- libunwind-14-dev : Breaks: libunwind-dev but 1.3.2-2build2 is to be installed

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
23 months agolog: control dependency on execinfo with find_library
MyungJoo Ham [Thu, 24 Nov 2022 07:47:52 +0000 (16:47 +0900)]
log: control dependency on execinfo with find_library

Like Android, Alpine linux does not ahve execinfo, too.
Determine whether to use execinfo or not based on
find_library results.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months agogithub-action: Add RISC-V build
MyungJoo Ham [Thu, 24 Nov 2022 04:46:19 +0000 (13:46 +0900)]
github-action: Add RISC-V build

This tries to enable RISC-V build in github-action
based on https://github.com/marketplace/actions/run-on-architecture-riscv64-alpine

In order to build in more primitive distro,
configure bixon/flex optional.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months agoMake parser optional with meson_option.
MyungJoo Ham [Thu, 24 Nov 2022 06:27:18 +0000 (15:27 +0900)]
Make parser optional with meson_option.

For simpler distro or other OS, make parser support optional.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months agoNew Element: tensor_debug tensor stream debugger
MyungJoo Ham [Fri, 23 Sep 2022 07:24:58 +0000 (16:24 +0900)]
New Element: tensor_debug tensor stream debugger

We introduce the new element of nnstreamer, tensor_debug.

Tensor_debug allows pipeline writers and application writers to
look at details of tensor stream properties and potentially
the performance profiling information of tensor streams at a
given point of a pipeline.

This commit is a scaffolding for tensor_debug, that do not have
its core function not implemented: _gst_tensor_debug_output().
This core function will be implemented in later PR.

This addresses #3910

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months agodebian: remove tensorflow1 from PPA
MyungJoo Ham [Thu, 24 Nov 2022 09:34:00 +0000 (18:34 +0900)]
debian: remove tensorflow1 from PPA

Let's not build obsolete tensorflow1.x subplugins
and remove them from official PPA build.

Fixes #3969

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months agosrc/iio: clean up build logic
MyungJoo Ham [Fri, 25 Nov 2022 01:40:26 +0000 (10:40 +0900)]
src/iio: clean up build logic

related logic rewritten:
- determine if src-iio is built
- determine if src-iio is registered
- determine if src-iio is tested via gtest

all the three decisions are unified for glitches in alpine build.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months ago[build] Disable tflite-custom in cross build
Yongjoo Ahn [Tue, 22 Nov 2022 02:09:47 +0000 (11:09 +0900)]
[build] Disable tflite-custom in cross build

- In cross build, found tflite lib could has different arch with target
  system. Disable this feature for cross build.
- This fixes #3964

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
23 months agoWorkaround:CI/macos do not try to update brew images.
MyungJoo Ham [Mon, 21 Nov 2022 12:48:35 +0000 (21:48 +0900)]
Workaround:CI/macos do not try to update brew images.

Updating the given image incurs an error with sbt.
Don't try to update it.

Fixes #3960

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
23 months ago[test] add tests for dimension declaration
Yelin Jeong [Fri, 4 Nov 2022 05:11:28 +0000 (14:11 +0900)]
[test] add tests for dimension declaration

This patch adds tests for dimension declaration.

Related issue #3937

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
23 months ago[Caps] update caps for negotiation
Yelin Jeong [Thu, 3 Nov 2022 06:53:18 +0000 (15:53 +0900)]
[Caps] update caps for negotiation

This patch adds update caps dimension properties.
`update_caps_dimension` uses peer_caps for negotiation.
`gst_tensor_caps_can_intersect` tries intersecting two tensor caps.
Both functions treat `a:b:c` and `a:b:c:1` equal.

Related issue #3937

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
23 months ago[TensorIf] Allow to declare option without full dimension
Yelin Jeong [Mon, 14 Nov 2022 08:03:32 +0000 (17:03 +0900)]
[TensorIf] Allow to declare option without full dimension

This patch allows to declare compared-value-option in tensor_if without full dimension.
Undeclared dimension will be filled with zero.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
23 months agoUpdate macOS tutorial
Simon Guillot [Wed, 16 Nov 2022 08:49:17 +0000 (09:49 +0100)]
Update macOS tutorial

- Update the configure command for meson
- Removed table of content is already in the doc template
- Removed tools explanations that are duplicates of their own docs (brew, git)
- Removed commands outputs as they don't provide much info and are not up to date

Signed-off-by: Simon Guillot <cratere_01_tannin@icloud.com>
23 months agoUpdate gitignore
Simon Guillot [Wed, 16 Nov 2022 08:49:09 +0000 (09:49 +0100)]
Update gitignore

Signed-off-by: Simon Guillot <cratere_01_tannin@icloud.com>
23 months agoAdd alternative target for PyTorch on macOS
Simon Guillot [Wed, 16 Nov 2022 08:49:03 +0000 (09:49 +0100)]
Add alternative target for PyTorch on macOS

Signed-off-by: Simon Guillot <cratere_01_tannin@icloud.com>
2 years ago[svace] Fix mem leak in tensor_filter
Yongjoo Ahn [Fri, 18 Nov 2022 04:38:00 +0000 (13:38 +0900)]
[svace] Fix mem leak in tensor_filter

- Fix mem leak of the `latency`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[svace] Remove unused code in gstjoin.c
Yongjoo Ahn [Fri, 18 Nov 2022 04:37:13 +0000 (13:37 +0900)]
[svace] Remove unused code in gstjoin.c

- Remove unused member `discont` from gstjoin

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Edge] Change input parameter type of the nns_edge_data_get. accepted/tizen/unified/20221115.172908
gichan [Mon, 24 Oct 2022 02:41:15 +0000 (11:41 +0900)]
[Edge] Change input parameter type of the nns_edge_data_get.

Change input parameter type of the nns_edge_data_get.
Need to SR with https://github.com/nnstreamer/nnstreamer-edge/pull/107

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[build] Add compile arg for pytorch subplugin
Yongjoo Ahn [Fri, 11 Nov 2022 04:54:14 +0000 (13:54 +0900)]
[build] Add compile arg for pytorch subplugin

- Add `-Wno-unused-parameter` args because recent pytorch contains
  unused variables in its source.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[decoder/pose] Fix SEGV, ignore pixel when coordinates are out of bounds.
Torsten Schulz [Wed, 9 Nov 2022 17:49:43 +0000 (09:49 -0800)]
[decoder/pose] Fix SEGV, ignore pixel when coordinates are out of bounds.

Under some circumstances, setpixel() is called with y==data.height which causes a SEGV. While this might be a rounding error in the caller draw(), the added code gracefully ignores such out-of-bound pixels gracefully.

Signed-off-by: Torsten Schulz <torsten.schulz@gmail.com>
2 years ago[filter/core] Add tensor filter latency reporting to the pipeline
Julien Vuillaumier [Wed, 12 Oct 2022 13:57:14 +0000 (15:57 +0200)]
[filter/core] Add tensor filter latency reporting to the pipeline

Tensor filter executes inferences that may take long time depending on
the model complexity and the compute capabilities of the platform.
When inference duration is long, it happens that some downstream
buffers are dropped because associated timestamp is too far in the past.

It results in a shaky pipeline buffer rate and for instance occurences
of error messages from the sink when operated in live mode (sync=TRUE):
'There may be a timestamping problem, or this computer is too slow.'

Tensor filter implementation already has the option to computes latency
estimates when its element property latency=1 is set.

This change introduces a new property value latency_report=1 that will
when enabled use those latency duration estimates to:
- implement LATENCY query handling to include GstTensorFilter latency
estimate in the overall pipeline latency computation
- track filter latency estimates updates to notify the bus through a
LATENCY message that its latency has changed. It triggers a new round
of LATENCY query in the pipeline to take into account the updated filter
latency.

Signed-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>
2 years ago[Common] tensor format in struct
Jaeyun [Mon, 24 Oct 2022 06:58:16 +0000 (15:58 +0900)]
[Common] tensor format in struct

Move enum flag - tensor_format into tensors-info struct.

To pass flexible tensors to filter sub-plugins, we should indicate tensor format in tensors-info struct, not tensors-config.
Internally tensors-config struct is used for caps negotiation.

TODO: need discussion, should we separate format in each tensor info, so that each mem chunk can express its format. (then, nnstreamer will combine memories: static+flexible in gst-buffer.)

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agoUpdate documentations with recent data.
MyungJoo Ham [Wed, 26 Oct 2022 11:15:05 +0000 (20:15 +0900)]
Update documentations with recent data.

- Updated releases.
- Updated products and services.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoREADME: add demonstrations from different companies.
MyungJoo Ham [Thu, 27 Oct 2022 05:57:06 +0000 (14:57 +0900)]
README: add demonstrations from different companies.

Fainders.AI, Klleon.IO, openncc.com, PrintNanny.ai
use NNStreamer to create their products and services.
Their demonstration video clips are presented as
NNStreamer example in README.md with their
permission to use for such purposes.

Product.md is updated accordingly.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Edge] Change localhost address for mqtt
gichan [Tue, 25 Oct 2022 05:05:53 +0000 (14:05 +0900)]
[Edge] Change localhost address for mqtt

Change localhost address for mqtt from tcp://localhost to 127.0.0.1.
* mosquitto lib cannot parse the previous form.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[edge] fix test code's multifilesink usage
Yelin Jeong [Mon, 24 Oct 2022 08:31:40 +0000 (17:31 +0900)]
[edge] fix test code's multifilesink usage

This patch fixes nnstreamer_edge test code.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
2 years ago[Join] Remove unnecessary variables.
gichan [Tue, 18 Oct 2022 06:43:44 +0000 (15:43 +0900)]
[Join] Remove unnecessary variables.

Remove unnecessary variables from the gstjoin.
Related issue #3938

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Doc] fix broken link
Yelin Jeong [Tue, 18 Oct 2022 06:44:12 +0000 (15:44 +0900)]
[Doc] fix broken link

This patch fixes broken link in tensor_sink documentation.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
2 years ago[AITT] Remove AITT build dependency
gichan [Fri, 14 Oct 2022 04:36:28 +0000 (13:36 +0900)]
[AITT] Remove AITT build dependency

Remove build dependency of AITT.
Check whether the AITT lib is installed or not at run-time for AITT test.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[filter] Fix guide document of snpe subplugin
Yongjoo Ahn [Fri, 14 Oct 2022 07:55:38 +0000 (16:55 +0900)]
[filter] Fix guide document of snpe subplugin

- Fix the outdated custom property description.
- Fix log messages.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[trivial/build] Fix meson error when the disabled option is given
Yongjoo Ahn [Thu, 13 Oct 2022 07:06:27 +0000 (16:06 +0900)]
[trivial/build] Fix meson error when the disabled option is given

- Fix meson config error when the 'disabled' options for mxnet is given explicitly

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Package] Add nnstreamer-edge dependency to nnstreamer-core
gichan [Thu, 6 Oct 2022 05:09:08 +0000 (14:09 +0900)]
[Package] Add nnstreamer-edge dependency to nnstreamer-core

Add nnstreamer-edge dependency to nnstreamer-core.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Test] dependency to tf-lite ver
Jaeyun [Wed, 5 Oct 2022 05:20:02 +0000 (14:20 +0900)]
[Test] dependency to tf-lite ver

Check dependency to tf-lite version to run unittest.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agofilter/armnn: fp16 support macro fix
MyungJoo Ham [Tue, 4 Oct 2022 10:49:20 +0000 (19:49 +0900)]
filter/armnn: fp16 support macro fix

The preprocessor macro has type. Fix it.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Doc] fix broken table in html
Yelin Jeong [Fri, 30 Sep 2022 07:37:51 +0000 (16:37 +0900)]
[Doc] fix broken table in html

This patch fixed broken table in data-type-and-flow-control documentation.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
2 years ago[Test] Unittest for filter shared key
Junhwan Kim [Thu, 19 Aug 2021 08:45:10 +0000 (17:45 +0900)]
[Test] Unittest for filter shared key

Unittest to validate filter with shared key

Signed-off-by: Junhwan Kim <jejudo.kim@samsung.com>
2 years agoStart of 2.3.0, the new unstable devel version for 2023
MyungJoo Ham [Tue, 27 Sep 2022 03:09:16 +0000 (12:09 +0900)]
Start of 2.3.0, the new unstable devel version for 2023

This is a new start for a devel release for 2023.
This acts as a start of 2.4.0-RC1.

2.2.0 -> 2.3.0
        - 2.3.0 is a devel version for 2.4.0 release. Unstable and experimental features are welcomed in this version.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years agoRelease of 2.2.0, the new LTS for 2022 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/20221110.060442 accepted/tizen/7.0/unified/hotfix/20221116.111157 accepted/tizen/unified/20220928.020837 tizen_7.0_m2_release
MyungJoo Ham [Thu, 22 Sep 2022 08:15:13 +0000 (17:15 +0900)]
Release of 2.2.0, the new LTS for 2022

This is a new LTS release for 2022.

The next RC development starts with 2.3.0, and
the hotfixes for 2022 releases will be kept in 2.2.y.

2.1.1 -> 2.2.0
        - This is NNStreamer 2.2.0 Tizen 7.0 M2 release.

        - NNStreamer-Edge.
                - Edge-AI (Among-Device AI) implementation is moved to nnstreamer-edge so that non-nnstreamer/gstreamer systems can connect to nnstreamer pipelines.
                - NNStreamer-Edge provides inter-pipeline stream connections with various protocols transparently.
                - NNStreamer-Edge does not depend on gstreamer/nnstreamer; thus, non-gstreamer systems may connect to nnstreamer/gstreamer pipelines via nnstreamer-edge.
                - The "MQTT-Hybrid" protocol for high bandwidth communication w/ mqtt features included.

        - ML-Service API phase 2 is completed and released via api.git

        - New Subplugins
                - tensor_filter / DeepViewRT (NXP)
                - tensor_filter / MXNet
                - tensor_filter / tensorflow2-lite-custom (allow to designate user-supplied tf2-lite binaries)

        - Major features
                - tensor-query-client, tensor-query-serversrc/sink use nnstreamer-edge. Protocols are handled at nnstreamer-edge and it now support aitt as one of its backends.
                - Float16 (FP16) tensor stream support.
                - Rank limit of tensor stream increased: 4 --> 8 (experimental. with known issues)
                - Error messages, exception handling, and documentations are improved for application / pipeline writers.

        - Minor features
                - Added several workarounds for glitches of Qualcomm-SNPE's libraries.
                - Support additional .ini file for subplugin configuration. Required by clients who want to separate permissions for controlling user-installable subplugins and system-installable core files.
                - Ability to run multiple instances of unit tests in a single machine.
                - Add gcc >= 11 support
                - Fixed multithreading error in tensor_filter::python
                - Python2 dropped. Only Python3 is supported.
                - Refactored to increase SAM score (architecture quality assessment).
                - Query, GRPC: added minor features requested by users.
                - A lot of test cases and fixes introduced.
                - Ubuntu 22.04 published.
                - Python >= 3.10 support.
                - Tensor-decoder::bounding-box. ssd-mobilenet v3 support

        - Experimental features
                - edgesrc, edgesink. stream pub/sub elements based on nnstreamer-edge

        - Known issues
                - Multithreading errors in tensor_decoder::python and tensor_converter::python
                - FP16 in x64/x86 is not tested. (tested in armv7l/aarch64 only)
                - Rank > 4 support is not activated by default. Dimension properties of GSTCAP is not fully backward compatible (to be fixed).

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Edge] Support MQTT-hybrid connection
gichan [Wed, 14 Sep 2022 09:51:33 +0000 (18:51 +0900)]
[Edge] Support MQTT-hybrid connection

 - Support MQTT-hybrid connection for edgesrc and edgesink.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Spec] dependency to nns-edge
Jaeyun [Mon, 26 Sep 2022 01:57:57 +0000 (10:57 +0900)]
[Spec] dependency to nns-edge

Check dependency to nnstreamer-edge library.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years ago[EDGE] Support AITT as connection type.
gichan [Wed, 14 Sep 2022 04:34:17 +0000 (13:34 +0900)]
[EDGE] Support AITT as connection type.

Edgesrc/sink support AITT as connection type.
Add unit test cases.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years agoEdge: allow edgesrc/sink in Tizen accepted/tizen/unified/20220925.234926 accepted/tizen/unified/20220925.234954 accepted/tizen/unified/20220926.025520
MyungJoo Ham [Thu, 15 Sep 2022 03:03:06 +0000 (12:03 +0900)]
Edge: allow edgesrc/sink in Tizen

With #3864, edgesrc/sink are added; however, in Tizen API,
apps are restricted to use the allowed elements only.
Add edgesrc/edgesink to that list.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[Gst/Edge] Add edgesrc and edgesink
Yechan Choi [Thu, 11 Aug 2022 10:18:21 +0000 (19:18 +0900)]
[Gst/Edge] Add edgesrc and edgesink

- Add new elements: edgesrc and edgesink.
- Modify Test for edgesrc and edgesink.

Signed-off-by: Yechan Choi <yechan9.choi@samsung.com>
Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[Gst/Edge] Init edgesrc and edgesink
Yechan Choi [Thu, 4 Aug 2022 05:12:35 +0000 (14:12 +0900)]
[Gst/Edge] Init edgesrc and edgesink

Init skelton of edgesrc and edgesink.

Signed-off-by: Yechan Choi <yechan9.choi@samsung.com>
2 years ago[Edge] Update changed flag and API accepted/tizen/unified/20220919.012621
gichan [Tue, 6 Sep 2022 04:45:34 +0000 (13:45 +0900)]
[Edge] Update changed flag and API

Update changed flag and API of the nnstreamer-edge
After https://github.com/nnstreamer/nnstreamer-edge/pull/60

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[doxygen] add brief tag on refrain_from_heavy_op_on_float16
Yelin Jeong [Thu, 1 Sep 2022 04:56:14 +0000 (13:56 +0900)]
[doxygen] add brief tag on refrain_from_heavy_op_on_float16

This patch adds brief tag on function refrain_from_heavy_op_on_float16

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
2 years ago[transform] fix transform transpose rank to 4
Yelin Jeong [Fri, 5 Aug 2022 08:03:00 +0000 (17:03 +0900)]
[transform] fix transform transpose rank to 4

This patch fixes transform transpose rank to 4.
Increasing NNS_TENSOR_RANK_LIMIT will affect transform transpose.
It should be fixed to 4 until transform transpose supports rank N.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
2 years ago[query] Fix client_id type to long long in query_serversink
Yongjoo Ahn [Wed, 14 Sep 2022 06:21:13 +0000 (15:21 +0900)]
[query] Fix client_id type to long long in query_serversink

- Fix client_id type to long long in query_serversink.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[Query] replace deprecated function
Jaeyun [Tue, 6 Sep 2022 08:54:37 +0000 (17:54 +0900)]
[Query] replace deprecated function

Replace deprecated function of edge library.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
2 years agogithub-action/gbs: Tizen build infra update
MyungJoo Ham [Tue, 6 Sep 2022 05:07:47 +0000 (14:07 +0900)]
github-action/gbs: Tizen build infra update

The build infra has updated and its binary repository URL
has been updated.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2 years ago[conf] Update gbs.conf to new repos
Yongjoo Ahn [Tue, 13 Sep 2022 05:28:10 +0000 (14:28 +0900)]
[conf] Update gbs.conf to new repos

- Update repo urls to new ones.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
2 years ago[TEST] Update query test
gichan [Tue, 6 Sep 2022 08:23:53 +0000 (17:23 +0900)]
[TEST] Update query test

 - Add timeout option to precent stuck during test.
 - Set random available port for query client.

Signed-off-by: gichan <gichan2.jang@samsung.com>
2 years ago[CodeClean] coverity issues accepted/tizen/unified/20220908.124832
Jaeyun [Wed, 7 Sep 2022 05:45:05 +0000 (14:45 +0900)]
[CodeClean] coverity issues

Fix coverity issues, remove unnecessary header includes and std-move to mem ptr.

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