platform/upstream/gstreamer.git
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

4 years agovalidateflow: Add a logged-event-fields configuration
Thibault Saunier [Tue, 4 Feb 2020 19:59:39 +0000 (16:59 -0300)]
validateflow: Add a logged-event-fields configuration

4 years agovalidate:scenario: Stop rounding up clocktime values
Thibault Saunier [Tue, 11 Feb 2020 18:57:56 +0000 (15:57 -0300)]
validate:scenario: Stop rounding up clocktime values

This doesn't make any sense in that context

4 years agovalidate:launcher: Fix defining several scenario with a same config
Thibault Saunier [Thu, 6 Feb 2020 17:33:56 +0000 (14:33 -0300)]
validate:launcher: Fix defining several scenario with a same config

When generating tests from dictionary the dict format allows passing
several scenario for a same config and pipelines, but this was breaking
the case where expected flow is different with each config, instead we
should generate one config per scenario, fixing the expectation files
generated.

4 years agovalidate:launcher: Print the duration of the test run in the logs
Thibault Saunier [Thu, 16 Jan 2020 00:22:49 +0000 (21:22 -0300)]
validate:launcher: Print the duration of the test run in the logs

4 years agovalidate:flow: Add a way to set the types of events to log/ignore
Thibault Saunier [Thu, 16 Jan 2020 00:15:30 +0000 (21:15 -0300)]
validate:flow: Add a way to set the types of events to log/ignore

Added two properties to the plugin:
     * ignored-event-types: A list of event types to be ignored when logging events
     * logged-event-types: A list of event types to be logged when logging events

This commits also moves the "ignored-event-fields" property to using a proper
GstValueList for the list of event fields to be taken into account, instead
of the home grown separated by comas list of string, making the API more
uniform.

This also adds a simple helper method: `gst_validate_utils_get_strv`

4 years agogst-validate-launcher: separate known error from passed tests
Stéphane Cerveau [Tue, 3 Dec 2019 17:26:18 +0000 (18:26 +0100)]
gst-validate-launcher: separate known error from passed tests

Introduce known_error in statistics to keep in mind the expected
error result.

4 years agogst-validate-launcher: update documentation
Stéphane Cerveau [Mon, 2 Dec 2019 13:46:59 +0000 (14:46 +0100)]
gst-validate-launcher: update documentation

Use the new api to create your custom testsuite.
Fix some broken links and enhance the logging system.

4 years agolauncher: Allow partionning the tests
Nicolas Dufresne [Sun, 12 Jan 2020 04:00:06 +0000 (23:00 -0500)]
launcher: Allow partionning the tests

This introduce new command line options, --parts and --part-index. When
--parts is set to a value larger then 1, the tests will be split in the
same number of group. The group number identified by --part-index will
be executed.

This is being added in orther to support gliblab CI parallel feature.

4 years agovalidate:launcher: Try to dump logs with bat if avalaible
Thibault Saunier [Mon, 12 Aug 2019 20:56:41 +0000 (16:56 -0400)]
validate:launcher: Try to dump logs with bat if avalaible

We got to many issues with mdv, it seems not to be maintained
bat is a very good replacement.

4 years agovalidate:launcher: Support mixed str/bytes control sequences.
Brady J. Garvin [Sun, 5 Jan 2020 20:09:07 +0000 (14:09 -0600)]
validate:launcher: Support mixed str/bytes control sequences.

It is not safe for `_preformat_levels` to assume that all of the fields in a
`TerminalController` have the same type; at least in my environment, some of
these fields are populated with `bytes` while others remain strings.

This change conditionally applies decoding to each control sequence separately
using a helper function `_as_string`.  As a side-effect, it also eliminates some
code repetition in `_preformat_levels`.

Closes #50.

4 years agovalidate:launcher: Enhance progress reporting using a progress bar
Thibault Saunier [Mon, 30 Dec 2019 15:57:57 +0000 (12:57 -0300)]
validate:launcher: Enhance progress reporting using a progress bar

This also allows us to properly report progress on the CI

4 years agovalidate:launcher: Take our timeout factor into account for gstcheck
Thibault Saunier [Mon, 30 Dec 2019 13:27:06 +0000 (10:27 -0300)]
validate:launcher: Take our timeout factor into account for gstcheck

4 years agovalidate:scenario: fix some typos
Thibault Saunier [Thu, 7 Nov 2019 18:57:41 +0000 (15:57 -0300)]
validate:scenario: fix some typos

4 years agovalidate:scenario: Implement an action to check property value
Thibault Saunier [Thu, 7 Nov 2019 18:55:17 +0000 (15:55 -0300)]
validate:scenario: Implement an action to check property value

4 years agomeson: Remove unused gtk_doc option
Alexandru Băluț [Sat, 28 Dec 2019 21:39:23 +0000 (22:39 +0100)]
meson: Remove unused gtk_doc option

The "doc" option is available to disable the documentation.

4 years agocheck: unblacklist removed systemclock tests
Mathieu Duponchelle [Mon, 23 Dec 2019 09:27:11 +0000 (10:27 +0100)]
check: unblacklist removed systemclock tests

See https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/348

4 years agocheck: unblacklist gstreamer.pipelines_parse_launch.delayed_link
Mathieu Duponchelle [Sat, 14 Dec 2019 09:45:30 +0000 (10:45 +0100)]
check: unblacklist gstreamer.pipelines_parse_launch.delayed_link

It should not be flaky anymore after
https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/343

4 years agovalidate:launcher: Use python dict for pipeline description
Thibault Saunier [Fri, 15 Nov 2019 20:25:11 +0000 (17:25 -0300)]
validate:launcher: Use python dict for pipeline description

4 years agovalidate-scenario: Initialize variable
Edward Hervey [Wed, 27 Nov 2019 14:33:14 +0000 (15:33 +0100)]
validate-scenario: Initialize variable

We could end up using it uninitialized

CID: 1444920

4 years agovalidate: launcher: Make encoding extra check use common code path
Thibault Saunier [Fri, 4 Oct 2019 12:59:57 +0000 (09:59 -0300)]
validate: launcher: Make encoding extra check use common code path

Reusing the reporting infrastructure instead of shurtcuting it

4 years agovalidate: Add vp9 transcoding tests
Thibault Saunier [Tue, 24 Sep 2019 17:23:49 +0000 (14:23 -0300)]
validate: Add vp9 transcoding tests

Making sure to encode small frames as vp9enc is slow.

4 years agovalidate: Fix memory leaks
Edward Hervey [Wed, 20 Nov 2019 09:19:00 +0000 (10:19 +0100)]
validate: Fix memory leaks

Various structures were being leaked.

4 years agovalidate:launcher: Avoid clashes when importing testsuite
Thibault Saunier [Mon, 11 Nov 2019 21:57:27 +0000 (18:57 -0300)]
validate:launcher: Avoid clashes when importing testsuite

This introduce an hard dependency on python >= 3.5, same as meson

4 years agocheck: blacklist gst-plugins-good.elements_splitmux.test_splitmuxsink$
Jordan Petridis [Sun, 10 Nov 2019 15:29:45 +0000 (16:29 +0100)]
check: blacklist gst-plugins-good.elements_splitmux.test_splitmuxsink$

https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/626

4 years agogstvalidate: fix GstValidateRTSPMediaDescriptor typo
Stéphane Cerveau [Wed, 6 Nov 2019 17:21:11 +0000 (18:21 +0100)]
gstvalidate: fix GstValidateRTSPMediaDescriptor typo

4 years agogst-validate-bin-monitor: Remove unused field.
Alicia Boya García [Sat, 2 Nov 2019 16:07:02 +0000 (17:07 +0100)]
gst-validate-bin-monitor: Remove unused field.

4 years agovalidateflow: Don't use colon in file names
Alicia Boya García [Fri, 25 Oct 2019 10:45:40 +0000 (12:45 +0200)]
validateflow: Don't use colon in file names

The colon character commonly used to separate the element name and the
pad name is reserved in Windows filesystems, so it's better to use
something safer.

This patch replaces it with '-'. Please update
gst-integration-testsuites too where another commit has renamed all the
files.

4 years agovalidate: blacklist gstreamer-vaapi checks
Víctor Manuel Jáquez Leal [Fri, 25 Oct 2019 10:26:58 +0000 (12:26 +0200)]
validate: blacklist gstreamer-vaapi checks

They still can be checked by running the tests explicitly.

4 years agomeson: build gir even when cross-compiling if introspection was enabled explicitly
Tim-Philipp Müller [Fri, 18 Oct 2019 11:31:19 +0000 (12:31 +0100)]
meson: build gir even when cross-compiling if introspection was enabled explicitly

This can be made to work in certain circumstances when
cross-compiling, so default to not building g-i stuff
when cross-compiling, but allow it if introspection was
enabled explicitly via -Dintrospection=enabled.

See gstreamer/gstreamer#454 and gstreamer/gstreamer#381.

4 years agovalidate: remove autotools build
Tim-Philipp Müller [Mon, 14 Oct 2019 23:24:00 +0000 (00:24 +0100)]
validate: remove autotools build

4 years agocodecanalyzer: remove
Tim-Philipp Müller [Mon, 14 Oct 2019 23:11:19 +0000 (00:11 +0100)]
codecanalyzer: remove

Remove in effort to declutter. There has been
pretty much no activity at all since the initial
commit in 2014 apart from a few coverity fixes.
Doesn't seem super-useful in its current form
either. Still available on github at
https://github.com/sreerenjb/codecanalyzer/
if anyone has a use for it.

4 years agomediainfo: remove
Tim-Philipp Müller [Mon, 14 Oct 2019 18:28:08 +0000 (19:28 +0100)]
mediainfo: remove

This looks bitrotten and abandoned,
remove in an effort to declutter.

4 years agovagrant: remove
Tim-Philipp Müller [Mon, 14 Oct 2019 18:25:30 +0000 (19:25 +0100)]
vagrant: remove

This looks bitrotten and still targets Ubuntu 13.10
and autotools. Doesn't look like anyone has been using
this in the last 5+ years, so let's remove it in an
effort to declutter.

4 years agovalidate:launcher: Fix the 'can-happen-several-times' known issue field
Thibault Saunier [Mon, 15 Jul 2019 21:58:05 +0000 (17:58 -0400)]
validate:launcher: Fix the 'can-happen-several-times' known issue field

4 years agovalidate: Check that pull_range is called from the streaming thread
Thibault Saunier [Mon, 15 Jul 2019 16:36:23 +0000 (12:36 -0400)]
validate: Check that pull_range is called from the streaming thread

`gst_pad_pull_range` should always be called from the streaming thread,
we now check that when pull_range is called, and if the sinkpad calling
the function has a GstTask with a running thread, the function is called
from that thread.

4 years agovalidate-scanario: Fix crash when using installed validate
Nicolas Dufresne [Fri, 27 Sep 2019 20:52:51 +0000 (16:52 -0400)]
validate-scanario: Fix crash when using installed validate

When installed, the lookup path will endup on the very last try, but the
scenario_file was left unset, which lead to a crash.

4 years agovalidate: fix build with newer gcc
Matthew Waters [Tue, 24 Sep 2019 01:45:34 +0000 (11:45 +1000)]
validate: fix build with newer gcc

In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
                 from ../validate/gst/validate/gst-validate-scenario.c:45:
../validate/gst/validate/gst-validate-scenario.c: In function ‘gst_validate_scenario_load’:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  645 |     gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |         (GObject *) (object), __VA_ARGS__);    \
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1067:26: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
 1067 | #define GST_ERROR(...)   GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_ERROR,   NULL, __VA_ARGS__)
      |                          ^~~~~~~~~~~~~~~~~
../validate/gst/validate/gst-validate-scenario.c:3615:5: note: in expansion of macro ‘GST_ERROR’
 3615 |     GST_ERROR ("Invalid name for scenario '%s'", scenario_name);
      |     ^~~~~~~~~
../validate/gst/validate/gst-validate-scenario.c:3615:44: note: format string is defined here
 3615 |     GST_ERROR ("Invalid name for scenario '%s'", scenario_name);
      |                                            ^~

4 years agovalidate:launcher: Do not hardcode pathsep
Thibault Saunier [Sat, 24 Aug 2019 11:57:23 +0000 (07:57 -0400)]
validate:launcher: Do not hardcode pathsep

4 years agovalidate/flow: fix werror build with android clang
Matthew Waters [Wed, 28 Aug 2019 07:22:55 +0000 (17:22 +1000)]
validate/flow: fix werror build with android clang

../validate/plugins/flow/gstvalidateflow.c:75:3: error: redefinition of typedef 'ValidateFlowOverride' is a C11 feature [-Werror,-Wtypedef-redefinition]
} ValidateFlowOverride;
  ^
../validate/plugins/flow/gstvalidateflow.h:31:23: note: previous definition is here
G_DECLARE_FINAL_TYPE (ValidateFlowOverride, validate_flow_override,
                      ^

4 years agovalidate: fix -Werror=unused-function with clang
Matthew Waters [Mon, 26 Aug 2019 11:43:24 +0000 (21:43 +1000)]
validate: fix -Werror=unused-function with clang

[3623/4053] Compiling C object 'subprojects/gst-devtools/validate/plugins/flow/697521d@@gstvalidateflow@sha/gstvalidateflow.c.o'.
../subprojects/gst-devtools/validate/plugins/flow/gstvalidateflow.c:85:1: warning: unused function 'VALIDATE_IS_FLOW_OVERRIDE' [-Wunused-function]
G_DECLARE_FINAL_TYPE (ValidateFlowOverride, validate_flow_override,
^
/usr/include/glib-2.0/gobject/gtype.h:1407:26: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
  static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                                         \
                         ^
<scratch space>:129:1: note: expanded from here
VALIDATE_IS_FLOW_OVERRIDE
^

4 years agovalidate: fix -Werror=format-nonliteral build with clang
Matthew Waters [Mon, 26 Aug 2019 11:41:00 +0000 (21:41 +1000)]
validate: fix -Werror=format-nonliteral build with clang

[3470/4053] Compiling C object 'subprojects/gst-devtools/validate/gst/validate/28db7b6@@gstvalidatetracer@sha/gst-validate-reporter.c.o'.
../subprojects/gst-devtools/validate/gst/validate/gst-validate-reporter.c:186:31: warning: format string is not a string literal [-Wformat-nonliteral]
  message = g_strdup_vprintf (format, vacopy);
                              ^~~~~~
[3487/4053] Compiling C object 'subprojects/gst-devtools/validate/gst/validate/28db7b6@@gstvalidatetracer@sha/gst-validate-report.c.o'.
../subprojects/gst-devtools/validate/gst/validate/gst-validate-report.c:1007:34: warning: format string is not a string literal [-Wformat-nonliteral]
  tmp = gst_info_strdup_vprintf (format, args);
                                 ^~~~~~
[76/151] Compiling C object 'subprojects/gst-devtools/validate/plugins/flow/697521d@@gstvalidateflow@sha/gstvalidateflow.c.o'.
../subprojects/gst-devtools/validate/plugins/flow/gstvalidateflow.c:125:65: warning: format string is not a string literal [-Wformat-nonliteral]
  if (!flow->error_writing_file && vfprintf (flow->output_file, format, ap) < 0) {
                                                                ^~~~~~

4 years agovalidate: Add a scenario for 5 seconds playback use-cases
Philippe Normand [Mon, 19 Aug 2019 11:25:39 +0000 (12:25 +0100)]
validate: Add a scenario for 5 seconds playback use-cases

4 years agovalidate/ssim: Clean-up temporary directory
Philippe Normand [Mon, 19 Aug 2019 10:08:41 +0000 (11:08 +0100)]
validate/ssim: Clean-up temporary directory

When no output-dir is specified in the plugin config, a temporary directory is
created, so it needs to be removed when no-longer needed.