summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2020-06-09 00:03:57 -0400
committerThibault Saunier <tsaunier@igalia.com>2020-06-17 10:48:41 -0400
commitc09de963be0fbfc1bc9f3e310421e64a22074b89 (patch)
tree9d58d026163994b0b748bba34da1731b0a8d0cc5 /tests
parentc217346fa01817e9e38612ff57eebfbb3cb0ae83 (diff)
ges: Refactor the way we plug converters in effects
Stopping to do it at the bin description level but properly plugging them where they are needed and cleanly ghosting the pads where it makes most sense. This introduces support for GES to request pads on the most upstream element in case no static pad can be ghosted. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/187>
Diffstat (limited to 'tests')
-rw-r--r--tests/check/meson.build3
-rw-r--r--tests/check/scenarios/complex_effect_bin_desc.validatetest24
-rw-r--r--tests/check/scenarios/complex_effect_bin_desc/flow-expectations/log-videosink-sink-expected9
3 files changed, 35 insertions, 1 deletions
diff --git a/tests/check/meson.build b/tests/check/meson.build
index 7c27bf35..b377cb1d 100644
--- a/tests/check/meson.build
+++ b/tests/check/meson.build
@@ -82,6 +82,7 @@ if gstvalidate_dep.found()
'seek_with_stop': true,
'seek_with_stop.check_clock_sync': true,
'edit_while_seeked_with_stop': true,
+ 'complex_effect_bin_desc': true,
}
foreach scenario, is_validatetest: scenarios
@@ -107,7 +108,7 @@ if gstvalidate_dep.found()
endif
if build_gir
- # Make sure to use the subproject gst-validate-launcher if avalaible.
+ # Make sure to use the subproject gst-validate-launcher if available.
if gstvalidate_dep.found() and gstvalidate_dep.type_name() == 'internal'
runtests = subproject('gst-devtools').get_variable('launcher')
else
diff --git a/tests/check/scenarios/complex_effect_bin_desc.validatetest b/tests/check/scenarios/complex_effect_bin_desc.validatetest
new file mode 100644
index 00000000..d9585445
--- /dev/null
+++ b/tests/check/scenarios/complex_effect_bin_desc.validatetest
@@ -0,0 +1,24 @@
+# Check that we can have effect with sources integrated where GES will request a pad on some elements
+# In that example, we are blending a green rectangle on top of a blue GESVideoTestSource using an effect
+meta,
+ tool = "ges-launch-$(gst_api_version)",
+ handles-states=true,
+ args = {
+ "--track-types", "video",
+ "--videosink", "$(videosink) name=videosink",
+ "--video-caps", "video/x-raw, format=I420, width=1280, height=720, framerate=30/1, chroma-site=jpeg, colorimetry=bt601",
+ },
+ configs = {
+ "$(validateflow), pad=videosink:sink, buffers-checksum=true, ignored-fields=\"stream-start={stream-id,group-id,stream}, segment={position,}\", ignored-event-types={gap}",
+ }
+
+
+add-clip, name=c0, asset-id=GESTestClip, layer-priority=0, type=GESTestClip, start=0, duration=0.1
+set-child-properties, element-name=c0, pattern=blue
+
+container-add-child,
+ container-name=c0,
+ asset-id="videotestsrc pattern=green ! video/x-raw,width=640,height=360 ! compositor sink_0::xpos=320 sink_0::ypos=180 sink_0::zorder=500",
+ child-type=GESEffect,
+ child-name=effect
+play \ No newline at end of file
diff --git a/tests/check/scenarios/complex_effect_bin_desc/flow-expectations/log-videosink-sink-expected b/tests/check/scenarios/complex_effect_bin_desc/flow-expectations/log-videosink-sink-expected
new file mode 100644
index 00000000..7541dda0
--- /dev/null
+++ b/tests/check/scenarios/complex_effect_bin_desc/flow-expectations/log-videosink-sink-expected
@@ -0,0 +1,9 @@
+event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE;
+event caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-site=(string)jpeg, colorimetry=(string)bt601;
+event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.100000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000
+buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.000000000, dur=0:00:00.033333333
+buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.033333333, dur=0:00:00.033333334
+buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.066666667, dur=0:00:00.033333333
+event segment: format=TIME, start=0:00:00.100000000, offset=0:00:00.000000000, stop=0:00:00.100000001, flags=0x01, time=0:00:00.100000000, base=0:00:00.100000000
+buffer: checksum=b4a126ab26f314a74ef860a9af457327a28d680b, pts=0:00:00.100000000, dur=0:00:00.000000001
+event eos: (no structure)