Commit graph

267 commits

Author SHA1 Message Date
Thibault Saunier
3990d7716c data: Avoid races in the scrub_forward seeking scenario
Make sure that it does not last too long if the file is long (scrubing
on 10 secs maximum), and make sure that we do not end up seeking after
the max duration
2013-10-14 11:07:03 -03:00
Thibault Saunier
182f4e9a41 report: Set refcount=1 when creating a report
As it should start with 1 reference, not 0
2013-10-14 11:05:58 -03:00
Thibault Saunier
f8b4235e33 scenario: Add an action that checks the "force-key-unit" event execution 2013-10-09 14:24:42 -03:00
Thibault Saunier
10d1c4560e scenario: Make the get_clocktime helper a public method
So it can be reused outside of the core code
2013-10-09 09:33:06 -03:00
Thibault Saunier
4d59a2720e pad-monitor: Do not try to compare 2 not fixed values
There is no reliable way of checking those values in the case they
are not fixed, let's just make sure we get fixed values before
executing the check
2013-10-07 19:47:15 -03:00
Thibault Saunier
c2b58f347e data: Add an adaptive video framerate and size scenario 2013-10-07 17:40:54 -03:00
Thibault Saunier
464b008421 data: Add an adaptive video framerate scenario 2013-10-07 17:18:37 -03:00
Thibault Saunier
2580de34c5 data: Add a scenario where we change the video size on during playback 2013-10-07 15:57:30 -03:00
Thibault Saunier
10442def2f transcoding: Add a new action to change restriction caps at runtime 2013-10-07 15:57:30 -03:00
Thibault Saunier
75d7450e19 transcoding: Fix the way we get pad caps 2013-10-07 15:57:29 -03:00
Thibault Saunier
2b58bff057 data: Set seeks to accurate+flush by default 2013-10-05 13:36:21 -03:00
Thibault Saunier
b20166ff23 scenario: Pass through gst-indent 2013-10-05 13:36:05 -03:00
Thibault Saunier
820ebe3b26 scenario: Use g_error instead of exit (0) 2013-10-05 13:36:05 -03:00
Thibault Saunier
045cc47dcc scenario: Factor out function to get GstClockTime out of a structure 2013-10-05 13:36:04 -03:00
Thibault Saunier
4cea878563 scenario: Use a weak ref to the pipeline
We are listening to it, we should not be owning a ref to it.
2013-10-05 13:36:04 -03:00
Thibault Saunier
7e1249f089 runner: Use "18" as exit code in case of error
It is a random number, but it will in most cases give people a hint
that gst-validate reported a critical issue, and thus set the return
code, only by looking at it

Also make use of gst_validate_runner_print() in
gst-validate-transcoding.c as we were copy pasting that method there.
2013-10-05 13:36:04 -03:00
Thibault Saunier
ae641d0353 scenario: Handle formulas in playback_time
And port seek forward/backward scenarios to relative seeking
2013-10-05 13:36:04 -03:00
Thibault Saunier
e24645b133 scenario: Check that all action were properly executed 2013-10-05 13:36:04 -03:00
Thibault Saunier
c9ee576e8e scenario: Add the notion of repeated actions 2013-10-05 13:36:03 -03:00
Thibault Saunier
a89f32725b utils: Add util functions to parse simple mathematical expressions
And make use of it to set the start of a seek
2013-10-05 13:19:14 -03:00
Thibault Saunier
75356d4bbe scenario: Error out and exit when we fail loading a scenario 2013-10-05 13:19:14 -03:00
Olivier Crête
75e1f5040a gst-validate-scenario: Only typedef the struct once
Some gcc versions don't like the typedef being done twice
2013-10-03 18:14:29 -04:00
Vincent Penquerc'h
bb124f787d scenario: do not set default seek flags
Seeks will be done with no particular flags, unless specified
in the scenario.
2013-10-03 05:32:54 -04:00
Olivier Crête
3a6f42bf67 gst-validate: Don't use the GOptionContext after freeing it 2013-09-30 09:52:07 -04:00
Thibault Saunier
c469f9b2a4 pad-monitor: Check if channel-mask is present only if channels > 2
As it is not a mandatory field otherwize

https://bugzilla.gnome.org/show_bug.cgi?id=708499
2013-09-21 00:34:05 +02:00
Thibault Saunier
42857faaae scenario: Add GST_VALIDATE_SCENARIOS_PATH environment variable
So you can specify the PATHS where to look for scenario files
2013-09-21 00:32:52 +02:00
Thiago Santos
720010f073 scenarios: add 2 new scenarios for seeks with different seek types
They test seeks that only update the stop or the start position, some
demuxers seem not to handle the case where start type is set to None.
2013-09-20 15:18:35 -03:00
Thiago Santos
e3e463c0cc validate-scenario: track position query results closer
Always keep probing the pipeline for the current position and compare
with the latest requested seek segment to detect if the seek boundaries
are being respected
2013-09-20 15:18:35 -03:00
Thibault Saunier
b4a711c568 scenario: Make it possible to define mandatory fields
And give a descrpition for actions
2013-09-17 18:38:31 -03:00
Vincent Penquerc'h
ccc3f8d696 scenario: add a track switch command, and an audio track switch test
The "switch-track" command can be used to switch tracks. The "type"
argument selects which track type to change (can be "audio", "video",
or "text"). The "index" argument selects which track of this type
to use: it can be either a number, which will be the Nth track of
the given type, or a number with a "+" or "-" prefix, which means
a relative change (eg, "+1" means "next track", "-1" means "previous
track").

Conflicts:
	validate/gst/validate/gst-validate-scenario.c
2013-09-17 18:38:31 -03:00
Thibault Saunier
f0ef3803dd scenario: Make it possible to register action parsing funcs before init 2013-09-16 18:49:31 -03:00
Thibault Saunier
f85983a043 validate: Add .pc files so applications can link against us 2013-09-16 18:49:31 -03:00
Thibault Saunier
8a9e9a7fd7 data: Port remaning scenario files to new format
And add support to user declared timestamps -1.0 as GST_CLOCK_TIME_NONE
2013-09-13 12:03:44 -03:00
Thibault Saunier
ea1f0a64f2 scenario: Rework scenarios to be: 1- Simpler to write them, 2- extendible
Make the scenario files a list of GstStructure-s as strings
2013-09-09 19:31:21 -03:00
Thibault Saunier
711946879e bin-monitor: Add a way to specify pipelines on which to set scenarios
When used with LD_PRELOAD,  the application might use various pipelines
for several different thing, we need to make it possible to spcify a
specific pipeline (or set of pipelines) on which to run the scenario.

The format is in the form of:
            scenario_name:pipelinename_pattern*
2013-09-09 19:07:32 -03:00
Thibault Saunier
5cea134655 scenario: Try to run scenarios in development first 2013-09-09 19:01:44 -03:00
Edward Hervey
4dfecb6ee1 Adapt submodule usage for gst-devtools 2013-09-09 17:40:36 +02:00
Edward Hervey
746b6f41b2 tools: Update .gitignore for tools move 2013-09-09 15:36:15 +02:00
Thiago Santos
24b6284d17 pad-monitor: avoid false positives when a seek fails
Remove the expected seqnums for events when a seek fails, preventing
false positives at the final report
2013-09-05 16:15:40 -03:00
Vincent Penquerc'h
fefc5ffb41 monitor-preload: schedule a report printout at exit
Conflicts:
	tools/gst-validate.c
2013-09-05 13:40:41 -03:00
Vincent Penquerc'h
7223b183f3 gst-validate: ensure the top level element is a pipeline
For instance, "fakesrc" will return a fakesrc, not a pipeline.

This is similar to what gst-launch does, and avoids calling
pipeline API on a non pipeline object (and thus asserting).
2013-09-05 13:40:39 -03:00
Vincent Penquerc'h
9cf4857776 gst-validate: do not try to use a pipeline which failed to create
Instead, error out properly with the actual error, if available.
2013-09-05 13:40:35 -03:00
Vincent Penquerc'h
3019586677 gst-validate: initialize gst/glib before use in scenario listing
Also ensure that if just -l is passed, we don't try creating a
non existent pipeline.

This makes gst-validate -l work properly again.
2013-09-05 13:37:39 -03:00
Thiago Santos
789ea6e9d5 pad-monitor: fix typo on macro usage
Pass the correct variable to macro
2013-09-05 11:47:21 -03:00
Thiago Santos
1860712098 pad-monitor: allow flushing flow returns when pad is flushing
It should always be acceptable to return GST_FLOW_FLUSHING when the
pad is flushing
2013-09-05 11:46:46 -03:00
Thiago Santos
a1775e75e5 pad-monitor: removing bad check
Elements are allowed to accumulate segments, they don't have to push
1:1 segments as they receive
2013-09-04 08:51:54 -03:00
Thiago Santos
25c55501a0 pad-monitor: buffer timestamp ranges check
Improve buffer timestamp range check:

* Only do it for encoders or decoders
* Audio has an acceptable tolerance of 100ms

To do this, keep track of the caps on the pad and store
if it is dealing with audio or video
2013-09-03 15:35:36 -03:00
Thiago Santos
26cff77b72 pad-monitor: move caps check to common event handling
Allows both src and sink pad to keep track of the current caps, but
the duplicated caps check is still only applied to sink pads as
src pads can push the same caps multiple times when it isn't linked
2013-09-03 15:17:05 -03:00
Thiago Santos
bd0f19c105 pad-monitor: fix reference handling for expired events list 2013-09-02 20:41:35 -03:00
Thiago Santos
7154f280b5 docs: update and improve
Thanks to Thibault Saunier for most of the explanatory texts
2013-09-02 16:09:07 -03:00