Commit graph

911 commits

Author SHA1 Message Date
Thibault Saunier
71566688bf validate: Remove the default testsuite implementation
The default testsuite implementation should belong to the default
asset repo where we have the corresponding knowledge.

We should style manage a sensible list of known blacklisted tests,
encoding profiles, and generators in GstValidate itself and allow testsuite
actual implementations to easily use them though the register_default_*
methods.

This allow us to be able to remove the ugly execfile() call.
2014-12-05 12:17:40 +01:00
Thibault Saunier
36aed39259 validate: Make sure to at least listen to GStreamer and GLib g_logs
If somewhere else someone is overriding the g_log default handler,
we would not get notified of anything.
2014-12-05 12:16:55 +01:00
Thibault Saunier
ccbcc04498 validate: Disable coloration of GST_DEBUG logs when we have no-color
Do that only when those logs are not saved to a file
2014-12-05 12:16:54 +01:00
Thibault Saunier
582f1cfc06 validate: Factor out a function to print action types parametters
+ Remove playback-type from the list and just print it
2014-12-05 12:16:54 +01:00
Thiago Santos
db67a92b3f pad-monitor: do not enforce caps querying rules for converters
Some encoders/decoders can also be converters, do not enforce
caps proxying rules for them
2014-11-28 17:21:23 -03:00
Vineeth T M
163d286f5b validate: fix typo in documentation
There are some typing mistakes in gst-validate-launcher --help
Hence fixing the same.

https://bugzilla.gnome.org/show_bug.cgi?id=740833
2014-11-28 11:16:09 +01:00
Thibault Saunier
b5219eaceb validate: Handle unlimited tests duration
Running full length scenario when the user asks
2014-11-25 19:41:01 +01:00
Thibault Saunier
c952886813 validate: Already having a monitor is no error 2014-11-25 19:41:01 +01:00
Thibault Saunier
1753afbe8d validate: pre commit hook: Do not try to run pep8 on non python files! 2014-11-25 19:41:01 +01:00
Thibault Saunier
62bf27f5e3 validate: Add scub_*_seeking_full scenarios
Which basically do the same thing as scrub_*_seeking but during
throughout the whole duration of the media
2014-11-25 19:41:00 +01:00
Thibault Saunier
b56ebc8a43 validate: Enhance documentation 2014-11-25 19:41:00 +01:00
Thibault Saunier
65eb14de36 validate: Add an option to update all .media_info files 2014-11-25 19:41:00 +01:00
Thibault Saunier
11c49a7db8 validate:scenario: Execute actions without playback time without a valid position
If the user did not specify any playback time we should be able to
execute actions even if the pipeline can't answer the position query

+ Make simpler to read the conditions of an action execution
2014-11-25 19:41:00 +01:00
Thibault Saunier
cdfa1ee61b validate:scenario: Properly handle ASYNC action execution in the API
The ->execute function now return a GstValidateExecuteActionReturn
which can be set as ASYNC in order to tell the scenario that the action
will be executed asynchronously, when the action is done, the caller is
responsible for calling gst_validate_action_set_done(); so that the
scenario keeps going on.

In this commit we make sure that the old API keeps working as
GST_VALIDATE_EXECUTE_ACTION_ERROR == FALSE and
GST_VALIDATE_EXECUTE_ACTION_OK == TRUE

Morevover GstValidateExecuteActionReturn is just a define

API:
    + gst_validate_action_set_done
    + GstValidateExecuteActionReturn

https://bugzilla.gnome.org/show_bug.cgi?id=739854
2014-11-25 19:41:00 +01:00
Thibault Saunier
4cbcb97258 validate: Add a GstValidateActionTypeFlag flag
Allowing us to define action types more in detail.
Keep backward compatibility, at least with the C API

https://bugzilla.gnome.org/show_bug.cgi?id=739854
2014-11-25 19:29:13 +01:00
Thibault Saunier
fcb0f20828 validate: Add a GstValidatePipelineMonitor subclass
We had quite a bit of code dedicated to handled GstPipeline monitoring
inside GstValidateBinMonitor, cleanly split that code into a new object
type

https://bugzilla.gnome.org/show_bug.cgi?id=740704
2014-11-25 19:29:13 +01:00
Thibault Saunier
36a2d61068 validate:launcher: Force clock sync for some protocols
In HLS for example, not having clock sync might lead to races and failures
do not test that for now
2014-11-20 12:09:29 +01:00
Thibault Saunier
057a864223 validate: Don't fail getting master report from a ghostpad without target 2014-11-20 12:09:26 +01:00
Thibault Saunier
6300fb9602 validate: Print current position even if we do not know the rate
That could cause gst-validate-launcher to wrongly concider tests
as timeout
2014-11-19 20:05:57 +01:00
Thibault Saunier
2be3c04b9b validate:scenario: Force clock sink for scenarios with a pause action 2014-11-19 17:59:26 +01:00
Thibault Saunier
a15b2544ce validate: Handle wrong paths when listing avalaible apps
User can make mistake or we can have an empty path.
2014-11-19 17:59:26 +01:00
Thibault Saunier
7f8c0c2751 validate: Do not check if first buffer running time is 0
It can perfectly not be 0, so it makes no sense to check that.

https://bugzilla.gnome.org/show_bug.cgi?id=739965
2014-11-19 17:59:26 +01:00
Thibault Saunier
5d8f6083b4 validate: Add audiomixer test to the default testsuite 2014-11-16 18:27:32 +01:00
Thibault Saunier
9255a8f876 pad-monitor: Give better details about segment mismatch issues 2014-11-16 18:27:32 +01:00
Thibault Saunier
4a2b9d6431 validate: Be more precise in issue type for wrong seqnum
Depending on the type of event where the bug occurs,
it is not the same issue type. That allows us to have
much precise reports, and better explain the user
where the issue stands.
2014-11-16 18:27:32 +01:00
Thibault Saunier
c77089cc62 validate: Fix a few annotation issues 2014-11-16 18:27:32 +01:00
Thibault Saunier
8c6803c467 validate: Add the notion of WAIT_MULTIPLIER for the wait action
Allowing the user to decide to wait more, or less, or even not wait
for the wait action to execute when running scenarios.
2014-11-16 18:27:32 +01:00
Thibault Saunier
1c2c0e63c2 validate:scenario: Report an EXECUTION_ERROR on action execution failure
If the action type handles a better error report type, it should just
return TRUE, and report its issue itself.
2014-11-04 17:33:09 +01:00
Thibault Saunier
e2d8096cb7 validate: Do not exit when we can not discover a result file
Loggable.error actually exit the process, it is not what we want!

+ Avoid a backtrace
2014-11-04 17:33:08 +01:00
Edward Hervey
4814110a86 scenario: Allow set-property action to work much earlier
By default an action has no playback-time, this makes it actionable
immediatly.

When no playback-time is set on a set-property action, it will
be activated the moment the element is added in the pipeline.
2014-11-04 17:12:00 +01:00
Edward Hervey
6a86f7c1c9 validate-bin-monitor: Initialize local variable
Avoids segfaults when freeing them if they didn't get filled in
2014-10-31 16:01:52 +01:00
Mathieu Duponchelle
85587a9aa5 validate: update pre-commit hook.
+ Allows to run multiple pre-commit hooks.
+ Always relink the hooks on autogen.
+ Run pep8 on commited python files.

https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
7bbd3ed288 apps: gstvalidate.py: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
9bdc6e9b6d validate-launcher: utils: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
b30d27e35e validate-launcher: main: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
95065edebd validate-launcher: loggable: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
a0a88e1708 validate-launcher: baseclasses: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
8c1e84b5f4 validate-launcher: pep8ify sources.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
fa39e0358a validate-utils: downgrade ERROR to DEBUG.
This function is called in places where it is legit for it
to return NULL.
2014-10-30 15:39:01 +01:00
Mathieu Duponchelle
4d569b51ed launcher: add a way to specify an application directory.
https://bugzilla.gnome.org/show_bug.cgi?id=739091
2014-10-30 15:31:29 +01:00
Mathieu Duponchelle
74ed40c904 launcher: Don't implement product-specific TestManagers.
This manager will be moved in GES.

https://bugzilla.gnome.org/show_bug.cgi?id=739091
2014-10-30 15:31:29 +01:00
Mathieu Duponchelle
b0beefacfa validate-launcher: restructure filesystem
https://bugzilla.gnome.org/show_bug.cgi?id=739091
2014-10-30 15:31:29 +01:00
Ramprakash Jelari
eb47b1021f validate: Fix compiler warning about implicit enum type conversion
gst-validate-reporter.c:119:39: error: implicit conversion from enumeration type
      'GstValidateReportingDetails' to different enumeration type
      'GstValidateInterceptionReturn' [-Werror,-Wenum-conversion]
  GstValidateInterceptionReturn ret = GST_VALIDATE_SHOW_UNKNOWN;
                                ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~
gst-validate-reporter.c:124:11: error: implicit conversion from enumeration type
      'GstValidateReportingDetails' to different enumeration type
      'GstValidateInterceptionReturn' [-Werror,-Wenum-conversion]
    ret = iface->get_reporting_level (reporter);
        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gst-validate-reporter.c:127:10: error: implicit conversion from enumeration type
      'GstValidateInterceptionReturn' to different enumeration type
      'GstValidateReportingDetails' [-Werror,-Wenum-conversion]
  return ret;
  ~~~~~~ ^~~
2014-10-24 15:19:19 +02:00
Mathieu Duponchelle
6cf2d92b0f build: We install all headers system wide for now.
Will be fixed when the API is deemed stable enough
2014-10-22 14:16:45 +02:00
Mathieu Duponchelle
30aef5ba84 validate: rename GstValidateReportingLevel.
Removes the confusion with GstValidateReportLevel.

Modeled on GstDebugGraphDetails.
2014-10-21 23:41:04 +02:00
Thibault Saunier
6d0930bb36 validate: Verify that elements always send a segment before pushing EOS
EOS is some kind of data flow and thus a segment event should always be
pushed before the EOS is sent
2014-10-21 20:40:27 +02:00
Thibault Saunier
23d7df3788 validate: Properly check that the seqnum of the EOS is always properly set
In the pipeline, an EOS should always have the same seqnum of the
previous SEGMENT event that was received. If the segment is the result
of a seek, it should always be the same as the seek seqnum too.

+ (Mathieu Duponchelle): fix reporting and concatenation tests.
2014-10-21 20:37:23 +02:00
Thibault Saunier
34a9c36edc validate: Add support for text based override files
Allowing user to easily determine the severity of issue
types in a config file

https://bugzilla.gnome.org/show_bug.cgi?id=737852
2014-10-21 20:23:32 +02:00
Thibault Saunier
b0d39c1c45 validate: Remove unused method
gst_media_descriptor_add_frame is not used anywhere

https://bugzilla.gnome.org/show_bug.cgi?id=737852
2014-10-21 20:21:58 +02:00
Thibault Saunier
a3513fc952 validate: Move GstStructure file parsing into utils
So it can be reused, at least in GstValidate.
2014-10-21 20:21:52 +02:00
Thibault Saunier
8ec61ddac2 validate: report: Simplify the issue ID registering using GQuarks
+ Remove unused issue types

https://bugzilla.gnome.org/show_bug.cgi?id=737790
2014-10-21 20:21:42 +02:00
Thibault Saunier
bb93dbb9fb validate: Check all buffers when we have the info from MediaDescriptor
We now check that each buffer is the expected one for each buffer that
come into the decoder.

+ Fix some minor leaks in test-utils

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:21:36 +02:00
Thibault Saunier
cd9a3640b2 validate:media-descriptor-parser: Add a way to create from a string
So it is simple to make use of it from the testsuite

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
f793d06783 report: g_critical are CRITICAL issues!
https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
94efe0df85 validate: launcher: Fix printing of errors in final report
https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
20633cec19 validate: Add the possibility to generate media infos with frame descs
+ Fix a little issue when the generation fails.

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
b3fa06c3c1 validate: MediaDescriptors: Add md5sum to buffer informations
In the media descriptor files, we now have the md5sum of the actual
content of encoded buffers so that we can check that the buffer content is
perfectly what is was supposed to be.

+ Fix the check of whether a frame is a keyframe in the string
  comparison (g_ascii_strcasecmp  return 0 if string matches)

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
50273c42a9 validate: Move some method between GstMediaDescriptorParser and GstMediaDescriptor
So that method land where they actually belong.

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
c5dfd9c8c8 validate: Add a way to pass a MediaDescriptor around monitors
And add an option in gst-validate so that the user can define what
media descriptor file to use.

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
c8a99218de validate:media-descriptor: Handle stream with no tags
It was segfaulting before.
2014-10-21 20:14:05 +02:00
Thibault Saunier
8fb3e6112c validate: Add more files to gitignore 2014-10-21 20:14:05 +02:00
Thibault Saunier
8f5347c465 validate: Move some method between GstMediaDescriptorParser and GstMediaDescriptor
So that method land where they actually belong.
2014-10-21 20:14:05 +02:00
Mathieu Duponchelle
c542d9c6bc validate-report / reporter: rework the way we repeat issues.
+ runner: update reports count algorithm.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
5690a02e0a pad-monitor: mark the peer pad as EOS too.
When a sink pad gets EOS, its src pad monitor should also
be marked as EOS (helpful with issue concatenation).
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
0b1d00df25 validate-pad-monitor / runner: Check per-object reporting levels. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
167c29125d validate-report: Set conditions in which a report can't be master. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
582cebeae6 validate-report: Add a reporting level field and setter. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
030e7e8ba8 validate-runner: implement synthetic report.
+ Fix criticals logic in validate_runner_printf
+ Update padmonitor tests
+ Split validate_report_printf function.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
1993229993 validate-runner: Implement REPORT_NONE for global reporting.
Yeah that was tough. Helpful already though, for example:
GST_VALIDATE_REPORT_LEVEL=none,x:all gst-validate src name=x ! sink
will only report issues reported by the source.

+ Add test.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
0a1cdb2164 tests: Check monitors correctly determine their reporting level.
+ [API] gst_validate_reporter_get_reporting_level
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
5cb60060dc validate-runner / monitor: Let the user single out pads.
That's some pretty specific code but it should be helpful.
The following syntax can be used : element-name::pad-name.

+ Free return of gst_object_get_name.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
b21bb1ff34 validate-runner / reporter: Sanitize reports refcounting.
The previous code worked but was confusing, the runner didn't actually
take the ref it was releasing later.

+ Fix indentation.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
de554ba417 tests: Test reports refcounts.
+ Set the element monitor on the element as qdata.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
c943a75766 validate-monitor: Determine the reporting level at setup. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
1d7f15598f validate-runner: Add code to parse GST_VALIDATE_REPORT_LEVEL.
+ Extend the tests.
+ [API] gst_validate_runner_get_default_reporting_level
+ [API] gst_validate_runner_get_reporting_level_for_name
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
6ed125bfb1 validate-runner: report-level initial work.
+ Defines reporting levels and document them.
+ Add API to get the default level.
+ fix indentation.
+ fix some typos.
+ Add the beginning of a reporting test.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
6e08079f8b validate-pad-monitor: concatenate issues.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=735665

The process is to check for a similar report in intercept_report on
the pads of the upstream element, set that report as the master report
of the intercepted report, and return REPORTER_KEEP instead
of REPORTER_REPORT.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
d747e1cd05 test-utils: add a create_and_monitor element function. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
f001777cc6 validate-reporter: Add some methods
+ gst_validate_reporter_get_reports
+ gst_validate_reporter_get_reports_count
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
222a517384 validate-report: Add the notion of master / shadow reports.
A master report is a report that has been detected by a monitor
to stem from the same issue. It thus contains a list of
"shadow reports" which it will browse when printing itself.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
b8ac717297 validate-report: Make the ref / unref functions safer. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
1fcaf8918f tests/padmonitor: Correcly strdup the result of get_metadata.
The const pointer was becoming invalid after the first call to add_metadata,
and we ended up setting corrupted data on the second call.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
3e557ca92b validate-reporter: Add return value to intercept_report.
It will allow to drop, keep or report reports.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
6104701268 validate-pad-monitor: Reimplement reporter interface.
+ Do nothing there for now, except chain up.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
fb90aa2ead validate-reporter: add gst_validate_reporter_get_report.
+ Add locking.
2014-10-21 20:13:51 +02:00
Thibault Saunier
1cc89414f1 Back to development 2014-10-20 13:38:20 +02:00
Thibault Saunier
ad415424a1 Release 1.4.0 2014-10-20 13:24:29 +02:00
Thibault Saunier
26ef55d622 validate: Print position if it could properly be queried
Otherwize we will print meaningless garbage.
2014-10-13 16:30:05 +02:00
Thibault Saunier
4823d998fc validate:launcher: Minor enhancement in the documentation 2014-10-13 10:32:07 +02:00
Thibault Saunier
99045f7dbb validate: Rename action type playback_time to playback-time
Keeping backward compatiblity with the old naming
2014-10-12 20:19:42 +02:00
Thibault Saunier
02ab99fcbb validate: Rename gst_validate_add_action_type to gst_validate_register_action_type
The _register naming corresponds much better to what the method does
and makes it more similar to how we refer to this kind of action in
GStreamer.

It is a last minute API change, but that API should not change anymore
after 1.4 is released.
2014-10-12 20:10:19 +02:00
Thibault Saunier
9158bb36e3 validate: Fix the addition of playback_time in the parameter types 2014-10-12 20:00:03 +02:00
Thibault Saunier
8289f64904 validate: Rename --list-action-types to --inspect-action-type
Making clearer the meaning of the parameter and closer to the
usual naming in the GStreamer land.
2014-10-12 19:46:39 +02:00
Thibault Saunier
ce87de95ea validate: Add the 'flags' for the seek action type
This was always a mandatory field but was not documented
2014-10-12 19:16:08 +02:00
Anuj Jaiswal
83c0453d81 validate: mishandled pointer criticals
Free glist of criticals

Signed-off-by: Anuj Jaiswal <anuj.jaiswal@samsung.com>

https://bugzilla.gnome.org/show_bug.cgi?id=736313
2014-10-09 20:38:12 -03:00
Thibault Saunier
17bf802515 validate:docs: Add documentation about the default testsuite 2014-10-01 11:02:17 +02:00
Mathieu Duponchelle
8cfffb4a3a validate-runner: switch to using a GList for the reports.
+ Return a copy of that list in get_reports.
+ update tests.
2014-09-30 11:42:42 +02:00
Mathieu Duponchelle
1f1cf83af8 validate-runner: Hide implementation. 2014-09-30 11:42:42 +02:00
Mathieu Duponchelle
855f141453 gst-validate-runner: Add locking for the reports list. 2014-09-30 11:42:42 +02:00
Thibault Saunier
e7315aa78e Release 1.3.90 2014-09-29 15:37:40 +02:00
Thibault Saunier
b856d5985c validate:launcher: Factorize code to get a MediaDescriptor name for classname
Instead of copy/pasting that code badly
2014-09-12 11:26:48 +02:00
Edward Hervey
490a8f1ed9 validate/docs: Add location of Scenario/Action defines 2014-09-12 10:22:15 +02:00
Anuj Jaiswal
c98f7e7b38 validate: (performance issue)refactor to remove duplicate assignment
Signed-off-by: Anuj Jaiswal <anuj.jaiswal@samsung.com>

https://bugzilla.gnome.org/show_bug.cgi?id=736412
2014-09-12 09:57:05 +02:00
Thibault Saunier
1649b49f1c validate: docs: Always dist the launcher directoty
Fixing make distcheck
2014-09-12 09:57:05 +02:00
Thibault Saunier
332a51d1f0 validate: Get the Runner reports in order of arrival
Making sure they are printed in the right order
2014-09-12 09:57:05 +02:00
Thibault Saunier
7e85c9b0b5 validate: Start a testsuite
Currently implemented tests are:
  * Settup and cleanup on monitor is done properly
  * Some tests in the PadMonitor are done properly, namely:
        - Buffer before segment
        - Buffer outside segment
        - First buffer running time is always 0
        - The Demuxer flow aggregation is properly checked

https://bugzilla.gnome.org/show_bug.cgi?id=736379
2014-09-12 09:57:05 +02:00
Edward Hervey
80de4392ce validate/private: Avoid double typdef
Instead just include required (public and local) header

gst-validate-scenario.h:43:44: error: redefinition of typedef 'GstValidateActionParameter' is a C11 feature [-Werror,-Wtypedef-redefinition]
2014-09-12 09:49:35 +02:00
Thibault Saunier
07391578c9 validate: Make sphinx documentation generation optionnal 2014-09-06 12:37:30 +02:00
Thibault Saunier
3ff59368f0 validate:launcher: Add needed files to build documentation with sphinx 2014-09-06 12:22:48 +02:00
Thibault Saunier
b843ead1f8 validate: launcher: Cleanup and rename apps to avoid '-' in their name 2014-09-06 11:38:38 +02:00
Thibault Saunier
7838f3ebae validate:launcher: Avoid '.' before media file extension in test classnames 2014-09-06 10:02:13 +02:00
Felix Schwarz
1a8b460d23 validate:docs: fix spelling mistakes
https://bugzilla.gnome.org/show_bug.cgi?id=736160
2014-09-05 23:21:21 +02:00
Thibault Saunier
3755581fd3 validate: Take a const gchar ** in gst_validate_print_action_types
This is what we actually need and thus is cleaner.
2014-09-05 23:15:29 +02:00
Thibault Saunier
69165a9f04 validate: Implement the notion of implementer namespace to the action types
This allows users to know who implements an action type.

+ Enhance the printing of all action making it readable.
2014-09-05 23:03:58 +02:00
Thibault Saunier
15f52d4fa3 validate: Add informations on the switch-track action overrided for playbin 2014-09-05 19:30:52 +02:00
Thibault Saunier
34fd5af840 validate: docs: Add some GstValidate usage documentation
+ Fix minor issues in the gst-validate and gst-validate-transcoding
tools documentation
2014-09-05 19:00:23 +02:00
Guillaume Desmottes
f7955f5249 validate: remove redundant pre-condition in monitor_factory_create
The same check is already done at the head of the function.

https://bugzilla.gnome.org/show_bug.cgi?id=736019
2014-09-05 19:00:23 +02:00
Guillaume Desmottes
f900f53e95 validate: fix a couple of typos in comments
https://bugzilla.gnome.org/show_bug.cgi?id=736019
2014-09-05 19:00:23 +02:00
Thibault Saunier
ef64eb0d0e validate:docs: Sensibly update the usage file 2014-09-05 19:00:23 +02:00
Thibault Saunier
7cfdb5372c validate: Use a GList to store action types instead of hashtable
It is more adapted and allows us to print the action types in a stable
maneer.
2014-09-05 19:00:23 +02:00
Thibault Saunier
eb6739c91b validate: report: Do not repeat type name when printing its details 2014-09-05 19:00:23 +02:00
Thibault Saunier
b4ddea0fd2 validate: Change the version to 1.0.0.1
The 1.0.0.1 means that it is targetting the GStreamer 1.X serie,
and is a git version (thus 0.1)

GstValidate will most probably not be released and we should try to
be able to use it with as many version of the GStreamer 1.X serie
as possible.
2014-09-05 19:00:23 +02:00
Thibault Saunier
e5b485d776 validate: Document the API with gtk-doc 2014-09-05 19:00:23 +02:00
Thibault Saunier
45ffbdec07 validate: Add GObject Introspection support 2014-09-05 19:00:23 +02:00
Thibault Saunier
4fd1939b21 validate: Rework the action parameter API
Making it possible to properly define parameters, and describe them.

+ Document all action types!
2014-09-05 19:00:23 +02:00
Thibault Saunier
d29a8e4a77 validate: Add an option to print all avalaible actions with details
+ Cleanup actions descriptions
+ Make GstValidateActionType internal only and only expose the structure
2014-09-05 19:00:23 +02:00
Thibault Saunier
45e6d86c92 validate: Use the buffering mode to see if pipeline is live or not 2014-09-05 19:00:23 +02:00
Thibault Saunier
0ad475063d validate: Do not segfault when receiving a segment on unlink pad
For some reason we did no discover that before.
2014-09-05 19:00:23 +02:00
Thibault Saunier
8eeaa1a95f validate: Make GstValidateActionType a GstMiniObject and expose it in the API 2014-09-05 19:00:23 +02:00
Thibault Saunier
bdc09d2d4a validate:scenario: Cleanup header and add some padding to classes
Let's start making gst-validate ABI and API stable
2014-09-05 19:00:23 +02:00
Anuj Jaiswal
eb16061fa9 gst-validate: fix some minor memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=735099
2014-08-23 11:57:12 +01:00
Mathieu Duponchelle
99204c0018 validate: generate test names with the stream_info filename.
And not with the contained uri string, which is variable.
2014-08-19 18:47:18 +02:00
Thibault Saunier
3979c49cd2 validate: The scenario only old a weak ref so unref the weak ref
We were unrefing an object we did not actually own a ref on.
2014-08-12 15:14:28 +02:00
Thibault Saunier
161610c26e validate: Print when we set pipeline state because of buffering 2014-08-12 13:17:20 +02:00
Thibault Saunier
f4db183b2b validate:launcher: Properly handle libsdir when gst-validate is installed
+ Fix the _in_devel function
+ Install the validate default testsuite implementation in the right
place
2014-08-12 13:16:43 +02:00
Thibault Saunier
f6c62d071c validate:launcher: Let testsuite know the actual file in which they are 2014-08-12 13:16:43 +02:00
Thibault Saunier
bf30bf4fd7 validate:launcher: Add the logic of needed env variables in tests 2014-08-12 13:16:43 +02:00
Thibault Saunier
e81c0093fc validate:launcher: Expose all classes to be used to create testsuites
To create testsuite from outside gst-validate, the user will need to be
able to use the TestGenerator and subclasses of Test that we implement
in the apps, to do so we publicly expose them in the TestManager class
so that user have acces to everything they need.
2014-08-12 13:16:43 +02:00
Thibault Saunier
20c28def3c validate:launcher: Handle stdout/stderr as possible logfiles
Allowing people to get all the logs in the terminal
2014-08-12 13:16:43 +02:00
Thibault Saunier
32dac5014a validate: Allow several outputs in GST_VALIDATE_FILE 2014-08-12 13:16:43 +02:00
Thibault Saunier
8e1997d820 validate: Launcher: Add support for the dash protocol
And make sure that the HTTP server is started if it is needed to serve
some HLS or DASH streams
2014-08-12 13:16:43 +02:00
Thibault Saunier
631db75718 validate:Launcher: Use the first media path as a path for http server
We need to have a default path and the first one sounds like a
reasonnable default.
2014-08-12 13:16:43 +02:00
Thibault Saunier
2da2c6cc56 validate:launcher: Allow limitating local HTTP server bandwith
By default we limit its bandwith to 1MBps which is somehow similare to a
good internet connection case.
2014-08-12 13:16:43 +02:00
Thibault Saunier
702992cf7a validate:launcher: Disable racy HLS tests
+ Add need-clock-synk to switch_audio_track_while_paused as it relies on
the clock sync to pause and then display subtitles
2014-08-06 09:08:36 +02:00
Thibault Saunier
bab8a4c3bb validate:launcher: Take into account exitcode in transcoding tests
And disable a few racy tests that were not detected because of that
2014-08-05 11:33:08 +02:00
Thibault Saunier
7875b9a3d9 validate:launcher:testsuite: De activate backward playback where appropriate
And re activate it where it works
2014-08-04 13:03:54 +02:00
Thibault Saunier
f42f0724e5 validate: Actually accept rounding errors and small mistakes for position
WHen seeking in paused the position right after should be pretty much
the exact one, but sometimes it can be a little different because of
rounding issues and similare.
2014-08-04 13:03:19 +02:00
Thibault Saunier
8518e08dbb validate: Add a way to avoid printing all the issue in reports
Avoiding user to be flooded by information he does not want while
debugging
2014-08-04 13:02:46 +02:00
Thibault Saunier
d682bd29a9 validate: Print the report when aborting because of an issue
Letting a chance to the user to know what bug he faced!
2014-08-04 13:02:46 +02:00
Thibault Saunier
5c50219fae validate: Enhance output about critical errors
+Lower some warning to INFO
2014-08-04 13:02:46 +02:00
Thibault Saunier
6da09fb919 validate: Allow overrides for scenario issues 2014-08-04 13:02:46 +02:00
Thibault Saunier
1bd6b2767f validate: Avoid readding several time the same test in the tests result list 2014-08-04 13:02:46 +02:00
Thibault Saunier
b9712e336e validate:launcher: Fix test number print 2014-08-04 13:02:46 +02:00
Thibault Saunier
0dd8e9cd3d tools: Launcher: Disable validate.file.*.simple.scrub_forward_seeking.synchronized
It is still a bit racy and sometimes the seek just does not happen
2014-07-31 17:56:13 +02:00
Thibault Saunier
7057a9fd50 tools: launcher: Disable subtitle track switching scenario on Sintel
It is racy at the moment.
2014-07-31 17:43:51 +02:00
Thibault Saunier
1aa0d4eb4a validate:launcher: Allow informing minimum media duration in scenarios
Allowing the launcher to avoid running tests on medias that are not long
enough
2014-07-23 20:43:57 +02:00
Thibault Saunier
24fe345f73 validate:launcher: Always print final report + enhance output 2014-07-23 17:49:44 +02:00
Thibault Saunier
35b6bfb7c8 validate:scenario: Properly check that remaining actions are not 'ending' ones
When checking that all action were executed, we need to make sure that
actions such as EOS or stop are not taken into account as we might have
shorter medias than the duration of the scenario, and that should not be
fatal.

+ Plug a leak on the way
2014-07-23 17:49:44 +02:00
Thibault Saunier
386b572066 validate: launcher: Force clock syncronization for some scenarios
In some cases it is necessary that the clock is sync so that all the
actions can be executed.
2014-07-23 17:49:44 +02:00
Thibault Saunier
40003689df validate: Launcher: Make sure tests are always executed in same order 2014-07-23 13:48:44 +02:00
Thiago Santos
3cf3e7a438 gst-validate-scenario: add emit-signal
emit-signal action allows to emit signals to elements in scenarios.
The implementation only accepts signals without arguments for now but
it can be extended to use parameters if needed in the future
2014-07-22 11:59:58 -03:00
Thibault Saunier
1cdbba4327 validate: Launcher: Fix a backtrace using self in a @staticmethod 2014-07-22 15:50:47 +02:00
Thiago Santos
fd7c13d446 gst-validate-scenario: the structure has the type
Get the GValue directly from the structure and do not assume everything
is stored as a string and use the GstStructure's GValue to set the property
to the instances
2014-07-21 22:41:28 -03:00
Thiago Santos
d7c3d652d0 gst-validate: properly set pipeline to null before unref
In case it fails when going ready->paused it will remain in ready state
and be unref'd in ready, leading to an assertion
2014-07-21 22:01:27 -03:00
Arnaud Vrac
e1b3ec2ad7 validate: Fix build on some custom platforms
We need to explicitely pass GLIB_LIBS for GModule as it seems not to be included by
GST_ALL_LIBS and we need LIBM
2014-07-21 19:09:58 +02:00
Lubosz Sarnecki
24046a6168 httpserver: launch webserver with the same python interpreter. 2014-07-21 18:01:25 +02:00
Thibault Saunier
7d695fbed4 validate: Dot the pipeline on interuption 2014-07-19 09:48:17 +02:00
Aurélien Zanelli
d1c261f5b1 validate: duplicate strings in gst_validate_issue_new()
Do this to avoid discarding 'const' qualifier when using it with
constant strings. Moreover it will avoid a g_free on constant string.

https://bugzilla.gnome.org/show_bug.cgi?id=733362
2014-07-18 16:28:58 +02:00
Thibault Saunier
cf540d002b validate:launcher: Fix a backtrace using an undefined method 2014-07-18 16:28:49 +02:00
Thibault Saunier
3cfa480eba valdate:launcher: Do not refer to self in @staticmethod
There is no self in there.
2014-07-17 17:04:59 +02:00
Thibault Saunier
d7d1445e67 validate: Add a set-debug-threshold scenario action
Allowing users to activate the debug only at the interesting time
2014-07-17 17:04:59 +02:00
Thibault Saunier
cd55381a5f validate: Add Gst debugging when using gst-validate printing feature
Giving usefull debugging informations in the GSt debug logs
2014-07-17 17:04:59 +02:00
Thibault Saunier
f6884a5a54 validate: Do not auto flush pipeline bus
We want to see all messages in our async handler

And flush it when we are done.
2014-07-17 12:17:31 +02:00
Thibault Saunier
fcb8a77e17 validate:launcher: Avoid using sync=true on fakesinks
Making the test run much faster!
2014-07-16 19:38:01 +02:00
Thibault Saunier
b075646451 validate: Launcher: Print total time spent in the final report 2014-07-16 19:37:35 +02:00
Thibault Saunier
71ae6d3816 validate: Make switch_subtitle_track_while_paused handle states 2014-07-16 18:21:16 +02:00
Thibault Saunier
e07e7cd43e vaildate: Make disable_subtitle_track_while_paused handle states 2014-07-16 15:47:59 +02:00
Thibault Saunier
ded4bec35a validate: Make scrub_forward_seeking handle states 2014-07-16 15:47:59 +02:00
Thibault Saunier
f5454f07f0 validate:launcher: Properly check that encoded files have the exact wanted format 2014-07-16 15:47:58 +02:00
Thibault Saunier
fe9ed41d6c validate:launcher: Add a method to create a GstValidateMediaDescriptor from a uri 2014-07-16 15:47:58 +02:00
Thibault Saunier
265688fcd6 validate:launcher: Move MediaFormatCombination to baseclasses.py
+ Add some simple helpers
2014-07-16 15:47:58 +02:00
Thibault Saunier
f1163d61ba validate:launcher: Implement a GstValidateEncodingTestInterface class
Allowing code to be shared between apps that run rendering tests
2014-07-16 15:47:58 +02:00
Thibault Saunier
a735b9eb99 validate:launcher: Implement a MediaDescriptor subclass for xges project files 2014-07-16 15:47:58 +02:00
Thibault Saunier
d61c0d6166 validate:launcher: Make a MediaDescriptor baseclass to be used by any application 2014-07-16 15:47:58 +02:00
Thibault Saunier
89aa70545a validate:launcher: Give information to users when cloning asset failed
It might not be obvious from the stacktrace so it is better to clearly
explain what the failure was when we know it
2014-07-16 15:47:58 +02:00
Thibault Saunier
6beb346aa3 validate:launcher: Fixup the default asset update command 2014-07-16 15:47:58 +02:00
Thibault Saunier
9a69c21acc validate:launcher: Generate proper EncodingProfiles for audio/video only media files 2014-07-16 15:47:58 +02:00
Thibault Saunier
87cc7da213 validate:launcher: Move the MediaDescriptor class to the baseclasses.py file 2014-07-16 15:47:58 +02:00
Thibault Saunier
58256ab135 validate:launcher: Allow transcoding audio only files 5 time longer than long_limit
Transcoding audio is a lot shorter so we can concider that transcoding files that are only
only is 5 time shorter than the actual file (empirical number)
2014-07-16 15:47:58 +02:00
Thibault Saunier
f925c0c1be validate:media-check: Pass the GError where needed. 2014-07-16 15:47:58 +02:00
Thibault Saunier
822c7eaa6e validate: Avoid segfault in the error path 2014-07-16 15:47:58 +02:00
Thibault Saunier
f8a37a1c80 validate:media-descriptor-writer: Handle medias with 1 single stream 2014-07-16 15:47:58 +02:00
Thibault Saunier
fa35a10779 validate: Check that after a seek in PAUSED position is perfect
In case of ACCURATE seeking, the position after a SEEK in PAUSED state
should be *exactly* the one requested by the user.
2014-07-16 15:47:58 +02:00
Thiago Santos
db21883c0c scenario: add set_property scenario action
Allows setting element's properties during a scenario. Very useful
for testing that elements behave correctly when changing properties
during playing state

https://bugzilla.gnome.org/show_bug.cgi?id=733070
2014-07-11 19:43:20 -03:00
Thibault Saunier
bed0f51d6c validate: Execute actions if we get seeked in ready state 2014-07-07 11:27:35 +02:00
Thibault Saunier
87ae465c77 validate: Let scenarios tell the apps about whether it handles states
The user only needs to add handles-states=true in the description line
of the scenario
2014-07-07 11:27:34 +02:00
Thibault Saunier
52e39a4fcb validate:scenario: Do not care about the position if we are not at least in PAUSED state
At that time the position query will be meaningless so we should just go to the next
action.
2014-07-07 11:27:34 +02:00
Thibault Saunier
4227655db1 validate: Handle MXF files 2014-07-07 11:27:34 +02:00
Thibault Saunier
1c2d31dd2f validate:media-check: Changes in tags detection are not fatal issues 2014-07-07 11:27:34 +02:00
Thibault Saunier
7d23d75edb validate:launcher Add video mixing tests
+ Move default_testsuite.py to validate_testsuite.py as we are now
exposing tests that are not enabled by default
2014-07-07 11:27:34 +02:00
Thibault Saunier
af383ad0c0 validate:launcher: Move the notion of test generator to the baseclasses
This can be very usefull for all the TestManager and thus exposes a
higher level API for test writers.
2014-07-07 11:27:34 +02:00
Thibault Saunier
aeec108c88 validate:launcher: Move default testsuite to a dedicated file
Making the separation cleaner between the launcher and the test
implementation
2014-07-07 11:27:34 +02:00
Thibault Saunier
00719fb07e validate: Properly handle CLOCK_TIME_NONE position and duration values
In the value parser.
2014-07-07 11:27:34 +02:00
Thibault Saunier
3607fd8deb validate: Print the return value at the end
Making it easier to know whether the test passed or not.
2014-07-07 11:27:34 +02:00
Thibault Saunier
f708156ff6 validate:scenario: Move the check about whether we are still seeking upper in the function
Avoiding to try to get position and do operations on a pipeline that is seeking
2014-07-07 11:27:34 +02:00
Vincent Penquerc'h
4dc3f5171e validate-scenario: only use valid position/duration
Position/duration query may fail, or yield unknown values (eg,
unknown duration for live streams). In these cases, we must ensure
we do not use those invalid values.

https://bugzilla.gnome.org/show_bug.cgi?id=715160
2014-07-07 11:27:34 +02:00
Thibault Saunier
71cd2a8ce7 validate:launcher: Not concider all scenarios by default with --wanted-test
Instead let the users activate that with -t ALL
2014-07-07 11:27:34 +02:00
Thibault Saunier
5266fee48c validate:launcher: Let the user set user options in the config file 2014-07-07 11:27:34 +02:00
Thibault Saunier
b9389c85c2 validate:launcher: Use RawTextHelpFormatter to (not) format user help 2014-07-07 11:27:34 +02:00
Thibault Saunier
f10ff2b610 validate:launcher: Add a way to create test suite outside the three
+ Make sure to namespace the API
+ Remove cruft about G_V_PROTOCOL_VIDEO_RESTRICTION_CAPS
2014-07-07 11:27:34 +02:00
Thibault Saunier
150c5bc6b2 validate:scenario: We are not changing state if the set_state failed. 2014-07-07 11:27:34 +02:00
Thibault Saunier
b3a168ed73 validate:scenario: Add a debug category and add some debug 2014-07-07 11:27:34 +02:00
Thibault Saunier
a4d3971709 validate: media-descirptor: Add more infos about discoverer error 2014-07-07 11:27:34 +02:00
Thibault Saunier
5983df47c5 validate:launcher: Cleanup the way we generate tests adding the notion of TestGenerator
Making it easier to extend the testsuite.
2014-07-07 11:27:34 +02:00
Thibault Saunier
5c85e4500d validate:tools: Dot the pipeline on usefull places
Meaning on warning and state changes.
2014-07-07 11:27:34 +02:00
Sebastian Dröge
b6c439ee88 validate: Don't call gst_debug_log_valist() if debugging is disabled
And also stop leaking a string every time.
2014-06-28 12:33:45 +02:00
Sebastian Dröge
3ecd8352eb gst-validate: Add $(GIO_LIBS) and $(GIO_CFLAGS) as required 2014-06-28 11:36:27 +02:00
Thibault Saunier
bbe56a4fd9 validate: Fix launcher when running installed 2014-06-17 15:10:41 +02:00
Thibault Saunier
c7c879fc1c validate: scenarios: Install play_15s.scenario 2014-06-17 14:17:21 +02:00
Thibault Saunier
4f01b2bd8a validate:launcher:reporter: Sort Final report by results 2014-06-16 16:47:18 +02:00
Thibault Saunier
b8e1c3e64c validate:launcher:ges: Fix rendered duration checking 2014-06-16 16:46:21 +02:00
Thibault Saunier
e847d7061a validate: pad-monitor: Do not compare not fixed sinkpad caps fields
We are only able to check that the sink pad caps values are inside the src pad
value.
2014-06-16 16:43:02 +02:00
Thibault Saunier
93d9032712 scenario: Do not be so tolerant about seek drift 2014-06-16 08:56:30 +02:00
Edward Hervey
0693805e9c pad-monitor: Handle out-of-segment first buffer
If the initial buffer is before segment.start, we don't want to raise
the "first buffer doesn't have 0 running-time" issue.

Also add debug for tracking issues
2014-06-03 10:05:25 +02:00
Edward Hervey
ca44a11429 validate: Run gst-indent on all code
so whitespace. much indent. spacing !
2014-06-03 10:05:25 +02:00
Thibault Saunier
90f5dae534 validate: Depend at least on GLib 2.36 2014-05-27 12:33:08 +02:00
Thibault Saunier
0bde7bcacb validate: Add a scrub_backward_seeking scenario
+ Make use of it in ges-launch and do not try to seek while playing in
GES as it is not supported yet
2014-05-27 12:33:08 +02:00
Nicolas Dufresne
fea3893686 validate: Don't pass NULL to g_strsplit 2014-05-24 01:28:36 -04:00
Edward Hervey
ebde58f1d1 validate-utils: Fix unitialized variable
gst-validate-utils.c:413:7: error: variable 'v0' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
  if (c == '!') {
      ^~~~~~~~
gst-validate-utils.c:424:10: note: uninitialized use occurs here
  return v0;
         ^~
gst-validate-utils.c:413:3: note: remove the 'if' if its condition is always false
  if (c == '!') {
  ^~~~~~~~~~~~~~~
gst-validate-utils.c:411:13: note: initialize the variable 'v0' to silence this warning
  gdouble v0;
            ^
             = 0.0
1
2014-05-22 16:13:31 +02:00
Thibault Saunier
1a2f4a3cd3 validate: Move overrides and preload libraries to dedicated folders
This way it is cleaner and it is simpler to handle the various compilation dependencies.
2014-05-21 12:00:26 +02:00
Lubosz Sarnecki
1043aa3f55 python: change shebangs to python2 2014-05-19 10:21:07 +02:00
Thibault Saunier
9660a8bd3a validate: Properly use boolean in XML 2014-05-15 09:46:24 +02:00
Thibault Saunier
92d390bc5d validate: Improve perf when writing the XML file
+ Pass the file into gst-indent
2014-05-08 17:48:39 +02:00
Thibault Saunier
dae0c4ef81 validate: Add a scenario that switches state many intensively
+ Use it by default in the launcher tests
2014-05-07 16:45:27 +02:00
Thibault Saunier
384686a7f7 validate: Minor fix for blacklisted test output formatting 2014-05-07 12:44:51 +02:00
Thibault Saunier
0b4bd7940a validate:launcher: Add an option to only launch the http server 2014-05-07 12:44:51 +02:00
Thibault Saunier
8a295da795 validate: Keep scenario discovering logs in a file 2014-05-07 12:44:51 +02:00
Thibault Saunier
7590148e20 validate: Avoid using stop value in the fast_forward scenario 2014-05-07 12:44:39 +02:00
Thibault Saunier
720b9eff47 validate: Properly check that outputed videos have a correct duration 2014-05-07 11:30:39 +02:00
Thibault Saunier
cdb8822ae3 validate: Add the notion of "long" tests so that we can avoid some test to be run if they are too long 2014-05-07 11:30:09 +02:00
Thibault Saunier
ac6e463009 scenario: Add a general action to set state 2014-05-07 09:51:19 +02:00
Thibault Saunier
08898ff219 validate: Properly set the pre commit hook 2014-05-07 09:50:28 +02:00
Thibault Saunier
7d55065277 validate:scenario: Pass into gst-indent 2014-05-07 09:46:28 +02:00
Thibault Saunier
cd8000994b validate: The wait mandatory field is duration 2014-05-07 09:15:34 +02:00
Thibault Saunier
0aff591b2f validate: Make sure mandatory fields are present when parsing scenarios 2014-05-07 09:11:12 +02:00
Mathieu Duponchelle
7d4abf31e7 scenarios: add a stateless property.
This property enables the user to have actions executed independently
of the state of the pipeline.

Conflicts:
	validate/gst/validate/gst-validate-scenario.c
2014-05-06 15:37:26 +02:00
Mathieu Duponchelle
1332e9fc4f scenario: make sure to not execute actions when changing state.
Conflicts:
	validate/gst/validate/gst-validate-scenario.c
2014-05-05 17:21:06 +02:00
Thibault Saunier
49ab41743b validate: The 'buffering' variable needs to be static
We need its value between bus_callback calls to be the same
2014-05-04 09:30:16 +02:00
Luis de Bethencourt
eabcf8f106 gst-validate: some static variables can be local
buffering is only used inside the bus_callback, so it can have that local
scope. same thing with ret which is only used in the main function.
2014-05-02 17:25:07 -04:00
Luis de Bethencourt
0b01b578ce gst-validate: small typo in usage summary 2014-05-02 16:53:51 -04:00