gstreamer/subprojects/gst-integration-testsuites/ges/scenarios/check_reverse_source.validatetest
Thibault Saunier a342d14ba9 ges: Add support for sources reverse playback
It introduces a `reverse` property at the `nlesource` level which will
basically reverse playback of the clip.

We guarantee that outside that clip, the data flow looks like it was
playing forward as we add an 'identity' element with `single-segment=true`.

This start making use of the newly introduced concept of
`CHILD_PROP_FLAG_SET_ON_ALL_INSTANCES` as it is natural that
doing `source_clip.set_child_property("reverse", True)` will make
the whole clip go reverse, meaning that all the GESSource children
properties will be set. To set an individual source "reverse" child
property as the desired effect.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/24
Depends on: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/451

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/918>
2024-04-18 00:19:31 +00:00

26 lines
1.3 KiB
Plaintext

meta,
tool = "ges-launch-$(gst_api_version)",
args = {
--videosink, "fakevideosink name=videosink qos=false",
--audiosink, "fakeaudiosink name=audiosink qos=false",
--video-caps, "video/x-raw,width=1280,height=720,framerate=30/1,format=I420",
--audio-caps, "audio/x-raw,rate=44100,format=S32LE,channels=2,layout=interleaved",
},
handles-states = true,
ignore-eos = true,
configs = {
# We can't record buffers on sources as we have no timing guarantees
"$(validateflow), pad=videosrcbin:src, ignored-fields=\"stream-start={stream-id, group-id, stream}\"",
"$(validateflow), pad=videosink:sink, record-buffers=true, ignored-fields=\"stream-start={stream-id, group-id, stream}\"",
"$(validateflow), pad=audiosrcbin:src, ignored-fields=\"stream-start={stream-id, group-id, stream}\"",
"$(validateflow), pad=audiosink:sink, record-buffers=true, ignored-fields=\"stream-start={stream-id, group-id, stream}\"",
}
add-clip, name=c0, asset-id="time-overlay,disable-timecodestamper=true", layer-priority=0, type=GESTestClip, start=0, duration=1.0
set-child-properties, element-name=c0, pattern=blue, valignment=center, halignment=center, reverse=true
play
pause, on-message=eos
check-position, expected-position=1000000001
stop