This also adds the notion of global variables which will be useable
in config files too.
And add some documentation about default variables in scenarios
Meaning that instead of getting 1 "Detected on" line per monitor,
there will be one per "branch" like:
Detected on <audioconvert1:sink, audioconvert1:src, audioresample1:sink, audioresample1:src, smart-adder-adder:sink_0, smart-adder-adder:src, smart-adder-capsfilter:sink, smart-adder-capsfilter:src, capsfilter2:sink, capsfilter2:src, tee1:sink, tee1:src_0>
Making it simpler to read and a bit less verbose.
The action is generally useful but was implemented in a way that
was restricting its usage for no good reason. Refactor the
implementation adding more argument so it can be used in a wider
context, such as uvch264src.
Something like:
``` bash
echo "video-request-key-unit, direction=upstream, all-header=true, count=1, target-element-factory-name=h264parse, srcpad=src, playback-time=1.0" > tmp.scenario && \
echo "stop,playback-time=2.0" >> tmp.scenario && \
gst-validate-1.0 --set-scenario=tmp.scenario uvch264src \
device=/dev/video0 name=src iframe-period=33 auto-start=true src.vfsrc ! queue ! fakesink \
src.vidsrc ! queue ! video/x-h264,width=1280,height=720,framerate=30/1 ! h264parse ! fakesink
```
works now.
This means we can use some newer features and get rid of some
boilerplate code using the G_DECLARE_* macros.
As discussed on IRC, 2.44 is old enough by now to start depending on it.
So it can be used directly in the documentation Also add a special "all"
argument to `gst-validate-1.0 --inspect-action-type` so we can generate
the documentation for all action types easily.
_Q_VALIDATE_MONITOR was defined twice because it wasn't declared
as extern in the header, so it would be defined as variable in all
included files. This doesn't seem to cause problems on Linux, but
seems to cause build failures on macOS.
Fixes#42
Otherwise test suites that want to set_default_blacklist and
add tests in setup_tests were seeing their blacklist ignored.
Split up and rename set_blacklists() to complete the refactoring