gstreamer/subprojects/gst-plugins-base/tests/validate/giosrc/read-growing-file.validatetest

42 lines
1.7 KiB
Text

# Pipeline with 2 branches, the first one write random data into a file in $(growing_file_location).
# That branch is synchronized on the test clock that we drive in the scenario.
# The second branch reads it with giosrc and does some tests like waiting for the
# `done-waiting-signal` signals on the source etc...
#
# The whole dataflow is checked and we ensure that the exact same buffer content
# is read from the giosrc.
set-globals, growing_file_location="$(logsdir)/$(test_name)-growing.rand"
meta,
seek=false,
handles-states=false,
args = {
"fakesrc num-buffers=30 datarate=30 filltype=pattern-span sizetype=fixed filltype=random format=time ! filesink sync=true location=$(growing_file_location) name=filesink buffer-mode=unbuffered \
giosrc name=giosrc is-growing=true location=file://$(growing_file_location) ! fakesink name=growing-file-sink async=false" \
},
configs = {
"$(validateflow), pad=filesink:sink, record-buffers=true, ignored-fields=\"stream-start={stream-id,group-id,stream}\", buffers-checksum=as-id",
"$(validateflow), pad=growing-file-sink:sink, record-buffers=true, ignored-fields=\"stream-start={stream-id,group-id,stream}\", buffers-checksum=as-id",
}
crank-clock, repeat=5
wait, on-clock=true
wait, signal-name=waiting-data, target-element-name=giosrc
checkpoint
crank-clock, repeat=5
wait, on-clock=true
wait, signal-name=waiting-data, target-element-name=giosrc
wait, signal-name=done-waiting-data, target-element-name=giosrc, non-blocking=true
crank-clock, repeat=21
checkpoint
wait, signal-name=waiting-data, target-element-name=giosrc
checkpoint
# Make sure EOS is outputted now, the scenario will automatically quit on EOS
set-properties, giosrc::is_growing=false