And add a test for it Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5987>
62 lines
2.2 KiB
Plaintext
62 lines
2.2 KiB
Plaintext
meta,
|
|
tool = "ges-launch-$(gst_api_version)",
|
|
handles-states=true,
|
|
args = {
|
|
--track-types, video,
|
|
--videosink, "fakevideosink name=videosink sync=true",
|
|
--video-caps, "video/x-raw,format=I420,width=320,height=240,framerate=10/1",
|
|
}
|
|
|
|
remove-feature, name=queue
|
|
|
|
# Add two overlapping clips on different layers
|
|
add-clip, name=c0, asset-id="pattern=red", layer-priority=0, type=GESTestClip, start=0, duration=2.0
|
|
add-clip, name=c1, asset-id="pattern=blue", layer-priority=1, type=GESTestClip, start=0, duration=2.0
|
|
|
|
# Set initial properties for both clips
|
|
set-child-properties, element-name=c0, width=200, height=150, posx=0, posy=0, pattern=red
|
|
set-child-properties, element-name=c1, width=200, height=150, posx=120, posy=90, pattern=blue
|
|
|
|
play
|
|
crank-clock
|
|
wait, on-clock=true
|
|
|
|
# Now manually set zorder to reverse the stacking
|
|
# Make c0 appear on top by giving it a lower zorder value
|
|
set-child-properties, element-name=c0, zorder=1
|
|
set-child-properties, element-name=c1, zorder=2
|
|
|
|
# Verify the zorder values were set
|
|
check-child-properties, element-name=c0, zorder=1
|
|
check-child-properties, element-name=c1, zorder=2
|
|
|
|
# Test controllable aspect - set up keyframes for zorder
|
|
set-control-source, element-name=c0, property-name=zorder, binding-type=direct-absolute
|
|
set-control-source, element-name=c1, property-name=zorder, binding-type=direct-absolute
|
|
|
|
# At 1 second, swap the zorder values
|
|
add-keyframe, element-name=c0, timestamp=0.0, property-name=zorder, value=1
|
|
add-keyframe, element-name=c0, timestamp=1.0, property-name=zorder, value=2
|
|
add-keyframe, element-name=c1, timestamp=0.0, property-name=zorder, value=2
|
|
add-keyframe, element-name=c1, timestamp=1.0, property-name=zorder, value=1
|
|
|
|
crank-clock, repeat=8
|
|
wait, on-clock=true
|
|
|
|
# Should now be at 0.8 seconds
|
|
check-position, expected-position=0.8
|
|
check-properties,
|
|
gessmartmixer0-compositor.sink_0::zorder=2,
|
|
gessmartmixer0-compositor.sink_1::zorder=1
|
|
|
|
# Crank 3 more times to reach 1.1 seconds (past the 1.0s keyframe)
|
|
crank-clock, repeat=3
|
|
wait, on-clock=true
|
|
|
|
# Should now be at 1.1 seconds, verify the zorder values swapped after 1 second animation
|
|
check-properties,
|
|
gessmartmixer0-compositor.sink_0::zorder=2,
|
|
gessmartmixer0-compositor.sink_1::zorder=1
|
|
|
|
stop
|