platform/upstream/gstreamer.git
4 years agovalidate: Add missing return func when GLib < 2.50
Thibault Saunier [Wed, 27 May 2020 23:35:26 +0000 (19:35 -0400)]
validate: Add missing return func when GLib < 2.50

CID 1463854

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/200>

4 years agovalidate: Update documentation
Thibault Saunier [Wed, 27 May 2020 03:25:48 +0000 (23:25 -0400)]
validate: Update documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/200>

4 years agovalidateflow: Add a way to configure when to generate expectations
Thibault Saunier [Tue, 5 May 2020 22:09:08 +0000 (18:09 -0400)]
validateflow: Add a way to configure when to generate expectations

By default, generate them whenever the file is missing but adding a way
to override that with `validateflow,generate-expectations=true` to force
regenerating them or setting `validateflow,generate-expectations=false`
to disallow generating them (on CI servers for example)

Also update the validateflow documentation to take that into account
and remove references to pipeline.json file which is now gone!

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/200>

4 years agoscenario: Minor cleanup around pipeline change state management
Thibault Saunier [Thu, 14 May 2020 23:22:18 +0000 (19:22 -0400)]
scenario: Minor cleanup around pipeline change state management

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/198>

4 years agoscenario: Mark seek as done only when reaching next state
Thibault Saunier [Thu, 14 May 2020 22:45:11 +0000 (18:45 -0400)]
scenario: Mark seek as done only when reaching next state

There is a race where following actions could generate a
flush-start/flush-stop dance but the state change resulting from the
seek hasn't been committed yet, leading to the ASYNC_START being
ignored by GstBin since its pending_state is not VOID when receiving
the ASYNC_START message.

Conceptually it is totally correct to consider an action done when
the state change of the pipeline is stabilized..

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/198>

4 years agovalidate:launcher: Stop wrongly erroring on testsuite loading failure
Thibault Saunier [Tue, 26 May 2020 19:55:55 +0000 (15:55 -0400)]
validate:launcher: Stop wrongly erroring on testsuite loading failure

When the testsuite was actually already loaded as the .py
file was explicitly passed in

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197>

4 years agovalidate: Fix loading configs from a caps
Thibault Saunier [Tue, 26 May 2020 19:53:47 +0000 (15:53 -0400)]
validate: Fix loading configs from a caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197>

4 years agoflow: Use bat to color diffs when possible
Thibault Saunier [Sat, 23 May 2020 04:38:32 +0000 (00:38 -0400)]
flow: Use bat to color diffs when possible

Adding a function to check if can output colored logs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197>

4 years agolauncher: check: Properly set PLUGIN_PATH and registry when running in gst-build
Thibault Saunier [Fri, 15 May 2020 15:27:12 +0000 (11:27 -0400)]
launcher: check: Properly set PLUGIN_PATH and registry when running in gst-build

This makes registry

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197>

4 years agolauncher: Ensure that -j tests run in parallel when running forever
Thibault Saunier [Wed, 13 May 2020 22:25:00 +0000 (18:25 -0400)]
launcher: Ensure that -j tests run in parallel when running forever

So that you can reproduce the issue you want faster!

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197>

4 years agodocs: Update gst-validate-launcher documentation
Thibault Saunier [Tue, 12 May 2020 13:26:40 +0000 (09:26 -0400)]
docs: Update gst-validate-launcher documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197>

4 years agolauncher: Add support for running tests inside rr
Thibault Saunier [Tue, 10 Mar 2020 14:52:35 +0000 (11:52 -0300)]
launcher: Add support for running tests inside rr

Allowing us to easily run the tests forever and then replay the
failures!

https://rr-project.org/

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197>

4 years agovalidate: add missing gir annotation
Guillaume Desmottes [Thu, 14 May 2020 10:35:40 +0000 (12:35 +0200)]
validate: add missing gir annotation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/194>

4 years agovalidate-scenario: Initialize variable correctly
Edward Hervey [Fri, 22 May 2020 16:00:04 +0000 (18:00 +0200)]
validate-scenario: Initialize variable correctly

ret needs to be always reset to FALSE *before* checking attempting to load the
individual files. Otherwise there's the possibility it would silently accept an
invalid scenario name

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/196>

4 years agovalidate-scenario: Remove unused variable
Edward Hervey [Fri, 22 May 2020 15:56:40 +0000 (17:56 +0200)]
validate-scenario: Remove unused variable

We only need to check whether the field is present and of a given type

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/196>

4 years agovalidate: Stop using g_file_peek_path
Thibault Saunier [Fri, 15 May 2020 15:26:10 +0000 (11:26 -0400)]
validate: Stop using g_file_peek_path

It was introduced in 2.56 so is too recent

Fixes https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/issues/51

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/195>

4 years agovalidate: Add including support in the structure file parser
Thibault Saunier [Tue, 5 May 2020 17:52:52 +0000 (13:52 -0400)]
validate: Add including support in the structure file parser

Adding proper error reporting support

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/191>

4 years agovalidate: utils: Do not try to replace vars in debug info fields
Thibault Saunier [Fri, 8 May 2020 21:35:59 +0000 (17:35 -0400)]
validate: utils: Do not try to replace vars in debug info fields

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/190>

4 years agovalidate: Fix parsing validate tests files with vars on windows
Thibault Saunier [Fri, 8 May 2020 21:35:39 +0000 (17:35 -0400)]
validate: Fix parsing validate tests files with vars on windows

And ensure that we escape windows path in variables

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/190>

4 years agovalidate:launcher:check: Add support for gst-tester-1.0
Thibault Saunier [Sun, 3 May 2020 05:24:32 +0000 (01:24 -0400)]
validate:launcher:check: Add support for gst-tester-1.0

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189>

4 years agovalidate: Add support for known-issues in the .validatetest
Thibault Saunier [Thu, 7 May 2020 04:23:07 +0000 (00:23 -0400)]
validate: Add support for known-issues in the .validatetest

And add some tests about remaining actions failures

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189>

4 years agovalidate: Ensure a meta structure is found in test files
Thibault Saunier [Thu, 7 May 2020 02:36:59 +0000 (22:36 -0400)]
validate: Ensure a meta structure is found in test files

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189>

4 years agovalidate:scenario: Check remaining action on stop, not EOS
Thibault Saunier [Thu, 7 May 2020 02:20:58 +0000 (22:20 -0400)]
validate:scenario: Check remaining action on stop, not EOS

When ignoring EOS, on addition action could end up not being executed
and no error was reported which was wrong.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189>

4 years agovalidate: Fix rendering destination directory path creation
Thibault Saunier [Mon, 4 May 2020 21:59:28 +0000 (17:59 -0400)]
validate: Fix rendering destination directory path creation

We were ending up creating file:/some/path in cwd

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187>

4 years agovalidate: Plug some leaks
Thibault Saunier [Mon, 4 May 2020 20:59:54 +0000 (16:59 -0400)]
validate: Plug some leaks

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187>

4 years agovalidate: Add details on all g_log message reports.
Thibault Saunier [Sun, 3 May 2020 05:22:04 +0000 (01:22 -0400)]
validate: Add details on all g_log message reports.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187>

4 years agovalidate: Add a mechanism to mark tests as skipped
Thibault Saunier [Sun, 3 May 2020 05:20:19 +0000 (01:20 -0400)]
validate: Add a mechanism to mark tests as skipped

And use it when a plugin is missing and the user didn't ask for
failure when it happens

And use the TAP[0] synthax to report it

[0]: https://testanything.org

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187>

4 years agovalidate: Enhance issue reporting from structures
Thibault Saunier [Sun, 3 May 2020 04:54:56 +0000 (00:54 -0400)]
validate: Enhance issue reporting from structures

And properly bail out when required
This is preparatory work for gst-test in core which will use the TAP
protocol

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187>

4 years agovalidate:flow: Handle some more segment fields filtering
Thibault Saunier [Wed, 6 May 2020 02:57:08 +0000 (22:57 -0400)]
validate:flow: Handle some more segment fields filtering

Those slept through when implementing filtering

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/188>

4 years agossim: Minor improvements on the way we attach to pads
Thibault Saunier [Thu, 9 Apr 2020 20:04:53 +0000 (16:04 -0400)]
ssim: Minor improvements on the way we attach to pads

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174>

4 years agovalidate-scenario: Refactor seek handling
Edward Hervey [Tue, 5 Jun 2018 15:56:36 +0000 (17:56 +0200)]
validate-scenario: Refactor seek handling

* Store all seek values into a list of pending seeks instead
  of hardcoding some values
* Store all segments that sinks received
* Match segments to seeks when all sinks received segments with
  the same seqnum
* Detect when a seek did *not* result in segments with identical
  matching seqnums

Should allow checking for all types of seek handling, including
flush-less seeks

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174>

4 years agovalidate-report: Add new check for top-level seek
Edward Hervey [Fri, 15 Jun 2018 08:52:46 +0000 (10:52 +0200)]
validate-report: Add new check for top-level seek

This issue is to detect seeks that don't result in segments
with identical seqnums. This check can be done at the top-level
scenario

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174>

4 years agovalidate-pad-monitor: Post GstBaseSink SEGMENT on the bus
Edward Hervey [Tue, 5 Jun 2018 15:55:29 +0000 (17:55 +0200)]
validate-pad-monitor: Post GstBaseSink SEGMENT on the bus

Allows higher-level bin or app (like validate-scenario) to know
what each sink currently has in terms of SEGMENT.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174>

4 years agovalidate-element-monitor: Detect basesink elements
Edward Hervey [Tue, 5 Jun 2018 15:53:51 +0000 (17:53 +0200)]
validate-element-monitor: Detect basesink elements

And add a macro

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174>

4 years agovalidate-scenario: Add logging for scenario lock taking/releasing
Edward Hervey [Tue, 5 Jun 2018 15:51:44 +0000 (17:51 +0200)]
validate-scenario: Add logging for scenario lock taking/releasing

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174>

4 years agopad-monitor: Reliably track pending seeks
Thibault Saunier [Thu, 30 Apr 2020 16:39:44 +0000 (12:39 -0400)]
pad-monitor: Reliably track pending seeks

Instead of overriding all values when receiving a seek, store
them as a list of expected values.

This allows handling several seeks in a row, like non-flushing
seeks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174>

4 years agovalidate: Allow overidding issue severity from configs
Thibault Saunier [Wed, 29 Apr 2020 03:06:24 +0000 (23:06 -0400)]
validate: Allow overidding issue severity from configs

Refactoring sensibly to allow getting configs outside the `core` namespace
and outside plugin names.

The `GST_VALIDATE_OVERRIDE` env variable should probably be removed
all together at some point.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/185>

4 years agovalidate: Add an option to describe issue types
Thibault Saunier [Wed, 29 Apr 2020 03:26:13 +0000 (23:26 -0400)]
validate: Add an option to describe issue types

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/185>

4 years agovalidate: Show the exact file line when error out in structure files
Thibault Saunier [Tue, 28 Apr 2020 16:51:21 +0000 (12:51 -0400)]
validate: Show the exact file line when error out in structure files

And minor stdout enhancements

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/185>

4 years agovalidate:launcher: Mark some more tests as too long for valgrind
Thibault Saunier [Wed, 29 Apr 2020 01:30:29 +0000 (21:30 -0400)]
validate:launcher: Mark some more tests as too long for valgrind

4 years agoApply suggestion to debug-viewer/org.freedesktop.GstDebugViewer.appdata.xml.in
Bilal Elmoussaoui [Mon, 27 Apr 2020 21:46:02 +0000 (21:46 +0000)]
Apply suggestion to debug-viewer/org.freedesktop.GstDebugViewer.appdata.xml.in

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/155>

4 years agoMetainfo: backport flathub fixes
Bilal Elmoussaoui [Thu, 23 Jan 2020 15:53:03 +0000 (15:53 +0000)]
Metainfo: backport flathub fixes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/155>

4 years agovalidate: Do not check pulling thread when thread is paused
Thibault Saunier [Thu, 19 Mar 2020 21:25:28 +0000 (18:25 -0300)]
validate: Do not check pulling thread when thread is paused

With decodebin3 we have cases where a task has been started in
the `typefind` element but the demuxer is the one pulling (from
its own thread)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/183>

4 years agovalidate: Add a check-position action type
Thibault Saunier [Sat, 25 Apr 2020 03:33:16 +0000 (23:33 -0400)]
validate: Add a check-position action type

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/182>

4 years agovalidate:scenario: Enhance failures messages
Thibault Saunier [Sat, 25 Apr 2020 03:32:59 +0000 (23:32 -0400)]
validate:scenario: Enhance failures messages

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/182>

4 years agovalidate: Add a way to run a TestClock in scenarios
Thibault Saunier [Mon, 13 Apr 2020 20:23:32 +0000 (16:23 -0400)]
validate: Add a way to run a TestClock in scenarios

A TestClock will be used automatically when a scenario has a
`crank-clock` action.

And make `validate` and `debug-viewer` options features in meson,
no reason they weren't and now we require gst-check to build validate

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/182>

4 years agovalidate: Introduce the concept of "Test files"
Thibault Saunier [Fri, 24 Apr 2020 19:41:10 +0000 (15:41 -0400)]
validate: Introduce the concept of "Test files"

This way we can have a single file that wraps scenarios,
`gst-validate-1.0` arguments, as well as a configuration.

It changes the name of `description` of scenarios to use `meta`
The goal is to replace tests describes in python with dictionary
to fully self contained `.validatetest` files which look like:

```
meta,
    handles-states=true,
    ignore-eos=true,
    gst-validate-args = {
         "videotestsrc pattern=blue ! video/x-raw,format=I420,framerate=1/1 ! timeoverlay ! $(videosink) name=videosink allocation-meta-flags=0",
    },
    configs = {
         "$(validateflow), pad=videosink:sink, buffers-checksum=true, ignored-fields={\"buffers=meta\", }",
    }

play
seek, start=0.0, stop=5.0, flags=accurate+flush, rate=1.0
crank-clock, expected-elapsed-time=0.0
crank-clock, repeat=4, expected-elapsed-time=1.0
crank-clock, expected-elapsed-time=1.0
stop, on-message=eos
```

4 years agovalidate:flow: Sensibly improve stdout
Thibault Saunier [Fri, 24 Apr 2020 00:11:14 +0000 (20:11 -0400)]
validate:flow: Sensibly improve stdout

4 years agovalidate: Fix criticals around NULL structure usage
Thibault Saunier [Fri, 24 Apr 2020 00:10:48 +0000 (20:10 -0400)]
validate: Fix criticals around NULL structure usage

4 years agovalidate: Fix 'repeat' parameter on non ASYNC action types
Thibault Saunier [Fri, 24 Apr 2020 00:09:53 +0000 (20:09 -0400)]
validate: Fix 'repeat' parameter on non ASYNC action types

4 years agovalidate:scenario: Do not consider action with 'on-message' as on addition
Thibault Saunier [Thu, 23 Apr 2020 01:13:06 +0000 (21:13 -0400)]
validate:scenario: Do not consider action with 'on-message' as on addition

4 years agovalidate: report: Handle when reporting NULL action
Thibault Saunier [Thu, 9 Apr 2020 20:01:25 +0000 (16:01 -0400)]
validate: report: Handle when reporting NULL action

And add information about the action repeat state.

4 years agovalidate: Handle comments in multiline expressions
Thibault Saunier [Wed, 22 Apr 2020 17:02:29 +0000 (13:02 -0400)]
validate: Handle comments in multiline expressions

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/179>

4 years agovalidate: Fix multi variable in a single structure field
Thibault Saunier [Wed, 22 Apr 2020 15:27:16 +0000 (11:27 -0400)]
validate: Fix multi variable in a single structure field

We were keeping using the GMatchInfo even after modifying the string
which is explicitly stated as invalid in the GRegex documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/179>

4 years agovalidate:scenario: Fix 'on-message' actions execution
Thibault Saunier [Tue, 21 Apr 2020 19:48:20 +0000 (15:48 -0400)]
validate:scenario: Fix 'on-message' actions execution

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/177>

4 years agovalidate: Add { and [ as line continuation markers
Thibault Saunier [Tue, 21 Apr 2020 19:28:00 +0000 (15:28 -0400)]
validate: Add { and [ as line continuation markers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/177>

4 years agovalidate-launcher: Fix syntax error
Nicolas Dufresne [Mon, 13 Apr 2020 19:38:05 +0000 (15:38 -0400)]
validate-launcher: Fix syntax error

This error prevents downloading assets from scratch. This regression was
introduced by MR !145 / commit 2581fef6843bfb53f3fc6f629577c1f013ef84e7

4 years agoutils: Fix double free in error case
Nicolas Dufresne [Tue, 7 Apr 2020 22:33:08 +0000 (18:33 -0400)]
utils: Fix double free in error case

This was detected by Coverity. The content point would have been freed gain in
the done: label.

CID 1461289

4 years agovalidate: Use gst_print for validate report messages
Thibault Saunier [Tue, 24 Mar 2020 00:28:45 +0000 (21:28 -0300)]
validate: Use gst_print for validate report messages

4 years agoci: Port from only: to rules
Nicolas Dufresne [Tue, 17 Mar 2020 15:51:32 +0000 (11:51 -0400)]
ci: Port from only: to rules

This fixed CI breakage introduced by gst-ci!247

4 years agovalidate: Plug some leaks
Thibault Saunier [Tue, 10 Mar 2020 14:50:26 +0000 (11:50 -0300)]
validate: Plug some leaks

And add some valgrind suppression for fontconfig

4 years agovalidate:ssim: Allow specifying file framerate to use frame numbers during comparison
Thibault Saunier [Wed, 4 Mar 2020 14:07:32 +0000 (11:07 -0300)]
validate:ssim: Allow specifying file framerate to use frame numbers during comparison

4 years agovalidate:scenario: Make the action->prepare function return a GstValidateExecuteActio...
Thibault Saunier [Wed, 4 Mar 2020 00:36:21 +0000 (21:36 -0300)]
validate:scenario: Make the action->prepare function return a GstValidateExecuteActionReturn

Implementers might want to report the error themselves

4 years agovalidate: Add a way to check last frame number
Thibault Saunier [Fri, 28 Feb 2020 16:51:58 +0000 (13:51 -0300)]
validate: Add a way to check last frame number

This introduces a new 'timecode-frame-number' in the 'check-last-sample'
action type se we can verify the number of output frames.

4 years agovalidate: Enhance debug message on invalid expression function call
Thibault Saunier [Thu, 20 Feb 2020 11:52:38 +0000 (08:52 -0300)]
validate: Enhance debug message on invalid expression function call

4 years agovalidate:utils: Allow plain string in `gst_validate_utils_get_strv`
Thibault Saunier [Tue, 4 Feb 2020 21:13:51 +0000 (18:13 -0300)]
validate:utils: Allow plain string in `gst_validate_utils_get_strv`

4 years agovalidatessim: Avoid having ':' in file names
Thibault Saunier [Mon, 10 Feb 2020 17:55:18 +0000 (14:55 -0300)]
validatessim: Avoid having ':' in file names

This is unsupported on windows

4 years agovalidate:ssim: Flush cairo surface before getting pixels
Thibault Saunier [Mon, 3 Feb 2020 19:23:37 +0000 (16:23 -0300)]
validate:ssim: Flush cairo surface before getting pixels

4 years agovalidate:launcher: Fix reporting on failure when running forever/fatal
Thibault Saunier [Mon, 3 Feb 2020 14:14:33 +0000 (11:14 -0300)]
validate:launcher: Fix reporting on failure when running forever/fatal

4 years agovalidate:ssim: Enhance printing position
Thibault Saunier [Tue, 14 Jan 2020 13:26:54 +0000 (10:26 -0300)]
validate:ssim: Enhance printing position

Adding a new `gst_validate_print_position` method which also
sends messages to the runner if required.

4 years agovalidate:launcher: Add a generator to generate test for frame accurate seeking
Thibault Saunier [Wed, 8 Jan 2020 18:26:41 +0000 (15:26 -0300)]
validate:launcher: Add a generator to generate test for frame accurate seeking

4 years agovalidate:ssim: Use stream time to reference frames
Thibault Saunier [Wed, 8 Jan 2020 18:21:11 +0000 (15:21 -0300)]
validate:ssim: Use stream time to reference frames

4 years agovalidate:ssim: Don't check neighbor frames when comparing exact same frame
Thibault Saunier [Wed, 8 Jan 2020 18:18:15 +0000 (15:18 -0300)]
validate:ssim: Don't check neighbor frames when comparing exact same frame

4 years agovalidate:ssim: Enhance debugging message when similarity do not match
Thibault Saunier [Wed, 8 Jan 2020 18:14:34 +0000 (15:14 -0300)]
validate:ssim: Enhance debugging message when similarity do not match

Printing out where the diff image file is

4 years agovalidate:launcher: Enhance support for running ssim tests
Thibault Saunier [Tue, 7 Jan 2020 18:48:51 +0000 (15:48 -0300)]
validate:launcher: Enhance support for running ssim tests

Using a special 'ssim' variable in pipeline dicts to activate it
Similare to what we do for validateflow

4 years agovalidate:launcher: Add support for skipped media info files
Thibault Saunier [Tue, 7 Jan 2020 18:46:21 +0000 (15:46 -0300)]
validate:launcher: Add support for skipped media info files

Those are skipped to generate tests by default but are updated when
required, this will allow us to generate specific test on demand for
those

4 years agovalidate:ssim: Avoid segfaults trying to attach pads without a template
Thibault Saunier [Mon, 6 Jan 2020 19:29:33 +0000 (16:29 -0300)]
validate:ssim: Avoid segfaults trying to attach pads without a template

4 years agovalidate:scenario:Handle GStreamer serialized timestamps
Thibault Saunier [Mon, 6 Jan 2020 19:26:12 +0000 (16:26 -0300)]
validate:scenario:Handle GStreamer serialized timestamps

4 years agovalidate:launcher: Never try to load a testsuite with the same name from different...
Thibault Saunier [Mon, 17 Feb 2020 13:32:48 +0000 (10:32 -0300)]
validate:launcher: Never try to load a testsuite with the same name from different locations

4 years agovalidate:media-check: Fix wrong exit code
Thibault Saunier [Thu, 13 Feb 2020 13:41:07 +0000 (10:41 -0300)]
validate:media-check: Fix wrong exit code

There are code paths where the runner doesn't contain any issue but an error has already been reported

4 years agovalidate:launcher: Add support for the imagesequence protocol
Thibault Saunier [Tue, 11 Feb 2020 19:01:07 +0000 (16:01 -0300)]
validate:launcher: Add support for the imagesequence protocol

4 years agovalidate:launcher: Fix reporting on failure when running forever/fatal
Thibault Saunier [Mon, 3 Feb 2020 14:14:33 +0000 (11:14 -0300)]
validate:launcher: Fix reporting on failure when running forever/fatal

4 years agovalidate:launcher: Cache GstValidateMediaDescriptor to avoid reparsing .media_info
Thibault Saunier [Wed, 8 Jan 2020 12:54:15 +0000 (09:54 -0300)]
validate:launcher: Cache GstValidateMediaDescriptor to avoid reparsing .media_info

Saving another second at startup

4 years agovalidate:launcher: Generate profiling data even if an exception happens
Thibault Saunier [Wed, 8 Jan 2020 12:23:19 +0000 (09:23 -0300)]
validate:launcher: Generate profiling data even if an exception happens

4 years agovalidate:launcher: Batch inspecting scenarios
Thibault Saunier [Tue, 7 Jan 2020 22:29:05 +0000 (19:29 -0300)]
validate:launcher: Batch inspecting scenarios

Removing almost 1 second to start running tests with the default
testsuite

4 years agovalidate:launcher: Fix printed test number
Thibault Saunier [Mon, 6 Jan 2020 19:27:59 +0000 (16:27 -0300)]
validate:launcher: Fix printed test number

4 years agovalidate:launcher: Allow passing configs paths when loading from dictionary
Thibault Saunier [Mon, 6 Jan 2020 19:27:19 +0000 (16:27 -0300)]
validate:launcher: Allow passing configs paths when loading from dictionary

The same way we allow it for scenarios

4 years agodebug-viewer: Display nanoseconds in the timestamp column
Philippe Normand [Mon, 2 Mar 2020 12:55:18 +0000 (12:55 +0000)]
debug-viewer: Display nanoseconds in the timestamp column

4 years agovalidate: Don't use sprintf + glib format modifiers
Nirbheek Chauhan [Thu, 27 Feb 2020 11:03:36 +0000 (16:33 +0530)]
validate: Don't use sprintf + glib format modifiers

We do not have a way to know the format modifiers to use with string
functions provided by the system. `G_GUINT64_FORMAT` and other string
modifiers only work for glib string formatting functions. We cannot
use them for string functions provided by the stdlib. See:
https://developer.gnome.org/glib/stable/glib-Basic-Types.html#glib-Basic-Types.description

```
 ../validate/plugins/flow/formatting.c: In function 'format_number':
../validate/plugins/flow/formatting.c:68:22: error: unknown conversion type character 'l' in format [-Werror=format=]
   sprintf (dest_str, "%" G_GUINT64_FORMAT, number);
                      ^~~
In file included from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/gtypes.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/galloca.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib.h:30,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/gstreamer-1.0/gst/gst.h:27,
                 from ../validate/plugins/flow/formatting.h:26,
                 from ../validate/plugins/flow/formatting.c:30:
/builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/lib/glib-2.0/include/glibconfig.h:69:28: note: format string is defined here
 #define G_GUINT64_FORMAT "llu"
                            ^
../validate/plugins/flow/formatting.c:68:22: error: too many arguments for format [-Werror=format-extra-args]
   sprintf (dest_str, "%" G_GUINT64_FORMAT, number);
                      ^~~
../validate/plugins/flow/formatting.c:68:22: error: unknown conversion type character 'l' in format [-Werror=format=]
In file included from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/gtypes.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/galloca.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib.h:30,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/gstreamer-1.0/gst/gst.h:27,
                 from ../validate/plugins/flow/formatting.h:26,
                 from ../validate/plugins/flow/formatting.c:30:
/builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/lib/glib-2.0/include/glibconfig.h:69:28: note: format string is defined here
 #define G_GUINT64_FORMAT "llu"
                            ^
../validate/plugins/flow/formatting.c:68:22: error: too many arguments for format [-Werror=format-extra-args]
   sprintf (dest_str, "%" G_GUINT64_FORMAT, number);
                      ^~~
```

Needed for https://gitlab.freedesktop.org/gstreamer/cerbero/merge_requests/419

4 years agomeson: remove vs_module_defs
Thibault Saunier [Wed, 26 Feb 2020 17:21:52 +0000 (14:21 -0300)]
meson: remove vs_module_defs

The GST_EXPORT should handle it.

4 years agolauncher: Do not dump output on known issues
Thibault Saunier [Wed, 26 Feb 2020 15:05:39 +0000 (12:05 -0300)]
launcher: Do not dump output on known issues

And remove dead code

4 years agovalidate: Fix leak parsing structure files
Thibault Saunier [Wed, 26 Feb 2020 13:52:12 +0000 (10:52 -0300)]
validate: Fix leak parsing structure files

4 years agovalidate: Enhance error reporting for errors in struct files
Thibault Saunier [Tue, 25 Feb 2020 14:00:57 +0000 (11:00 -0300)]
validate: Enhance error reporting for errors in struct files

Get a sense of files and line numbers in the parsed GstStructure
and take that information when reporting GstValidateAction errors
by letting the user know where the action comes from in the messages.

And accept non-literal string in printing formats.

4 years agovalidate: Add a specific error type for check actions
Thibault Saunier [Tue, 25 Feb 2020 13:54:00 +0000 (10:54 -0300)]
validate: Add a specific error type for check actions

And mark it as `NO_BACKTRACE | FULL_DETAILS`, same as for
other action failure types.

4 years agovalidate: Enhance error reporting when scenario or configs are invalid
Thibault Saunier [Thu, 16 Jan 2020 20:36:54 +0000 (17:36 -0300)]
validate: Enhance error reporting when scenario or configs are invalid

4 years agovalidate: Add a flags to issues
Thibault Saunier [Tue, 14 Jan 2020 13:23:39 +0000 (10:23 -0300)]
validate: Add a flags to issues

Currently those allow registering issue that:
- Won't print backtrace as it is sometimes useless info
- Will repeat the details even in smart mode

4 years agovalidate: Consider ',' as continuing line marker in struct files
Thibault Saunier [Thu, 20 Feb 2020 01:16:44 +0000 (22:16 -0300)]
validate: Consider ',' as continuing line marker in struct files

Since `,` is the separator between fields of GstStructure we can
safely consider that if a line ends with it, the following line
is the logical continuity of the serialized GstStructure.

This makes writing those files more convenient and reading them
more pleasant as we do not need to add extra `\` at end of lines
anymore

4 years agovalidate:launcher: Handle validate report bigger than allowed by the socket
Thibault Saunier [Tue, 11 Feb 2020 12:18:23 +0000 (09:18 -0300)]
validate:launcher: Handle validate report bigger than allowed by the socket

This almost never happens but I had a case where we had a report
with a GstSample in the caps that were reported leading to an
error printed.

4 years agovalidate:launcher: Reference exception in a var as we use it in the handling
Thibault Saunier [Thu, 6 Feb 2020 13:34:40 +0000 (10:34 -0300)]
validate:launcher: Reference exception in a var as we use it in the handling

4 years agovalidate:flow: Make field filtering in what is logged more generic
Thibault Saunier [Tue, 4 Feb 2020 21:14:25 +0000 (18:14 -0300)]
validate:flow: Make field filtering in what is logged more generic

Instead of forcing it on event, allow specifying filters on anything
we log, meaning also buffers