+meta,
+ args = {
+ "appsrc name=src format=time handle-segment-change=true ! \
+ videorate max-closing-segment-duplication-duration=999999999999999 name=videorate ! video/x-raw,framerate=1/1 ! fakesink sync=true",
+ },
+ configs = {
+ "$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }",
+ "$(validateflow), pad=videorate:src, buffers-checksum=as-id, ignored-event-types={ tag }",
+ },
+ handles-states=true,
+ ignore-eos=true
+
+# Generate the raw video frame that we will used in the appsrc.
+run-command, argv={
+ "gst-validate-1.0", "videotestsrc num-buffers=1 ! video/x-raw,format=I420,framerate=1/1,width=320,height=240 ! filesink location=$(TMPDIR)/tmp.i420",
+}
+
+
+appsrc-push, target-element-name=src, file-name="$(TMPDIR)/tmp.i420", pts=0, duration=1.0,
+ caps=(GstCaps)[video/x-raw,format=I420,framerate=1/1,width=320,height=240],
+ segment=[segment, stop=3.0, format=(GstFormat)time]
+
+appsrc-push, target-element-name=src, file-name="$(TMPDIR)/tmp.i420", pts=1., duration=1.0,
+ caps=(GstCaps)[video/x-raw,format=I420,framerate=1/1,width=320,height=240],
+ segment=[segment, stop=3.0, format=(GstFormat)time]
+play
+
+crank-clock, repeat=1
+
+checkpoint, text="Setting caps but the videorate element will roll the caps back to push buffers to close the configured segment on EOS"
+set-properties, src::caps="video/x-raw,width=322,height=244,framerate=1/1"
+
+appsrc-eos, target-element-name=src
+crank-clock, repeat=3
+
+
+wait, message-type=eos
+
+# check-position, expected-position=2.0
+stop
+
+
+