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
Thiago Santos
2e216818bd
Replacing mentions of qa with validate
2013-09-02 13:22:51 -03:00
Edward Hervey
cc65145eb1
pad-monitor: Check if iterator exists before trying to use it
2013-09-02 12:18:07 -03:00
Edward Hervey
788054bda7
pad-monitor: make debug log more readable
...
Use pad as the debug object to make logs more meaningful.
Also adds a FIXME note
2013-09-02 12:15:24 -03:00
Edward Hervey
fb58e16c5a
element-monitor: protect agains elements that have no klass
2013-09-02 12:11:25 -03:00
Thiago Santos
ea903da1c7
pad-monitor: use activate-mode function to detect when to clear pad data
...
Clear as much as a flush-stop when pad is deactivated
2013-09-02 12:05:46 -03:00
Edward Hervey
d2edb59a24
WIP: pad-monitor: Fix serialized event order check
2013-09-02 10:47:32 -03:00
Thiago Santos
fef4eba9a2
pad-monitor: also track eos event that should be emitted after a seek
...
When seeking out of the media file length, the element should push an
EOS with the same seqnum of the seek event
2013-09-02 10:46:55 -03:00
Thiago Santos
390b54f40d
scenario: add missing space
2013-09-02 10:46:42 -03:00
Edward Hervey
78e1cb82da
validate: prettify output of results
...
Makes the result a bit more readable than a compact multi-line list.
FIXME: Figure out how to print the description of the issues (which can
spawn multiple lines) in a nice way.
2013-09-02 10:03:07 -03:00
Thiago Santos
adca72b069
scenario: add missing line break after print
2013-08-29 14:27:34 -03:00
Thiago Santos
713da78201
pad-monitor: avoid tracking tag events
...
Tag events are hard to track and check if properly serialized because
they mutate too much inside elements. There is no reliable way currently
to match a tag event pushed into an element and another tag event
leaving the element (other than if the pointers are actually the same).
2013-08-29 14:26:05 -03:00
Thiago Santos
1c874d175e
pad-monitor: only do combined return checks for demuxers
...
Seems like the only place that gstreamer elements should really
care about it
2013-08-29 11:48:33 -03:00
Thiago Santos
a426198916
pad-monitor: add two useful macros for readability
...
Avoids using long macros and having to check for pad-monitor parent
existance
2013-08-29 11:47:58 -03:00
Vincent Penquerc'h
f5f4635d0e
media-info: add a track switching test
...
This test will find the first input selector with more than one
sink pad, and cycle through them till it gets back to the original
one. Five seconds between switches. The test checks that some data
was sent from the input selector when each of the sink pads was
selected.
2013-08-29 10:43:03 -03:00
Thibault Saunier
f893bb7534
scenario: Print on stdout when we seek
2013-08-28 19:14:31 -03:00
Thibault Saunier
1dcfaea37f
validate: Report an issue result of query state that position > duration
2013-08-28 19:00:58 -03:00
Thibault Saunier
78d2fde632
scenario: Execute action whenever we pass the expected position
...
We know are sequential so whenever the wanted position is passed we
should execute the action.
This avoid issue with the tolerance when we have high rate playback
2013-08-28 18:55:55 -03:00
Thibault Saunier
5953b71907
validate: Dump pipeline for each state change
...
Ala gst-launch
2013-08-28 18:54:18 -03:00
Thibault Saunier
beb537d10b
transcoding: Print duration regularly
2013-08-28 18:53:46 -03:00
Thibault Saunier
80702884f0
validate: Print state changes to help debugging
2013-08-28 18:51:53 -03:00
Thiago Santos
1dd93bea2a
licenses: improving licensing info on all files
2013-08-28 16:58:11 -03:00
Thiago Santos
5f261269f8
pad-monitor: fix typo when acessing parents data
2013-08-28 16:49:07 -03:00
Thiago Santos
103bf74768
pad-monitor: reset buffer timestamp data after a flush
...
As the pad/element also clears its internal state
2013-08-27 18:26:14 -03:00
Thiago Santos
49d39be022
pad-monitor: also track flush events on probes
2013-08-27 16:16:08 -03:00
Thiago Santos
41e0bf1e91
tools: moving applications from gst/validate to tools
...
Keeps the CLI applications separate from the libs files
2013-08-27 12:04:31 -03:00
Vincent Penquerc'h
aa814d0189
gst-validate-scenario: fix scenario listing missing installed ones
...
Only scenarii in the current directory or the user's home directory
were being listed.
2013-08-27 11:52:11 -03:00
Vincent Penquerc'h
69597d9f5e
gst-validate-transcoding: fix help text to refer to URIs as URIs
...
Referring to them as files is confusing, as you'll try to use files
and not URIs.
2013-08-27 11:52:10 -03:00
Vincent Penquerc'h
c79430a450
docs: minor spelling/grammar fixes
2013-08-27 11:52:09 -03:00
Thiago Santos
2ba098976a
pad-monitor: Move repeated caps to test only on sinkpads
...
Testing on source pads can lead to false positives when pads are
unlinked. The caps event is sticky and will be pushed again later
when another buffer/event is pushed, leading to an acceptable
situation to push the caps twice.
2013-08-27 11:48:00 -03:00
Thiago Santos
b591f11b15
pad-monitor: add another acceptable flow return combination scenarios
...
A demuxer knows when to return EOS after samples are over, so it is
ok for it to return even when all src pads returned OK
2013-08-26 20:33:23 -03:00
Thiago Santos
a06a9038a4
pad-monitor: improve serialized event checks
...
If the event was already found at the first position of the array, it
shouldn't be searched on the rest of it.
This removes lots of false positives.
2013-08-26 20:33:23 -03:00
Thiago Santos
1a54b40c78
pad-monitor: fix aggregate flow return check for error situations
...
Flow flushing must be returned upstream to indicate an error situation
downstream
2013-08-26 20:33:22 -03:00
Thiago Santos
185d10bf79
gst-validate: print error message when starting the pipeline fails
...
Instead of just exiting silently
2013-08-26 20:33:22 -03:00
Edward Hervey
e48eadad75
pad-monitor: New check for duplicate caps event
...
We shouldn't get/push twice caps that are identical
2013-08-26 17:09:04 -03:00
Thiago Santos
104cccdfc0
media-info: avoid glib assert
2013-08-23 17:26:51 -03:00
Edward Hervey
4f3e1de776
report: Avoid repeating long macros
...
Makes the code a bit more readable and compact
2013-08-23 11:38:15 +02:00
Edward Hervey
60a2dfaf72
validate-report: Fix critical flag handling
...
criticals are warnings/issues also
warnings are issues also
2013-08-23 11:10:57 +02:00
Thibault Saunier
65e478f471
data: Add a test that alternates (fast) backward and forward playback
2013-08-22 14:13:12 -03:00
Thibault Saunier
c5a70ba0c5
data: Add a seek_backward/forward scenarios
2013-08-22 14:13:11 -03:00
Thibault Saunier
0609de7156
scenario: Have GstClockTime as second (in double) inside scenario files
...
Making it easier to read
2013-08-22 14:13:07 -03:00
Thibault Saunier
9fd62ba798
data: Add fast_forward/backward and simple_backward scenarios
2013-08-22 13:55:36 -03:00
Thibault Saunier
ff3e435e94
data: Add a Backward and Forward seeking scenario
2013-08-22 13:55:08 -03:00
Thibault Saunier
0d819e51cf
data: Add a Pause/Resume scenario
2013-08-22 13:54:57 -03:00
Thibault Saunier
96ca875c56
validate: Set return value of apps to -1 only if a critical issues was reported
...
Conflicts:
gst/validate/gst-validate-transcoding.c
gst/validate/gst-validate.c
2013-08-22 13:54:39 -03:00
Thibault Saunier
375a47aa0d
transcoding: Make sure to initialize Gst before parsing options
...
Avoiding to break the help
2013-08-22 13:06:01 -03:00
Thibault Saunier
40e3b5881a
transcoding: Connect to the bus signals watch as the main watch might already be connected
2013-08-22 12:08:14 -03:00
Thibault Saunier
161e0cee12
scenario: Start monitoring the position only when the pipeline starts playing
...
Otherwize seeking with a playback_time=0 won't work properly
2013-08-22 12:06:29 -03:00
Thibault Saunier
f9ddb6f59e
scenario: Fix negative rate management
...
Properly parse the it has a gdouble and set the stop position of the seek as
seeked_position if the rate is negative
+ Add some debug
2013-08-22 12:05:18 -03:00
Thibault Saunier
ddd00741fd
scenario: Actions order in xml file is the order in which they must be executed
...
When seeking we might want to execute seeks at a playback time inferior than previous
seek, so we need to be able to define the order in which actions have to be
executed, the simplest way is to just concider that actions are always
order in the XML files.
+ Add some more debugs
Conflicts:
gst/validate/gst-validate-scenario.c
2013-08-22 12:04:08 -03:00
Thibault Saunier
15b3049764
scenario: Rename the seeks list to actions, and initialize action to 0 when allocating
2013-08-22 12:02:49 -03:00