platform/upstream/nnstreamer.git
7 months agoRemove flatbuf-python dependency sandbox/sangjung/tizen_8_backup accepted/tizen/8.0/unified/20240403.120517
gichan2-jang [Tue, 26 Dec 2023 05:41:07 +0000 (14:41 +0900)]
Remove flatbuf-python dependency

Remove flatbuf-python dependency from all Tizen profile.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
10 months ago[CodeClean] util function to get stream-id accepted/tizen/8.0/unified/20231005.095247 accepted/tizen/unified/20230915.160551 tizen_8.0_m2_release
Jaeyun Jung [Fri, 15 Sep 2023 05:50:28 +0000 (14:50 +0900)]
[CodeClean] util function to get stream-id

Remove random number, use util function to get new stream-id.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months agotizen: enable/disable nnstreamer-edge explicitly.
MyungJoo Ham [Thu, 14 Sep 2023 11:17:22 +0000 (20:17 +0900)]
tizen: enable/disable nnstreamer-edge explicitly.

For Tizen distro, do not let "auto" determine essential features.
This will prevent regression that implicitly disabling nnstreamer-edge.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
10 months ago[build] Let meson test work with python3 support
Yongjoo Ahn [Tue, 12 Sep 2023 10:32:17 +0000 (19:32 +0900)]
[build] Let meson test work with python3 support

- Set proper symbolic link and PYTHONPATH env variable to testenv
  to make `meson test` works with python module tests.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[Release] update version accepted/tizen/unified/20230912.171642
Jaeyun Jung [Tue, 12 Sep 2023 03:53:22 +0000 (12:53 +0900)]
[Release] update version

Update version to 2.4.0, Tizen 8.0 M2 release.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months ago[build] Fix `find_library` usage finding SNPE dep
Yongjoo Ahn [Mon, 11 Sep 2023 07:01:57 +0000 (16:01 +0900)]
[build] Fix `find_library` usage finding SNPE dep

- meson complains as `starting in "lib" only works by accident and is not portable`
- Change `libSNPE` to `SNPE`.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[build] Fix meson use of `run_command`
Yongjoo Ahn [Mon, 11 Sep 2023 06:57:58 +0000 (15:57 +0900)]
[build] Fix meson use of `run_command`

- meson may change the default value of `run_command`'s `check` arg
  (false -> true).
- Set `check : false` in omitted lines.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[test] Fix the rank compare test of SNPE filter
Yongjoo Ahn [Mon, 11 Sep 2023 08:02:48 +0000 (17:02 +0900)]
[test] Fix the rank compare test of SNPE filter

- Deal with the recent rank update in nnstreamer.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[filter] Remove assert and throw exception
Yongjoo Ahn [Mon, 11 Sep 2023 08:01:41 +0000 (17:01 +0900)]
[filter] Remove assert and throw exception

- Remove excessive asserts.
- Throw exception when input or output buffer is NULL in invoke method

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[test] Let snpe test exit generously
Yongjoo Ahn [Mon, 11 Sep 2023 07:46:03 +0000 (16:46 +0900)]
[test] Let snpe test exit generously

- Sleep a while when the negative pipeline test exits.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[pytorch] Fix load model with use_gpu option
Yongjoo Ahn [Thu, 7 Sep 2023 08:58:40 +0000 (17:58 +0900)]
[pytorch] Fix load model with use_gpu option

- In the recent pytorch, `model->to (device)` does not work properly.
- Use `torch::jit::load (model, torch::Device)` instead.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[pytorch] Drop pytorch support for version less than 1.2.0
Yongjoo Ahn [Thu, 7 Sep 2023 08:57:20 +0000 (17:57 +0900)]
[pytorch] Drop pytorch support for version less than 1.2.0

- Drop the support for the old pytorchs.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[Subplugin/Flatbuf] util to get nth info
Jaeyun Jung [Tue, 5 Sep 2023 04:40:13 +0000 (13:40 +0900)]
[Subplugin/Flatbuf] util to get nth info

Code clean, remove unnecessary copy of tensors-info and use util to get nth info.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months ago[Common] dimension in tensor-meta
Jaeyun Jung [Thu, 7 Sep 2023 08:45:24 +0000 (17:45 +0900)]
[Common] dimension in tensor-meta

Set max length of tensor dimension in tensor-meta, same with tensor rank limit.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months ago[test] Fix pytorch ssat model file
Yongjoo Ahn [Mon, 11 Sep 2023 09:36:20 +0000 (18:36 +0900)]
[test] Fix pytorch ssat model file

- Recent pytorch cannot read the `pytorch_lenet5.pt`.
- Replace the file with newer version of pytorch.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
10 months ago[CodeClean] test and comments
Yelin Jeong [Fri, 8 Sep 2023 07:13:40 +0000 (16:13 +0900)]
[CodeClean] test and comments

Fix test and comments.
- Remove useless initialization
- Change comment and docs

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
10 months ago[Tizen] allow multifilesrc/sink accepted/tizen/unified/20230907.175333
Jaeyun Jung [Thu, 7 Sep 2023 06:23:13 +0000 (15:23 +0900)]
[Tizen] allow multifilesrc/sink

Update the list of allowed elements - multifilesrc/sink.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months ago[Filter/Sub] fill 0 dim at nth info
Jaeyun Jung [Tue, 5 Sep 2023 04:40:49 +0000 (13:40 +0900)]
[Filter/Sub] fill 0 dim at nth info

Util function to get nth gst-info and fill remained dim as 0.

TODO:
I did not build and test all subplugins, need to check all subplugins later.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months ago[python] change dims default value from 1 to 0
Yelin Jeong [Thu, 7 Sep 2023 04:40:29 +0000 (13:40 +0900)]
[python] change dims default value from 1 to 0

This patch changes dims default value from 1 to 0 in python helper.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
10 months ago[Converter] incoming data format
Jaeyun Jung [Tue, 29 Aug 2023 06:52:02 +0000 (15:52 +0900)]
[Converter] incoming data format

Update tensor dimension of incoming data, 0-init.
 - video : [ch][w][h][frames]
 - audio : [ch][samples]
 - text : [size][samples]
 - octet/tensor : [size]

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months ago[tensor] Increase NNS_TENSOR_RANK_LIMIT to 16
Yelin Jeong [Fri, 1 Sep 2023 05:07:38 +0000 (14:07 +0900)]
[tensor] Increase NNS_TENSOR_RANK_LIMIT to 16

This patch Increase NNS_TENSOR_RANK_LIMIT
- Increase NNS_TENSOR_RANK_LIMIT to 16 from 8
- Delete convertMetaInvalidParam03_n, since NNS_TENSOR_RANK_LIMIT and NNS_TENSOR_META_RANK_LIMIT are now same.
- Fix some values in tests.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
10 months ago[CodeClean] indent and code style
Jaeyun Jung [Thu, 7 Sep 2023 03:46:20 +0000 (12:46 +0900)]
[CodeClean] indent and code style

Code clean, fix indent and code style.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
10 months ago[TensorIF] Fix the wrong index in log format
seungha.son [Wed, 6 Sep 2023 09:32:24 +0000 (18:32 +0900)]
[TensorIF] Fix the wrong index in log format

 - Wrong array index occur unwanted behavior and problem.

Signed-off-by: seungha.son <linuxias@gmail.com>
10 months ago[python] init dimension as 0
Yelin Jeong [Fri, 1 Sep 2023 07:38:08 +0000 (16:38 +0900)]
[python] init dimension as 0

This patch removes filling the dimension value with 1.
Tensor dimension initial value is 0.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
10 months agomemleak fix: converter test leak fix
MyungJoo Ham [Wed, 30 Aug 2023 08:29:59 +0000 (17:29 +0900)]
memleak fix: converter test leak fix

converter gtest code mem leak by not calling gst_object_unref

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
10 months ago[Test/decoder] Add test cases for direct video decoer
gichan2-jang [Mon, 4 Sep 2023 09:07:38 +0000 (18:07 +0900)]
[Test/decoder] Add test cases for direct video decoer

 - Add test case of all supported video format of direct video decoder.
 - Apply default video foramt when video format is not given.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
11 months ago[Test] length of dims
Jaeyun Jung [Fri, 1 Sep 2023 01:49:17 +0000 (10:49 +0900)]
[Test] length of dims

1. Get the length of dimension, not constant.
2. Init dim as 0 in some testcase.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
11 months ago[ssat] Execute runTest.sh properly
Yongjoo Ahn [Fri, 1 Sep 2023 07:07:50 +0000 (16:07 +0900)]
[ssat] Execute runTest.sh properly

- Those runTest.sh are not executed regardless of the ret value of the python script. Fix It.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
11 months ago[test] Replace tensorflow1-lite with tensorflow2-lite in SSAT tests
Yongjoo Ahn [Fri, 1 Sep 2023 06:41:43 +0000 (15:41 +0900)]
[test] Replace tensorflow1-lite with tensorflow2-lite in SSAT tests

- Let's use tensorflow2-lite rather than deprecated tf1-lite.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
11 months ago[Src/IIO] dimension in tensorsrc-iio
Jaeyun Jung [Fri, 1 Sep 2023 03:40:56 +0000 (12:40 +0900)]
[Src/IIO] dimension in tensorsrc-iio

0-init dims, data in src-iio has format of [ch-number][capacity].

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
11 months ago[Split] init dim as 0
Jaeyun Jung [Fri, 1 Sep 2023 04:42:28 +0000 (13:42 +0900)]
[Split] init dim as 0

The initial value of tensor dimension is 0. Do not fill remained dims as 1.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
11 months ago[test] Use EPIPE if ESTRPIPE is not defined like macos
Yongjoo Ahn [Tue, 29 Aug 2023 09:13:19 +0000 (18:13 +0900)]
[test] Use EPIPE if ESTRPIPE is not defined like macos

- Use EPIPE instead of ESTRPIPE where it is not defined.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
11 months ago[test] Fix filter_reload_test
Yongjoo Ahn [Tue, 29 Aug 2023 08:47:48 +0000 (17:47 +0900)]
[test] Fix filter_reload_test

- The mutex used in the filter is effected by invoke and reload both.
- Set GST_STATE_PAUSED before reloading models, to guarantee that mutex
  is unlocked

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
11 months ago[Ubuntu/1804] Check pytorch version
gichan2-jang [Wed, 30 Aug 2023 10:26:34 +0000 (19:26 +0900)]
[Ubuntu/1804] Check pytorch version

Check pytorch version to fix ubuntu 18.04 build failure
 - Fix incompatibility of protobuf and caffe2 of ubuntu 18.04.
 - Don't install not available package.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
11 months ago[WIP] DataRepo Memory Leak Fix
MyungJoo Ham [Mon, 28 Aug 2023 10:03:05 +0000 (19:03 +0900)]
[WIP] DataRepo Memory Leak Fix

There are a few more leaks to be fixed.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months ago[Debian] Fix deprecated option
gichan2-jang [Wed, 30 Aug 2023 08:41:27 +0000 (17:41 +0900)]
[Debian] Fix deprecated option

Since `enable-datarepo` is  removed, change to `datarepo-support`.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
11 months agomemleak fix: unittest-common forgot to unref
MyungJoo Ham [Wed, 30 Aug 2023 07:40:03 +0000 (16:40 +0900)]
memleak fix: unittest-common forgot to unref

Unref gst-buffer that is allocated in the test case.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agomemleak fix: tensor_demux forgot to free strv
MyungJoo Ham [Wed, 30 Aug 2023 05:39:18 +0000 (14:39 +0900)]
memleak fix: tensor_demux forgot to free strv

g_strsplit_set()'s return should be freed by the caller.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months ago[TizenSensor] dimension of sensor data
Jaeyun Jung [Thu, 24 Aug 2023 12:36:24 +0000 (21:36 +0900)]
[TizenSensor] dimension of sensor data

0-init dimension, supposed tensor dimension of Tizen sensor data is [sensor-data][samples].

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
11 months ago[tensor_filter] Fix wrong spelling in spec string
seungha.son [Tue, 29 Aug 2023 12:08:10 +0000 (21:08 +0900)]
[tensor_filter] Fix wrong spelling in spec string

Signed-off-by: seungha.son <linuxias@gmail.com>
11 months agomemleak fix: tests/trainer gtest accepted/tizen/unified/20230830.170548
MyungJoo Ham [Fri, 25 Aug 2023 09:01:53 +0000 (18:01 +0900)]
memleak fix: tests/trainer gtest

unref-ing GstElement from gst_bin_get_by_name is required
with GST_OBJECT casting.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months ago[Common] util to get nth gst-info
Jaeyun Jung [Mon, 28 Aug 2023 09:44:34 +0000 (18:44 +0900)]
[Common] util to get nth gst-info

Use util function to get nth info from tensors-info struct.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
11 months ago[Decoder/Pose] condition to check tensor dims
Jaeyun Jung [Mon, 28 Aug 2023 09:56:57 +0000 (18:56 +0900)]
[Decoder/Pose] condition to check tensor dims

Change condition to check tensor dimension - allows 0 dim.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
11 months ago[Src/IIO] init gst-info in list
Jaeyun Jung [Mon, 28 Aug 2023 10:00:04 +0000 (19:00 +0900)]
[Src/IIO] init gst-info in list

Bug fix, init gst-info in list inside of the loop.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
11 months agomemleak fix: datareposrc json parse leaking.
MyungJoo Ham [Fri, 25 Aug 2023 09:13:19 +0000 (18:13 +0900)]
memleak fix: datareposrc json parse leaking.

set-property may be called repeatedly.
Do not overwrite allocated pointers.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agotest/filter/lua: update null-input/output death test
MyungJoo Ham [Fri, 25 Aug 2023 08:17:16 +0000 (17:17 +0900)]
test/filter/lua: update null-input/output death test

Filter/lua no longer dies for null input/output.
It now returns an error code (C-side) or an exception (C++-side).

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agomemleak fix: filter/lua null check
MyungJoo Ham [Fri, 25 Aug 2023 07:07:20 +0000 (16:07 +0900)]
memleak fix: filter/lua null check

It may access a struct of null pointer:
```
==32601== 1 errors in context 1 of 5:
==32601== Invalid read of size 8
==32601==    at 0x81659BA: nnstreamer::tensorfilter_lua::lua_subplugin::invoke(GstTensorMemory const*, GstTensorMemory*) (tensor_filter_lua.cc:498)
==32601==    by 0x8393D7B: nnstreamer::tensor_filter_subplugin::cpp_invoke(_GstTensorFilterFramework const*, _GstTensorFilterProperties*, void*, GstTensorMemory const*, GstTensorMemory*) (tensor_filter_support_cc.cc:168)
==32601==    by 0x16FCDC: nnstreamerFilterLua_invoke01_n_Test::TestBody() (unittest_filter_lua.cc:490)
==32601==    by 0x1A8F0B: void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2402)
==32601==    by 0x1A274A: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438)
==32601==    by 0x185943: testing::Test::Run() (gtest.cc:2474)
==32601==    by 0x1862B9: testing::TestInfo::Run() (gtest.cc:2656)
==32601==    by 0x18694A: testing::TestCase::Run() (gtest.cc:2776)
==32601==    by 0x18D9FE: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4651)
==32601==    by 0x1AA27E: bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2402)
==32601==    by 0x1A36D0: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438)
==32601==    by 0x18C5F2: testing::UnitTest::Run() (gtest.cc:4259)
==32601==    by 0x178659: RUN_ALL_TESTS() (gtest.h:2233)
==32601==    by 0x176CA7: main (unittest_filter_lua.cc:1069)
==32601==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
```

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agomemleak fix: unittest/custom filter
MyungJoo Ham [Fri, 25 Aug 2023 07:11:26 +0000 (16:11 +0900)]
memleak fix: unittest/custom filter

Someone has forgot to call free.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agoworkaround: brew error in github action.
MyungJoo Ham [Mon, 28 Aug 2023 01:39:39 +0000 (10:39 +0900)]
workaround: brew error in github action.

Fix the error:
```
==> Pouring python@3.11--3.11.5.monterey.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3
Target /usr/local/bin/2to3
already exists. You may want to remove it:
  rm '/usr/local/bin/2to3'
```

Reference: https://github.com/universal-ctags/ctags/pull/3759

This is a workaround. When homebrew resumes working in github-action,
we need to revert this.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agomemleak fix: test/sink gtest
MyungJoo Ham [Fri, 25 Aug 2023 02:50:38 +0000 (11:50 +0900)]
memleak fix: test/sink gtest

A few test cases did not call deallocation.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agomemleak fix: decoder/bounding-box mp_palm
MyungJoo Ham [Wed, 23 Aug 2023 06:06:35 +0000 (15:06 +0900)]
memleak fix: decoder/bounding-box mp_palm

It has a few g_array that is not freed.
Fixes #4195

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months ago[decoder] Add boundingbox decoder for yolov8
Yongjoo Ahn [Tue, 22 Aug 2023 04:20:51 +0000 (13:20 +0900)]
[decoder] Add boundingbox decoder for yolov8

- Add boundingbox decoder for yolov8
TODO: refactor yolov5 and yolov8 which are sharing many common parts

Tested simple pipeline:
```
gst-launch-1.0 \
v4l2src ! videoscale ! videoconvert ! video/x-raw,width=320,height=320,format=RGB,framerate=30/1,pixel-aspect-ratio=1/1 ! tee name=t \
t. ! queue ! tensor_converter ! other/tensors,num_tensors=1,types=uint8,format=static,dimensions=3:320:320:1 ! \
  tensor_transform mode=arithmetic option=typecast:float32,add:0.0,div:255.0 ! \
  queue leaky=2 max-size-buffers=2 ! \
  tensor_filter framework=tensorflow2-lite model=~/ultralytics/yolov8s_saved_model/yolov8s_float16.tflite custom=Delegate:XNNPACK,NumThreads:4 latency=1 ! \
  other/tensors,num_tensors=1,types=float32,format=static,dimensions=2100:84:1 ! \
  tensor_transform mode=transpose option=1:0:2:3 ! \
  tensor_decoder mode=bounding_boxes option1=yolov8 option2=./coco-80.txt option3=0 option4=320:320 option5=320:320 ! \
  video/x-raw,width=320,height=320,format=RGBA ! mix.sink_0 \
t. ! queue ! mix.sink_1 compositor name=mix sink_0::zorder=2 sink_1::zorder=1 ! videoconvert ! autovideosink
```
Note that the used model file yolov8s_float16.tflite is created by official guide of yolov8 project.

REF: https://github.com/ultralytics/ultralytics

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
11 months ago[Github Action] Add nntrainer integraion build
gichan2-jang [Thu, 10 Aug 2023 02:13:58 +0000 (11:13 +0900)]
[Github Action] Add nntrainer integraion build

Add Github action for nntrainer intergration build.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
11 months ago[Converter/decoder] Support GRAY16 format
gichan2-jang [Tue, 22 Aug 2023 03:24:37 +0000 (12:24 +0900)]
[Converter/decoder] Support GRAY16 format

Support GRAY16 format for tnesor_converter and
tensor_decoder::direct_video.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
11 months ago[decoder] Fix yolov5 boundingbox dim check
Yongjoo Ahn [Mon, 21 Aug 2023 05:36:12 +0000 (14:36 +0900)]
[decoder] Fix yolov5 boundingbox dim check

- Let 0 dim value be acceptable for yolov5 decoder input's last values

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
11 months agomemleak fix: decoder/bounding-box 2
MyungJoo Ham [Fri, 18 Aug 2023 06:43:28 +0000 (15:43 +0900)]
memleak fix: decoder/bounding-box 2

data->anchors is allocated at every init call without freeing.

Fixes #4187

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agomemleak fix: decoder/bounding-box
MyungJoo Ham [Fri, 18 Aug 2023 05:26:25 +0000 (14:26 +0900)]
memleak fix: decoder/bounding-box

"results" is allocated in ```_get_objects_mp_palm_detection_``` macro.
Do not allocate it before calling it.

Fixes #4185

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agodist: force enable datarepo for Tizen/Ubuntu accepted/tizen/unified/20230818.183539
MyungJoo Ham [Mon, 14 Aug 2023 02:07:39 +0000 (11:07 +0900)]
dist: force enable datarepo for Tizen/Ubuntu

Force enable datarepo in Tizen/Ubuntu so that
we can prevent omitting it in the future accidently.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agodatarepo: clean up meson scripts
MyungJoo Ham [Mon, 14 Aug 2023 02:03:49 +0000 (11:03 +0900)]
datarepo: clean up meson scripts

1. Make it 'feature' so that it can be resolved automatically.
2. Because it has an additional dependency, don't make it default true.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months ago[tensor_trainer] Add stop function to GstTensorTrainerFramework
hyunil park [Thu, 3 Aug 2023 06:40:09 +0000 (15:40 +0900)]
[tensor_trainer] Add stop function to GstTensorTrainerFramework

tensor_trainer calls this to stop model training being performed in a sub-plugin,
currently running epoch is finished to the end and sub-plugin saves the model

- Add function to stop model training
- Add ready-to-complete property to tensor_trainer
  User should set when the training is ready to be completed and saved.

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
11 months agostyle: meson dep variable rule
MyungJoo Ham [Fri, 11 Aug 2023 10:01:18 +0000 (19:01 +0900)]
style: meson dep variable rule

- If it is in a dep-list, it should be a dep object. Results of find_program() is not a dep object. Fix it!
- If it is a dep-list, its name should end with 'deps', not 'dep'.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agoedge: update include style
MyungJoo Ham [Fri, 11 Aug 2023 09:50:46 +0000 (18:50 +0900)]
edge: update include style

nnstreamer-edge.h is from another package. Use <> instead of "".

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agotensor_query: nnstreamer-edge dependency fix
MyungJoo Ham [Thu, 10 Aug 2023 05:40:37 +0000 (14:40 +0900)]
tensor_query: nnstreamer-edge dependency fix

1. nnstreamer-edge.h is from another package. Use #include appropriately.
2. dependency on nnstreamer-edge is not expressed proprely in meson.

Potential issue: Android build w/ nnstreamer-edge might need further care in /jni

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agotest: script updated for better fault handling.
MyungJoo Ham [Tue, 3 May 2022 03:33:17 +0000 (12:33 +0900)]
test: script updated for better fault handling.

If the test is not available (e.g., numpy is not available or
the tested feature is not built), don't test.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months agofix: decoder/bounding-box mobilenet threshold logic
MyungJoo Ham [Wed, 9 Aug 2023 02:10:35 +0000 (11:10 +0900)]
fix: decoder/bounding-box mobilenet threshold logic

Let's not ignore labels that may have larger score after
the first label exceeding the threshold.

Fixes #4137

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
11 months ago[Edge] Add wait connection prop
gichan2-jang [Fri, 14 Jul 2023 02:16:26 +0000 (11:16 +0900)]
[Edge] Add wait connection prop

If wait-connection prop is set true, wait until edgesrc is connected and
don't drop the buffers.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
11 months ago[Tests] Update testcases to support 0-init dimension
Yelin Jeong [Mon, 12 Jun 2023 06:19:24 +0000 (15:19 +0900)]
[Tests] Update testcases to support 0-init dimension

This patch updates testcases to support dimension,
filled 0 by default.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
11 months ago[tensor] remove padded value of dimensions (0-init)
Yelin Jeong [Mon, 12 Jun 2023 06:14:24 +0000 (15:14 +0900)]
[tensor] remove padded value of dimensions (0-init)

This patch removes padded value of dimensions.
dimension in GstTensorInfo is 0 by default.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
12 months ago[Svace] fix svace issue accepted/tizen/unified/20230808.074017
Jaeyun Jung [Fri, 4 Aug 2023 05:57:02 +0000 (14:57 +0900)]
[Svace] fix svace issue

Code clean, fix svace issues.
1. prevent duplicated free case.
2. handle returned val when mapping incoming buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
12 months ago[Test/CodeClean] prevent duplicated free
Jaeyun Jung [Thu, 3 Aug 2023 12:47:40 +0000 (21:47 +0900)]
[Test/CodeClean] prevent duplicated free

Fix svace issue, set null to prevent duplicated free.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
12 months ago[tensor_trainer] Add load_model_path to GstTensorTrainerProperties
hyunil park [Thu, 27 Jul 2023 06:54:04 +0000 (15:54 +0900)]
[tensor_trainer] Add load_model_path to GstTensorTrainerProperties

- Add model_load_path to load an existing model to use for training a new model
- Add model_load_path property to tensor_trainer

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[datareposrc] Push GstBuffer according to framerate
hyunil park [Tue, 18 Jul 2023 01:01:11 +0000 (10:01 +0900)]
[datareposrc] Push GstBuffer according to framerate

datareposrc push GstBuffer according to framerate when sink element sets sync=true

- Set TIMESTAMP to GstBuffer
- Add function to calculate running_time for one frame

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[Documentation] Fix tizen reference link
seungha.son [Wed, 2 Aug 2023 10:28:52 +0000 (19:28 +0900)]
[Documentation] Fix tizen reference link

Tizen reference link has been changed and updated with the latest link.

 - How to install GBS : https://docs.tizen.org/platform/developing/installing/
 - How to build with GBS : https://docs.tizen.org/platform/developing/building/

Signed-off-by: seungha.son <linuxias@gmail.com>
12 months ago[Build/Tizen] allowed elements
Jaeyun Jung [Tue, 1 Aug 2023 11:45:03 +0000 (20:45 +0900)]
[Build/Tizen] allowed elements

Update allowed elements in tizen, clearly define the list of elements.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
12 months ago[Documentation] Remove some package related with tensorflow version 1.x
seungha.son [Mon, 31 Jul 2023 08:04:22 +0000 (17:04 +0900)]
[Documentation] Remove some package related with tensorflow version 1.x

 - Removed package : tensorflow-c-dev, tensorflow-lite-dev

Signed-off-by: seungha.son <linuxias@gmail.com>
12 months ago[Documentation] Add libjson-glib-dev package dependency
seungha.son [Thu, 27 Jul 2023 11:16:21 +0000 (20:16 +0900)]
[Documentation] Add libjson-glib-dev package dependency

 If there is no libjson-glib-dev package, occur meson build error below:

 Program sh found: YES (/usr/bin/sh)
 Run-time dependency json-glib-1.0 found: NO (tried pkgconfig and cmake)
 gst/datarepo/meson.build:7:0: ERROR: Dependency "json-glib-1.0" not found, tried pkgconfig and cmake

Signed-off-by: seungha.son <linuxias@gmail.com>
12 months ago[tensor_trainer] Add function to create a framework in the chain function
hyunil park [Fri, 14 Jul 2023 06:02:02 +0000 (15:02 +0900)]
[tensor_trainer] Add function to create a framework in the chain function

A pushed gstbuffer by some src-element(not datareposrc) is prerolled if set sync=true.
so, it needs to create a framework in the chain function
- Add function to create a framework in the chain function
- Modify code related g_cond_wait

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[GitHub Action] Fix MacOS build failure
gichan2-jang [Fri, 28 Jul 2023 02:05:31 +0000 (11:05 +0900)]
[GitHub Action] Fix MacOS build failure

Don't install gstreamer-plugins.

Warning messages:
```
Warning: Formula gst-plugins-base was renamed to gstreamer.
Warning: Formula gst-plugins-good was renamed to gstreamer.
```

Related issue: https://github.com/Homebrew/brew/issues/15488
Bug report from the issue:  There is technically a bug here in that the dependency collector doesn't recognise multiple renames into one formula as being a single formula, so it tries to install gstreamer multiple times.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
12 months ago[datarepo] Add function to read and write sparse tensors accepted/tizen/unified/20230727.173058
hyunil park [Mon, 10 Jul 2023 06:37:18 +0000 (15:37 +0900)]
[datarepo] Add function to read and write sparse tensors

- Add writing sparse tensors to datareposink
  To add memory to gstbuffer by number of sparse tensors when reading a sample in datareposrc,
  sample_offset, tensor_size, and tensor_count fields are added to the JSON file
- Add reading sparse tensors to datareposrc
  If the tensor format of JSON file is sparse, read a sample using the JSON meta information
  (sample_offset, tensor_size, tensor_count) and append memory to GstBuffer as many as the number
  of sparse tensors.
- Add unit test
- bug fix about shuffle index

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[tensor_region] fix memcpy to out buffer
HarshJ20 [Wed, 19 Jul 2023 05:41:15 +0000 (11:11 +0530)]
[tensor_region] fix memcpy to out buffer

    - fixed the out buffer pointer increment size while storing cropping info

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
12 months ago[datareposrc] Add function to read flexible tensors
hyunil park [Tue, 27 Jun 2023 04:13:41 +0000 (13:13 +0900)]
[datareposrc] Add function to read flexible tensors

- If the tensor format of the caps of the JSON file is flexible,
  Reads a sample using the flexible meta information (sample_offset, tensor_size, tensor_count)
  of the JSON file and appends memory to GstBuffer as many as the number of flexible tensors.
- Add unit test
- Add checking if it is a flexible tensor after writing data to GstMemory

- Reference
  * The start offset for reading is sample_offset(sample size).
  * Save each flexible tensor stored in a sample to a gstbuffer according to each
    tensor_size, tensor_size can get tensor_size field in JSON file.
  * A shuffled index is mapped to an index of sample_offset field in JSON file.
  * A shuffled index is also mapped to an index of tensor_count field in JSON file
  * The index value is a number of cumulative tensors, so it is mapped to an index
    of tensor_size field in JSON file

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[tensor_trainer] Apply NNS_TENSOR_SIZE_EXTRA_LIMIT and bug fix for flexible tensor...
hyunil park [Mon, 3 Jul 2023 05:14:29 +0000 (14:14 +0900)]
[tensor_trainer] Apply NNS_TENSOR_SIZE_EXTRA_LIMIT and bug fix for flexible tensor operation

- Apply NNS_TENSOR_SIZE_EXTRA_LIMIT
- Bug fix: remove invalid flexible header pointer
           remove buffer overflow related to the wrong tensor size
- Add check if tensor is flexible

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[test] Add testcases for mux/demx handling extra tensors
Yongjoo Ahn [Fri, 7 Jul 2023 09:32:26 +0000 (18:32 +0900)]
[test] Add testcases for mux/demx handling extra tensors

- Add a TC to test MAX extra tensors with tensor_mux
- Add a TC to test tensor_demux handling extra tensors

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
12 months ago[common] Let the util handles extra tensors input
Yongjoo Ahn [Fri, 7 Jul 2023 09:23:02 +0000 (18:23 +0900)]
[common] Let the util handles extra tensors input

- Let `gst_tensor_time_sync_buffer_from_colletpad` support extra tensors
  as its input

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
12 months ago[demux] Support extra tensors
Yongjoo Ahn [Fri, 7 Jul 2023 09:21:20 +0000 (18:21 +0900)]
[demux] Support extra tensors

- Let tensor_demux handle tensors # > 16

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
12 months ago[Common] macro to check valid meta
Jaeyun Jung [Fri, 7 Jul 2023 05:08:05 +0000 (14:08 +0900)]
[Common] macro to check valid meta

Reduce unnecessary logs, add macro to check valid meta.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
12 months ago[Demux] util functions to handle memories
Jaeyun Jung [Tue, 4 Jul 2023 10:04:51 +0000 (19:04 +0900)]
[Demux] util functions to handle memories

Update util functions to handle memories in gst-buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
12 months ago[test] Add testcases for filter_single with 32 in/out tensors model accepted/tizen/unified/20230710.013136 accepted/tizen/unified/20230713.014430 accepted/tizen/unified/dev/20230726.115939 accepted/tizen/unified/riscv/20230718.003657
Yongjoo Ahn [Mon, 19 Jun 2023 08:19:58 +0000 (17:19 +0900)]
[test] Add testcases for filter_single with 32 in/out tensors model

- Add TCs for invoke and get/set info

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
12 months ago[tensor_filter_single] Let single_invoke support extra tensors
Yongjoo Ahn [Mon, 19 Jun 2023 08:16:48 +0000 (17:16 +0900)]
[tensor_filter_single] Let single_invoke support extra tensors

- Extend the array length of out GstTensorMemory to support invoke of many in/out tensors model with filter_single

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
12 months ago[tensor_filter] Let tensor_filter_common handle extra tensors
Yongjoo Ahn [Mon, 19 Jun 2023 08:12:55 +0000 (17:12 +0900)]
[tensor_filter] Let tensor_filter_common handle extra tensors

- Extend array length for layout and ranks
- Replace accessing tensor_info with array index with util func `gst_tensors_info_get_nth_info`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
12 months ago[filter] Fix mem leak when set input/output info
Yongjoo Ahn [Mon, 19 Jun 2023 08:06:55 +0000 (17:06 +0900)]
[filter] Fix mem leak when set input/output info

- Add calls for `gst_tensors_info_free`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[Common] appending flexible tensor
Jaeyun Jung [Wed, 5 Jul 2023 10:38:23 +0000 (19:38 +0900)]
[Common] appending flexible tensor

Update util function to append flexible tensor into gst-buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Common] check mem size of flex tensor
Jaeyun Jung [Thu, 6 Jul 2023 03:31:12 +0000 (12:31 +0900)]
[Common] check mem size of flex tensor

Check memory size before parsing tensor-meta.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Spec] Remove armcl dependency
Sangjung Woo [Thu, 6 Jul 2023 01:32:23 +0000 (10:32 +0900)]
[Spec] Remove armcl dependency

This patch removes the armcl dependency from the Tizen packaging.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
13 months ago[Common] Add new API to get tensor format of current pad caps
hyunil park [Tue, 4 Jul 2023 01:56:08 +0000 (10:56 +0900)]
[Common] Add new API to get tensor format of current pad caps

- Add gst_tensor_pad_get_format()
- Replace gst_tensor_pad_caps_is_flexible() function to macro.
- Add gst_tensor_pad_caps_is_static and gst_tensor_pad_caps_is_sparse macro

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
13 months ago[DataRepo] handle error case
Jaeyun Jung [Tue, 4 Jul 2023 09:46:45 +0000 (18:46 +0900)]
[DataRepo] handle error case

Fix res leak case if gst-memory mapping is failed.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Common] change function name
Jaeyun Jung [Tue, 4 Jul 2023 09:52:07 +0000 (18:52 +0900)]
[Common] change function name

Change the name of common util function.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[TEST] CLANG format applied
HarshJ20 [Tue, 27 Jun 2023 10:42:00 +0000 (16:12 +0530)]
[TEST] CLANG format applied

    - CLANG format applied to unittest_tensor_region.cc
    - GTEST test case updated (error was: comparing unsigned with int)
    - Removed GMainLoop from unittest_tensor_region

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[TEST] file name changed unittest_tensorRegion
HarshJ20 [Tue, 27 Jun 2023 09:59:07 +0000 (15:29 +0530)]
[TEST] file name changed unittest_tensorRegion

    - unittest_tensorRegion changed to unittest_tensor_region
    - folder name changed from nnstreamer_decoder_tensorRegion to nnstreamer_decoder_tensor_region

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[TEST] SSAT based test case complete
HarshJ20 [Thu, 22 Jun 2023 06:54:17 +0000 (12:24 +0530)]
[TEST] SSAT based test case complete

    - removed unnecessary line from unittest_plugins
    - updated test pipeline in unittest_tensorRegion, runTest.sh and getCropInfo
    - tested all the python scripts, ssat test case script and unittest for tensor_region
    - Python Script for generating golden test results
    - Using tensor_filter's output for orange.png for testing to avoid uploading ssd_mobilenet_v2_coco.tflite model
    - changed Camel casing and update tests/meson.build

Signed-off-by: HarshJ20 <hjain24in@gmail.com>