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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
HarshJ20 [Tue, 20 Jun 2023 06:12:04 +0000 (11:42 +0530)]
[TEST] Test case for tensor_decoder::tensor_region
- ssat based runTest.sh [incomplete]
- getCropInfo.py for viewing the data produces of orange.unittest_plugins
- gtest based test case in unittest_plugins with name TensorDecoder.TensorRegion [removed]
- temporary file removed
- Separate test unit for tensor_region
- included missing Doxygen tags
Signed-off-by: HarshJ20 <hjain24in@gmail.com>
Yongjoo Ahn [Wed, 5 Jul 2023 04:06:01 +0000 (13:06 +0900)]
[trivial] Fix nms in bounding_box decoder
- Skip nms when the size of given array is 0
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
Jaeyun Jung [Mon, 3 Jul 2023 07:57:31 +0000 (16:57 +0900)]
[Common] reconfigure gst-buffer with extra tensors
Handle extra tensors when reconfiguring the gst-buffer.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Jaeyun Jung [Mon, 3 Jul 2023 04:57:28 +0000 (13:57 +0900)]
[DataRepo] util to get data type
Add util function to get data type from caps.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
hyunil park [Tue, 20 Jun 2023 10:19:48 +0000 (19:19 +0900)]
[datareposink] Add function to write flexible tensors
- To add memory to gstbuffer by number of flexible tensors when read sample in datareposrc,
sample_offset, tensor_size, and tensor_count field are added to the JSON file
- Add unit test
- Reference
* If caps of sink pad is flexible, the input gstBuffer is saved as a flexible tensor
* The size of the input gstBuffer is stored as sample_offset field in JSON file and
it will be used when shuffle operation in datareposrc
* Each flexible tensor size is stored as tensor_size field in JSON file and
it will be used with gst_buffer_append_memory() in datareposrc
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
HarshJ20 [Thu, 29 Jun 2023 04:23:26 +0000 (09:53 +0530)]
[TEST] bounding_box test with config_file
- updated the runTest.sh for nnstreamer_decoder_bounding_box including the config-file property
Signed-off-by: HarshJ20 <hjain24in@gmail.com>
HarshJ20 [Tue, 27 Jun 2023 19:53:50 +0000 (01:23 +0530)]
[FEAT] Config file for properties
- Defined a module in nnstreamer_plugin_api_impl named gst_tensor_parse_config_file
- Used to install new property to specify Configuration file path
- example case included for tensor_decoder
- updated after build checkers failed for indentation
- Type specific setting of prop_value
Signed-off-by: HarshJ20 <hjain24in@gmail.com>
hyunil park [Thu, 29 Jun 2023 03:41:38 +0000 (12:41 +0900)]
[debian/rules] Add tests path of nnstreamer_datarepo to debian rules
Modify to run nnstreamer_datarepo tests
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
Wook Song [Tue, 27 Jun 2023 06:11:50 +0000 (15:11 +0900)]
Dist/Tizen: Fix a GBS build error due to #4007
This patch fixes a GBS build error caused by #4007 on the SNPE
sub-plugin for Tizen.
Signed-off-by: Wook Song <wook16.song@samsung.com>
Yongjoo Ahn [Tue, 27 Jun 2023 06:52:47 +0000 (15:52 +0900)]
[trivial] Fix log level warn -> info
- Decrease log level since the line is in proper scenario when the
num_tensors is exactly 16.
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
Jaeyun Jung [Tue, 27 Jun 2023 12:21:05 +0000 (21:21 +0900)]
[DataRepo] util to get nth info
Prepare extra tensors, use util function to get nth info.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Jaeyun Jung [Tue, 27 Jun 2023 10:20:33 +0000 (19:20 +0900)]
[DataRepo] enum of incoming data type
Define new enum of incoming data type for data-repo elements.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Jaeyun Jung [Tue, 27 Jun 2023 08:55:39 +0000 (17:55 +0900)]
[Common] magic number for flex-tensor
Add magic to tensor-meta, this indicates given memory block is flexible tensor.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Jaeyun Jung [Tue, 27 Jun 2023 03:25:02 +0000 (12:25 +0900)]
[Common] validate tensor-info
Param error case, validate tensor-info before appending new memory.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Jaeyun Jung [Mon, 26 Jun 2023 05:44:37 +0000 (14:44 +0900)]
[CodeClean] use util func for extra tensors
Code clean, remove unnecessary local val and use util function to handle extra tensors.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
gichan2-jang [Mon, 26 Jun 2023 06:34:40 +0000 (15:34 +0900)]
Revert "Filter/Meson: Move 'filter-snpe-list' to the build directory"
This reverts commit
2d6bc59653dab21bf1706d61a06c205c10583a92.
Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
gichan2-jang [Fri, 23 Jun 2023 04:58:36 +0000 (13:58 +0900)]
[tensor_crop] Push EOS event
Push eos event to src pad when collect pad is set to EOS state.
Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
SuYeon [Wed, 21 Jun 2023 06:51:14 +0000 (15:51 +0900)]
[Fix] fix svace issue.
Fix overflow before widen (distance value in 'g_array_set_size' func).
Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
SuYeon [Wed, 21 Jun 2023 03:42:23 +0000 (12:42 +0900)]
[Fix] fix svace issue.
Fix data type of distance value in 'g_array_set_size' (gint -> guint64)
Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
SuYeon [Fri, 16 Jun 2023 02:00:17 +0000 (11:00 +0900)]
[Fix] fix coverity & svace issues
Fix coverity issues.
- Fix resource leak (free 'dim_str' in '_custom_easy_filter_dynamic' function)
- Delete unused 'cIdx' value in 'g_array_sort' function.
- Fix 'g_strlcpy' return value and check fail to copy 'caps_str'.
Fix svace issue.
- Fix data type of distance value in 'g_array_set_size'(gint ->guint64)
Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
HarshJ20 [Fri, 16 Jun 2023 17:37:00 +0000 (23:07 +0530)]
Refactor tensor_region.c in regard to PR feedback
- fixed the name of parameter in gst_tensor_top_detectedObjects_cropInfo
- constified recommended pointer parameters and unconstified scalars
- Added SPDX identifier
- caps updated
Signed-off-by: HarshJ20 <hjain24in@gmail.com>
HarshJ20 [Fri, 16 Jun 2023 11:32:31 +0000 (17:02 +0530)]
Address feedback from PR#4115
- changed "finalize" function to "gst_tensor_top_detectedObjects_cropInfo"
- introduced new function "init_meta" to intialize flexible tensor header info for tensor_crop
- changed the string value in GstOutCaps for updating Caps info
- checked the resulting buffer's data with the intended result
Signed-off-by: HarshJ20 <hjain24in@gmail.com>
Harshj20 [Thu, 15 Jun 2023 03:42:37 +0000 (09:12 +0530)]
Tensor_region subplugin, currently supports mobilenet_ssd
- updated nnstreamer.mk for tensor_region.c
- A subplugin for tensor_decoder for providing cropping info to tensor-crop element
- Code cleaned, global scalability for supporting other models
- @brief tags added for init_modes, finalize, getOutCaps and nms functions
- pre-build for ubuntu passed
- newline added
- multi line comments properly configured
Signed-off-by: HarshJ20 <hjain24in@gmail.com>
Yongjoo Ahn [Tue, 13 Jun 2023 07:18:05 +0000 (16:18 +0900)]
[filter] Show deprecate message for tflite1 filter
- tflite1 is going to be dropped in Tizen image.
- Show deprecate warning message when the tflite1 subplugin is opened
and in build time.
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
Jaeyun Jung [Mon, 19 Jun 2023 04:41:59 +0000 (13:41 +0900)]
[Common] data size of extra tensor
Fix util function, getting tensor size of extra tensor.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Jaeyun Jung [Mon, 19 Jun 2023 04:38:42 +0000 (13:38 +0900)]
[Common/Doc] removed param
Update doc, delete unnecessary param. (It was removed from prev PR.)
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Yongjoo Ahn [Tue, 13 Jun 2023 06:28:07 +0000 (15:28 +0900)]
[common] Increase tensor_size_extra_limit to 240
- Making the total size limit to be 256 (16 + 240)
- TODO: Set NNS_TENSOR_SIZE as 256 and update other source codes
accordingly
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
Yongjoo Ahn [Tue, 13 Jun 2023 06:11:46 +0000 (15:11 +0900)]
[fix] Fix a source file using clang-format
- Apply clang-format-15 to the file `unittest_sink.cc`
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
Yongjoo Ahn [Tue, 13 Jun 2023 05:43:36 +0000 (14:43 +0900)]
[util] Fix the signature of gst_tensor_buffer_get_nth_meory
- Remove unused argument of GstTensorsInfo.
- Fix used lines.
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
Jaeyun Jung [Mon, 12 Jun 2023 07:12:01 +0000 (16:12 +0900)]
[Common] unnecessary mem-map calls
Code clean, reduce duplicated mem-map calls for extra tensor memory.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
gichan2-jang [Mon, 12 Jun 2023 05:50:08 +0000 (14:50 +0900)]
[Filter] Support dynamic invoke
- Support dynamic invoke
- dynamic invoke function is added for custom-easy filter.
- New custom callback and register function is added.
Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
Jaeyun Jung [Thu, 8 Jun 2023 07:28:15 +0000 (16:28 +0900)]
[CodeClean] util function for caps
Code clean, fix indent and use util function for gst-caps.
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Jaeyun Jung [Thu, 8 Jun 2023 08:38:14 +0000 (17:38 +0900)]
[CodeClean/RepoSink] unnecessary lines
Code clean, cleanup unnecessary lines.
- fix data type from gst-buffer
- handle error message
Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
Yelin Jeong [Wed, 7 Jun 2023 01:00:34 +0000 (10:00 +0900)]
[Common] fix tensor dimension compare util
This patch fixes `gst_tensor_dimension_is_equal`
and adds unittests.
Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>