Commit graph

336 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
1c2d31dd2f validate:media-check: Changes in tags detection are not fatal issues 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
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
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
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
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
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
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
ac6e463009 scenario: Add a general action to set state 2014-05-07 09:51:19 +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
aceba228ce validate: Wait for the PAUSED state to be reached before executing actions 2014-05-02 20:05:28 +02:00
Thibault Saunier
fbcee57902 validate: Implement frame by frame writing in the media descriptor writer
+ Add an option to fully parse media files in the gst-validate-media-check tool
2014-05-02 18:30:23 +02:00
Thibault Saunier
ba38d09961 validate: Execute position right when the pipeline reaches PAUSED
We might go to PAUSED SYNC if nothing happens in the pipeline
2014-05-02 18:30:23 +02:00
Thibault Saunier
efb40d9778 validate: Do not execute action when buffering
While buffering we should no try to execute anything as we would not be
controlling properly the execution.

+ Activate scrub forward seeking for HTTP streams
2014-05-02 18:30:23 +02:00
Thibault Saunier
b37fafa1e6 validate: Plug a minor leak 2014-05-02 18:30:23 +02:00
Thibault Saunier
1ffb6b4e1c validate: Allow specifying scenarios to parse when lisiting them
It used to only handle the scenario present in proper paths, we
also need to handle special scenarios provided by users on the fly
2014-05-02 18:30:22 +02:00
Thibault Saunier
f165fb41d0 validate: Handle ERROR on the bus when monitoring the pipeline
This way the user get a  clear information in the report about the issue

+ sensibly cleanup code
2014-05-02 18:30:22 +02:00
Thibault Saunier
3a1db22188 validate: Do not g_strrstr with a NULL pointer as needle 2014-05-02 18:30:22 +02:00
Thibault Saunier
3402d5556a validate: Print more details when executing the switch_track action
+ Fix some issue in the memory freeing codepath of GstValidateAction
2014-05-02 18:30:22 +02:00
Thibault Saunier
93bd46dbc2 validate: Do not try to use a NULL iter 2014-05-02 18:30:22 +02:00
Thiago Santos
385d6d4ccd pad-monitor: check that no buffers are pushed after a pad is EOS
Make sure no resources are wasted after elements are done with the
current segment
2014-05-02 12:07:53 -03:00
Thibault Saunier
676602644c validate: Expose a seeking method so other actions types can seek
Other action types might need to seek and we GstValidateScenario need
to know about it, add a method others can use to do the seeking
2014-04-26 09:52:37 +02:00
Thibault Saunier
a3a132489a Revert "validate:launcher: Always put gst-validate result as stderr in reports"
This reverts commit 925ff7542b.

Actually jenkins never  truncates on failure stacktrace... we do not
want to set gst-validate as failure stacktrace in our results. That
commit was not usefull.
2014-04-26 09:16:26 +02:00