| meta, | |
| handles-states=true, | |
| args = { | |
| "videotestsrc pattern=ball animation-mode=frames num-buffers=30 ! video/x-raw,framerate=10/1 ! $(videosink) name=sink sync=true", | |
| }, | |
| expected-issues = { | |
| [ | |
| expected-issue, | |
| level=critical, | |
| issue-id=scenario::execution-error, | |
| details="Pipeline position doesn.t match expectations got 0:00:00.100000000 instead of.*", | |
| ], | |
| [ | |
| expected-issue, | |
| level=critical, | |
| issue-id=scenario::execution-error, | |
| details="Pipeline position doesn.t match expectations got 0:00:00.200000000 instead of.*", | |
| ], | |
| } | |
| pause; | |
| foreach, n=[0, 2], | |
| actions = { | |
| [seek, start="$(position)+0.1", flags="accurate+flush"], | |
| [check-position, expected-position="expr($(n)*0.01)"], # expected to fail | |
| } | |
| priv_check-action-type-calls, type=seek, n=2 | |
| priv_check-action-type-calls, type=check-position, n=2 | |
| foreach, n=[0, 6], actions = { | |
| [seek, start="$(position)+0.1", flags="accurate+flush"], | |
| [check-position, expected-position="expr((3 + $(n)) * 0.1)"], | |
| } | |
| priv_check-action-type-calls, type=seek, n=8 | |
| priv_check-action-type-calls, type=check-position, n=8 | |
| check-position, expected-position=0.8 | |
| foreach, n=[9, 11], actions = { | |
| [seek, start="$(position)+0.1", flags="accurate+flush"], | |
| [check-position, expected-position="expr($(n)*0.1)"], | |
| } | |
| priv_check-action-type-calls, type=seek, n=10 | |
| # We called it once manually | |
| priv_check-action-type-calls, type=check-position, n=11 | |
| check-position, expected-position=1.0 | |
| stop |