[Bug 738124] New: validate: Design and implement an interface for setting a report level.
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Oct 7 17:33:11 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=738124
GStreamer | gst-devtools | git
Summary: validate: Design and implement an interface for
setting a report level.
Classification: Platform
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: enhancement
Priority: Normal
Component: gst-devtools
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: mathieu.duponchelle at epitech.eu
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
This first comment will not deal with implementation details.
Problem:
Currently, the output of gst_validate_runner_printf is
* Too verbose, even though the subchain issue concatenation implemented
at https://bugzilla.gnome.org/show_bug.cgi?id=735665 will partly solve
that situation.
Some tests in the GES validation suite report over 600 issues, trimmed
down to 200 by the subchain concatenation, but that's still
thousands of lines that a normal human brain such as mine is not
prepared to parse.
* Not configurable.
When trying to validate a single element, the user should not have to
dig in the reports to find the ones related to that element.
Aside from that, validate currently concatenates issues that have the
same type inside an element, as part of the "no-flooding" effort.
However, in certain situations, the user might want to see all these
reports, for example if the element pushes 10 buffers after it pushed
an EOS, he/she might want to have informations about all these
buffers, their timestamps et caetera.
Use case:
The user wants to validate the behaviour of an arbitrary object.
Validate should provide a way to let the user specify:
* "please give me a report about the issues this object has in a
synthetic way, and don't talk to me about the rest of the pipeline,
that's not my problem".
* "please give me a detailed report about the issues this object has,
and provide me with a synthetic report of the issues of the pipeline
it's contained in"
This object can be a bin, an element or a pad. It can be specified by name or
by type (h264parse / my_h264_parser_12).
Proposed solution:
An environment variable akin to GST_DEBUG, and API so that this can be
set on the fly, for use in scenarios for example.
four possible levels of reporting, applicable globally or per object:
* none: no report at all, useful in combination with a per-element
reporting level
* synthetic: Summary of the distinct issues found, with no details:
In the global case:
warning: buffer was received after EOS
Detected X times on <audioconvert6:sink,
audioconvert6:src, audioresample7:sink,
audioresample7:src, smart-adder-adder:sink_2>
Detected X times on <audioconvert7:sink,
audioconvert7:src, audioresample8:sink,
audioresample8:src, smart-adder-adder:sink_2>
Description : a pad shouldn't receive any more buffers
after it gets EOS
In the per-object case:
warning on <object>: a pad shouldn't receive any more
buffers after it gets EOS, detected X times.
* subchain:
In the global case, same behaviour as with the patches in
https://bugzilla.gnome.org/show_bug.cgi?id=735665, ie distinct
issues on different subchains / pads are reported, for example:
warning: buffer was received after EOS
Detected X times on <audioconvert6:sink,
audioconvert6:src, audioresample7:sink,
audioresample7:src, smart-adder-adder:sink_2>
Details: Received buffer 0xdeadbeef with timestamp
42:42:424242 after EOS.
Description : a pad shouldn't receive any more buffers
after it gets EOS
In the per-object case, reports the cases where an issue was
first reported on that object, for example in the above case,
the issue will be reported if the requested object is
audioconvert, but not if it is audioresample.
* monitor:
In the global case, same behaviour as currently.
In the per-object case, reports separately the cases where an
issue was noticed for an object, be this object the start of
a chain or not. Issues still get concatenated inside the object.
* all:
All reports, with no intra-object concatenating. Will be
extremely verbose when set globally but ¯\_(ツ)_/¯ .
Environment variable: GST_VALIDATE_REPORT_LEVEL, a comma-separated list
of (optional) debug categories and levels.
No debug category means global level.
Example:
GST_VALIDATE_REPORT_LEVEL=synthetic,h264parse:all
API: gst_validate_set_report_level_from_string (const gchar *);
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list