summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
MyungJoo Ham [Thu, 7 Jun 2018 10:00:43 +0000 (19:00 +0900)]
[Filter/Main] Caps Negotiations Implemented
It appears that the simple test case of "videosrctest --> t_converter --> t_filter --> fakesink" works up to caps-negotiations & fixating caps.
Test Case:
gst-launch-1.0 -v --gst-debug=GST_CAPS:4 --gst-plugin-path=${PATH_TO_PLUGIN} videotestsrc num-buffers=1 ! video/x-raw,format=RGB,width=280,height=40,framerate=0/1 ! videoconvert ! video/x-raw, format=BGRx ! tensor_converter silent=FALSE ! tensor_filter debug=TRUE framework='tensorflow-lite' model='./nothing' input='4:280:40' inputtype='uint8' output='1' outputtype='uint8' ! filesink location="test.bgrx.log" sync=true
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 4 Jun 2018 12:19:57 +0000 (21:19 +0900)]
[Filter/Main] Restrict pad-caps when set-property gives enough information.
With dimension/type information is available via set-property,
restrict pad-caps accordingly before calling set-caps callbacks.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 12 Jun 2018 04:41:26 +0000 (13:41 +0900)]
[Documentation] How to write test cases
1. How to write gst-launch based test cases
2. How to write gtest based test cases
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 7 Jun 2018 11:15:05 +0000 (20:15 +0900)]
[Converter] Fix non-in-place (memcpy mode) and add test case for it.
Non inplace mode (memcpy mode) is fixed and tested.
Testcase 03 for converter tests memcpy mode.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 5 Jun 2018 08:58:28 +0000 (17:58 +0900)]
[Common] Commonize default pad-caps for other/tensor
We may be changing the default pad-caps for other/tensor later.
Make it refer to the same code.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
jijoong.moon [Tue, 5 Jun 2018 08:51:48 +0000 (17:51 +0900)]
[Bug Fix] Using memmove for in-place calculation
Sometimes there is undefined behavior when the source and destination overlaped.
In this case, we have to use memmove to handle overlapping regions.
Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
MyungJoo Ham [Fri, 1 Jun 2018 04:46:27 +0000 (13:46 +0900)]
[Filter/Custom] Custom tensor postprocessing support
NN developers may define their own custom tensor operations
in the format given byu tensor_common to let NNStreamer
do any custom operations on the tensor stream.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 31 May 2018 11:54:34 +0000 (20:54 +0900)]
[Filter/Main] Parse all properties.
1. Complete property parsing code
2. Did a little bit of refactoring & doxygen entry filling
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 4 Jun 2018 05:09:50 +0000 (14:09 +0900)]
[Unittest] Enable unittest coverage anaysis
Use TAOS-CI to generate unittest coverage analysis html pages.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 31 May 2018 11:49:14 +0000 (20:49 +0900)]
[Common] Add dimension property parsing API
Let's use dimension parsing API in tensor_filter
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 31 May 2018 08:32:26 +0000 (17:32 +0900)]
[Common] Add get_tensor_type, find_key_strv internal API.
1. Added get_tensor_type API for plugins to parse properties
2. Added unittest cases.
get_tensor_type may be implemented with find_key_strv, but, let's
use this "faster" for type property finder.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 31 May 2018 10:03:47 +0000 (19:03 +0900)]
[Filter] Add more property processing
1. Filter/Main: add property handling for more properites
2. Filter/TF-Lite: updated callback definitions
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 24 May 2018 02:19:56 +0000 (11:19 +0900)]
[Convert] Support RSTRIDE = RU4 Cases (RGB && width%4>0)
Most (if not all) video/x-raw formats align data with 4-bytes for each
image row.
E.g., if image width = 642 and colorspace = RGB, video/x-raw adds
two zero-bytes for each row's end.
The tensor array should not have such zero-padding; thus
this commit supports zero-padding removal.
However, such operation costs one additional full memcpy; thus,
having such stream input must be discouraged.
This commit includes:
1. Support zero-padding removal
2. Added warnings when zero-paddings exists in the source streams.
Fixes #7
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 31 May 2018 02:18:29 +0000 (11:18 +0900)]
[DIST] Support Tizen's GST Extra Plugins
This requires https://review.tizen.org/gerrit/#/c/180570/ be merged and SR'ed by Tizen Team.
Then, we will be able to run unit tests in Tizen infrastructure.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 29 May 2018 02:35:49 +0000 (11:35 +0900)]
[Convert] Use common header. Remove redundant content
Use <tensor_common.h> for common data types.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Fri, 1 Jun 2018 01:12:05 +0000 (10:12 +0900)]
[README] Update contents
Updated readme contents with recent status.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 29 May 2018 04:22:22 +0000 (13:22 +0900)]
[Build] Enforce -Wall / -Werror
Let's not tolerate compiler warnings in this project from now on.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 29 May 2018 04:54:46 +0000 (13:54 +0900)]
[Common] Fix build errors
Somehow I've missed build errors between PRs
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 29 May 2018 03:51:12 +0000 (12:51 +0900)]
[Filter/Main] Revise data type for NNFW plugins
- Add input/output dimension get methods
- Add NNFW plugin private data
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 29 May 2018 02:27:24 +0000 (11:27 +0900)]
[Filter/Main] Fill in get/set property functions
Fill in get/set property functions so that we can use tensor_filter from gst apps
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 29 May 2018 01:33:42 +0000 (10:33 +0900)]
[DIST] Revise .spec and licenses
Add license files and have manifest files installed.
Add defattr as well.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 29 May 2018 01:19:49 +0000 (10:19 +0900)]
[DIST] Skip testcase generation in Tizen GBS/OBS.
Testcase Generation of Tensor_Converter requires PIL and TK, which are removed from Tizen and I do not want to add them just for unit testing.
Note that in order to pass unit tests, we need #14 merged.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 24 May 2018 12:01:32 +0000 (21:01 +0900)]
[Filter/Main] Skeleton/Draft Code Template Added
This is the starting point for tensor_filter/main.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 17 May 2018 11:09:45 +0000 (20:09 +0900)]
[Convert] Add test cases based on randomly generated PNG files
1. Test more input sources
2. Test with offset case
3. Added doxygen entries
(Updated with test case 2 fix for the cases where width % 4 > 0)
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Fri, 25 May 2018 06:08:42 +0000 (15:08 +0900)]
[Source] Add directory and README.
A new element for NNStreamer is drafted in the architecture document.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 28 May 2018 06:54:07 +0000 (15:54 +0900)]
[Filter] Add Readme entry for developers.
Basic requirements for tensor_filter component are described.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 23 May 2018 07:36:24 +0000 (16:36 +0900)]
[DIST] Add .spec for gbs/obs builds
Added .spec / .manifest for gbs/obs builds
Fixes #10
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Fri, 25 May 2018 05:27:28 +0000 (14:27 +0900)]
[CI] Update codeowners
Add more people as reviewers.
No per-module policy. (we don't need it yet.)
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
jijoong.moon [Fri, 25 May 2018 02:40:34 +0000 (11:40 +0900)]
Add CMakeLists.txt for gst_examples
For convience, CMakeLists.txt is added in gst_example.
Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
MyungJoo Ham [Wed, 23 May 2018 11:05:48 +0000 (20:05 +0900)]
[Build] Make a central CMake file for all plugins
Let's build from a single point. This make it faster to build as well as having the common configuration across all the plugins.
Fixes #19
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 23 May 2018 10:19:25 +0000 (19:19 +0900)]
[Common] Add a common header
This commit only declares the new "common header".
We need to modify tensor_converter to use this common header later
after merging the pending PRs (#12, #13, #14, #15, #17).
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 23 May 2018 03:20:10 +0000 (12:20 +0900)]
Add subdirectories for all designed components.
Added according to http://suprem.sec.samsung.net/confluence/display/STAR/NNStreamer+Interface+Internal+Draft+1803B
Fixes #11
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 23 May 2018 02:39:53 +0000 (11:39 +0900)]
[Convert] Rename convert2tensor to tensor_converter
Renamed the module according to the architecture design.
http://suprem.sec.samsung.net/confluence/display/STAR/NNStreamer+Interface+Internal+Draft+1803B
Fixes #11
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 24 May 2018 07:41:37 +0000 (16:41 +0900)]
[CI] Add CodeOwners Entries
Initial codeowner entries for nnstreamer.
We need to fill this in with more people and directories as we progress.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 23 May 2018 10:11:16 +0000 (19:11 +0900)]
[Convert] Add some doxygen entries
Add doxygen entires especially on the data structures sharable to other elements.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Fri, 18 May 2018 01:28:15 +0000 (10:28 +0900)]
[README] Add basic contents for README
Objectives, Components, How-to-* entries are added.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 14 May 2018 08:28:08 +0000 (17:28 +0900)]
[Convert] Support BGRx format for video.
Support BGRx in additional to RGB format.
How to test:
$ gst-launch-1.0 --gst-plugin-path=/source/AutoDrv/NNStreamer/convert2tensor/build videotestsrc ! video/x-raw,format=RGB,width=280,height=40,framerate=1/1 ! tee name=t ! queue ! videoconvert ! video/x-raw, format=BGRx ! convert2tensor ! filesink location="test.bgrx.log" sync=true t. ! queue ! filesink location="test.rgb.log" sync=true
If the resulting test.rgb.log has rgb format and test.bgrx.log has bgrx format, then it's good to go.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 17 May 2018 09:11:40 +0000 (18:11 +0900)]
[Convert] Add test case with videosrctest
TODO: Add png based test, which fails with the current code (we need to fix it!)
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 2 Apr 2018 07:24:06 +0000 (16:24 +0900)]
[Convert] Tested and fixed with videotestsrc
This is not an issue. Don't be alarmed.
- Regardless of videotestsrc framerate, convert2tensor gives ~1000 FPS outputs.
. This happens when a sink-element attached at the src-pad of this element is not synching. Add sync option to the sink element.
How-to-test:
$ gst-launch-1.0 --gst-plugin-path=/PATH_TO_BUILT_SO videotestsrc ! video/x-raw,width=280,height=40,framerate=1/1 ! convert2tensor ! filesink location="test.log" sync=true
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 29 Mar 2018 08:01:16 +0000 (17:01 +0900)]
[Convert] Implement two negotiation methods.
Implement transform_caps / fixate_caps referring gstvideoconvert.c
set_caps() will be implemented tomorrow.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 29 Mar 2018 02:33:30 +0000 (11:33 +0900)]
[Convert] Apply x-raw/RGB format data structure.
Data of x-raw/RGB is:
[height][width][RGB] and width has padding with stride = 4.
Thus, tensor output of convert2tensor generates width = 4 x N with zero-padding.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 28 Mar 2018 06:38:24 +0000 (15:38 +0900)]
[Convert] Implement Processing part from the document
From the document, https://gstreamer.freedesktop.org/documentation/design/element-transform.html
implement "Processing" part.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 28 Mar 2018 02:03:25 +0000 (11:03 +0900)]
[Convert] Added skeletons for GstBaseTransform class
Added null impementation of virtual methods of GstBaseTransform
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Wed, 28 Mar 2018 01:44:59 +0000 (10:44 +0900)]
[Convert] Change base class from "GstElement" to "GstBaseTransform"
Let's use more advanced infrastructure, "GstBaseTranform".
Convert2Tensor is a transformer!
https://gstreamer.freedesktop.org/documentation/design/element-transform.html
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 27 Mar 2018 10:46:36 +0000 (19:46 +0900)]
[Converter] Get tensor metadata from sinkpad when it is created.
Sinkpad is created when a source element is attached to this filter (convert2filter).
Convert2filter becomes aware of its metadata (dimensions of tensor) at this point.
Thus, configure the metadata with the event handler.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Tue, 27 Mar 2018 07:59:32 +0000 (16:59 +0900)]
[Converter] Converter Core Function Located
Fill in gst_convert2tensor_sink_event to convert media data to tensors.
GST Tensor is to be defined with gst_convert2tensor_configure_tensor
Build Tested.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 26 Mar 2018 12:39:29 +0000 (21:39 +0900)]
[Converter] GST Plugin Tutorial 1 (Boilerplate) Followed.
Standard Tensor Media Type Draft Applied as well.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 26 Mar 2018 11:44:34 +0000 (20:44 +0900)]
[Converter] GST Plugin Template Created
An empty template for GST Plugin, "Convert2Tensor".
1. This is to draft & verify "other/tensor" GST type design.
2. Then, this will work as converter from media sources for NN filters.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 26 Mar 2018 11:43:48 +0000 (20:43 +0900)]
[Gst Example] tutorial-8
GST Official Tutorial 8
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Mon, 26 Mar 2018 04:54:36 +0000 (13:54 +0900)]
[Gst Example] tutorial-6 and 7
Added tutorial 6 and 7
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 22 Mar 2018 09:46:49 +0000 (18:46 +0900)]
[Gst Example] tutorial-3 and 3-exercise
Dynamic stream construction.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 22 Mar 2018 04:56:23 +0000 (13:56 +0900)]
[Gst Exmaple] tutorial 2 and 2 + add-filter exercise
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 22 Mar 2018 04:55:48 +0000 (13:55 +0900)]
Fix typo in the tutorial example with the address
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MyungJoo Ham [Thu, 22 Mar 2018 02:06:43 +0000 (11:06 +0900)]
[Gst Example] tutorial 1
Learning https://gstreamer.freedesktop.org/documentation/tutorials/basic/hello-world.html
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
함명주/동작제어Lab(SR)/Principal Engineer/삼성전자 [Thu, 22 Mar 2018 02:02:26 +0000 (11:02 +0900)]
Initial commit