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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
32dac5014a
validate: Allow several outputs in GST_VALIDATE_FILE
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
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
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