summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVivek R <123vivekr@gmail.com>2020-05-24 23:37:25 +0530
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-09-22 20:19:10 +0000
commitd28f11998deadc8036bb63aa5bdc80beb1a9fbe4 (patch)
tree8df94bab968ea68e9020121360476ed0f5d461e0 /tests
parent3764a1617d168e53126c727595e63c9b2a9f8cea (diff)
downloadgstreamer-plugins-bad-d28f11998deadc8036bb63aa5bdc80beb1a9fbe4.tar.gz
opencv: add cvtracker plugin
This adds an object tracker plugin. Tracker implementations from https://docs.opencv.org/3.4/d0/d0a/classcv_1_1Tracker.html Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
Diffstat (limited to 'tests')
-rw-r--r--tests/meson.build1
-rw-r--r--tests/validate/meson.build29
-rw-r--r--tests/validate/opencv/cvtracker.validatetest8
-rw-r--r--tests/validate/opencv/cvtracker/flow-expectations/log-tracker-src-expected94
4 files changed, 132 insertions, 0 deletions
diff --git a/tests/meson.build b/tests/meson.build
index 145551993..3364f7ba6 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,6 +1,7 @@
if not get_option('tests').disabled() and gstcheck_dep.found()
subdir('check')
subdir('icles')
+ subdir('validate')
endif
if not get_option('examples').disabled()
subdir('examples')
diff --git a/tests/validate/meson.build b/tests/validate/meson.build
new file mode 100644
index 000000000..fd154e3ea
--- /dev/null
+++ b/tests/validate/meson.build
@@ -0,0 +1,29 @@
+gst_tester = find_program('gst-tester-@0@'.format(api_version), required: get_option('tests'))
+if not gst_tester.found()
+ subdir_done()
+endif
+
+tests = [
+ 'opencv/cvtracker'
+]
+
+env = environment()
+env.set('GST_PLUGIN_PATH_1_0', meson.build_root(), pluginsdirs)
+env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
+env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), 'validate'))
+env.set('GST_PLUGIN_SCANNER_1_0', gst_plugin_scanner_path)
+env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer', 'gst-validate', 'gst-plugins-base',
+ 'gst-plugins-bad@' + meson.build_root())
+
+foreach t: tests
+ test_dir_name = t.split('/')
+ test_name = 'validate'
+ foreach c: test_dir_name
+ test_name += '.' + c
+ endforeach
+ test_env = env
+ test_env.set('GST_VALIDATE_LOGSDIR', join_paths(meson.current_build_dir(), test_name))
+ test_file = join_paths(meson.current_source_dir(), t + '.validatetest')
+ test(test_name, gst_tester, args: [test_file, '--use-fakesinks'],
+ env: test_env, timeout : 3 * 60, protocol: 'tap')
+endforeach
diff --git a/tests/validate/opencv/cvtracker.validatetest b/tests/validate/opencv/cvtracker.validatetest
new file mode 100644
index 000000000..7005200fc
--- /dev/null
+++ b/tests/validate/opencv/cvtracker.validatetest
@@ -0,0 +1,8 @@
+meta,
+ args = {
+ "videotestsrc pattern=ball animation-mode=frames num-buffers=90 ! video/x-raw,framerate=30/1,width=320,height=240 ! cvtracker name=tracker object-initial-x=135 object-initial-y=95 object-initial-width=50 object-initial-height=50 algorithm=1 ! videoconvert ! $(videosink) sync=true",
+ },
+ configs = {
+ "$(validateflow), pad=tracker:src, record-buffers=true",
+ }
+crank-clock, repeat=91 \ No newline at end of file
diff --git a/tests/validate/opencv/cvtracker/flow-expectations/log-tracker-src-expected b/tests/validate/opencv/cvtracker/flow-expectations/log-tracker-src-expected
new file mode 100644
index 000000000..4c8a4dab0
--- /dev/null
+++ b/tests/validate/opencv/cvtracker/flow-expectations/log-tracker-src-expected
@@ -0,0 +1,94 @@
+event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
+event caps: video/x-raw, format=(string)RGB, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
+event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
+buffer: pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont, meta=GstVideoMeta
+buffer: pts=0:00:00.033333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=139, y=99, width=50, height=50]
+buffer: pts=0:00:00.066666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=144, y=104, width=49, height=49]
+buffer: pts=0:00:00.100000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=149, y=108, width=50, height=50]
+buffer: pts=0:00:00.133333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=153, y=113, width=49, height=49]
+buffer: pts=0:00:00.166666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=157, y=117, width=50, height=50]
+buffer: pts=0:00:00.200000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=161, y=121, width=50, height=50]
+buffer: pts=0:00:00.233333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=166, y=126, width=49, height=49]
+buffer: pts=0:00:00.266666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=171, y=130, width=49, height=49]
+buffer: pts=0:00:00.300000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=175, y=135, width=48, height=48]
+buffer: pts=0:00:00.333333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=179, y=138, width=49, height=49]
+buffer: pts=0:00:00.366666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=183, y=142, width=50, height=50]
+buffer: pts=0:00:00.400000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=187, y=146, width=49, height=49]
+buffer: pts=0:00:00.433333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=191, y=150, width=50, height=50]
+buffer: pts=0:00:00.466666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=194, y=153, width=50, height=50]
+buffer: pts=0:00:00.500000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=199, y=157, width=49, height=49]
+buffer: pts=0:00:00.533333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=202, y=160, width=50, height=50]
+buffer: pts=0:00:00.566666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=206, y=163, width=50, height=50]
+buffer: pts=0:00:00.600000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=210, y=166, width=50, height=50]
+buffer: pts=0:00:00.633333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=214, y=170, width=49, height=49]
+buffer: pts=0:00:00.666666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=218, y=173, width=49, height=49]
+buffer: pts=0:00:00.700000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=221, y=176, width=50, height=50]
+buffer: pts=0:00:00.733333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=223, y=178, width=51, height=51]
+buffer: pts=0:00:00.766666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=228, y=179, width=50, height=50]
+buffer: pts=0:00:00.800000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=231, y=183, width=49, height=49]
+buffer: pts=0:00:00.833333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=235, y=185, width=50, height=50]
+buffer: pts=0:00:00.866666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=237, y=186, width=50, height=50]
+buffer: pts=0:00:00.900000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=240, y=188, width=49, height=49]
+buffer: pts=0:00:00.933333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=243, y=190, width=50, height=50]
+buffer: pts=0:00:00.966666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=246, y=191, width=49, height=49]
+buffer: pts=0:00:01.000000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=249, y=192, width=50, height=50]
+buffer: pts=0:00:01.033333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=251, y=193, width=49, height=49]
+buffer: pts=0:00:01.066666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=254, y=194, width=49, height=49]
+buffer: pts=0:00:01.100000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=257, y=195, width=49, height=49]
+buffer: pts=0:00:01.133333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=258, y=195, width=50, height=50]
+buffer: pts=0:00:01.166666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=260, y=194, width=50, height=50]
+buffer: pts=0:00:01.200000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=261, y=195, width=49, height=49]
+buffer: pts=0:00:01.233333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=265, y=195, width=49, height=49]
+buffer: pts=0:00:01.266666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=265, y=195, width=50, height=50]
+buffer: pts=0:00:01.300000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=267, y=194, width=49, height=49]
+buffer: pts=0:00:01.333333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=268, y=193, width=50, height=50]
+buffer: pts=0:00:01.366666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=269, y=191, width=50, height=50]
+buffer: pts=0:00:01.400000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=271, y=191, width=49, height=49]
+buffer: pts=0:00:01.433333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=272, y=190, width=49, height=49]
+buffer: pts=0:00:01.466666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=274, y=188, width=49, height=49]
+buffer: pts=0:00:01.500000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=273, y=186, width=50, height=50]
+buffer: pts=0:00:01.533333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=274, y=184, width=49, height=49]
+buffer: pts=0:00:01.566666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=274, y=182, width=50, height=50]
+buffer: pts=0:00:01.600000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=275, y=179, width=49, height=49]
+buffer: pts=0:00:01.633333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=275, y=178, width=49, height=49]
+buffer: pts=0:00:01.666666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=275, y=175, width=50, height=50]
+buffer: pts=0:00:01.700000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=275, y=172, width=49, height=49]
+buffer: pts=0:00:01.733333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=275, y=169, width=49, height=49]
+buffer: pts=0:00:01.766666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=276, y=166, width=49, height=49]
+buffer: pts=0:00:01.800000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=274, y=164, width=49, height=49]
+buffer: pts=0:00:01.833333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=274, y=159, width=50, height=50]
+buffer: pts=0:00:01.866666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=273, y=155, width=50, height=50]
+buffer: pts=0:00:01.900000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=272, y=152, width=50, height=50]
+buffer: pts=0:00:01.933333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=271, y=148, width=50, height=50]
+buffer: pts=0:00:01.966666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=270, y=145, width=49, height=49]
+buffer: pts=0:00:02.000000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=269, y=141, width=49, height=49]
+buffer: pts=0:00:02.033333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=267, y=137, width=50, height=50]
+buffer: pts=0:00:02.066666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=265, y=133, width=49, height=49]
+buffer: pts=0:00:02.100000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=265, y=129, width=49, height=49]
+buffer: pts=0:00:02.133333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=262, y=125, width=49, height=49]
+buffer: pts=0:00:02.166666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=260, y=120, width=50, height=50]
+buffer: pts=0:00:02.200000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=258, y=116, width=49, height=49]
+buffer: pts=0:00:02.233333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=255, y=111, width=50, height=50]
+buffer: pts=0:00:02.266666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=253, y=107, width=49, height=49]
+buffer: pts=0:00:02.300000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=252, y=103, width=50, height=50]
+buffer: pts=0:00:02.333333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=248, y=98, width=49, height=49]
+buffer: pts=0:00:02.366666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=246, y=94, width=50, height=50]
+buffer: pts=0:00:02.400000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=243, y=89, width=49, height=49]
+buffer: pts=0:00:02.433333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=241, y=85, width=49, height=49]
+buffer: pts=0:00:02.466666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=237, y=81, width=49, height=49]
+buffer: pts=0:00:02.500000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=235, y=77, width=50, height=50]
+buffer: pts=0:00:02.533333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=231, y=72, width=49, height=49]
+buffer: pts=0:00:02.566666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=228, y=68, width=49, height=49]
+buffer: pts=0:00:02.600000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=225, y=63, width=50, height=50]
+buffer: pts=0:00:02.633333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=221, y=59, width=49, height=49]
+buffer: pts=0:00:02.666666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=218, y=55, width=49, height=49]
+buffer: pts=0:00:02.700000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=214, y=51, width=50, height=50]
+buffer: pts=0:00:02.733333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=210, y=47, width=49, height=49]
+buffer: pts=0:00:02.766666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=207, y=43, width=49, height=49]
+buffer: pts=0:00:02.800000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=203, y=40, width=50, height=50]
+buffer: pts=0:00:02.833333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=199, y=36, width=49, height=49]
+buffer: pts=0:00:02.866666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=195, y=33, width=49, height=49]
+buffer: pts=0:00:02.900000000, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=191, y=29, width=49, height=49]
+buffer: pts=0:00:02.933333333, dur=0:00:00.033333333, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=188, y=26, width=49, height=49]
+buffer: pts=0:00:02.966666666, dur=0:00:00.033333334, meta=GstVideoMeta, GstVideoRegionOfInterestMeta[x=182, y=22, width=50, height=50]
+event eos: (no structure)