platform/upstream/gstreamer.git
11 years agoqa-scenario: avoid assertion on dispose
Thiago Santos [Wed, 31 Jul 2013 18:01:13 +0000 (15:01 -0300)]
qa-scenario: avoid assertion on dispose

After an error, the pipeline might still be null, check before unreffing

11 years agoqa-scenario: fix typo on define variable
Thiago Santos [Wed, 31 Jul 2013 18:00:56 +0000 (15:00 -0300)]
qa-scenario: fix typo on define variable

11 years agoqa-report: fix typo on assertion comparison
Thiago Santos [Wed, 31 Jul 2013 18:00:33 +0000 (15:00 -0300)]
qa-report: fix typo on assertion comparison

11 years agogst-qa-element-monitor: do not bypass monitor factory
Vincent Penquerc'h [Wed, 31 Jul 2013 10:12:41 +0000 (11:12 +0100)]
gst-qa-element-monitor: do not bypass monitor factory

A pad monitor was created directly. Prefer going through the
factory.

11 years agogst-qa-reporter: fix use of uninitialized repeat field
Vincent Penquerc'h [Wed, 31 Jul 2013 10:05:05 +0000 (11:05 +0100)]
gst-qa-reporter: fix use of uninitialized repeat field

11 years agogst-qa-reporter: fix report leak when discarding repeated report
Vincent Penquerc'h [Wed, 31 Jul 2013 10:04:32 +0000 (11:04 +0100)]
gst-qa-reporter: fix report leak when discarding repeated report

11 years agogst-qa: fix build in po
Vincent Penquerc'h [Wed, 31 Jul 2013 09:49:48 +0000 (10:49 +0100)]
gst-qa: fix build in po

Using a lot of grep and some cargo culting.

11 years agogst-qa: make tools depend on libraries
Vincent Penquerc'h [Wed, 31 Jul 2013 09:07:53 +0000 (10:07 +0100)]
gst-qa: make tools depend on libraries

This fixes parallel build randomly breaking.

11 years agoqa-report: expose API for adding custom issues
Thiago Santos [Tue, 30 Jul 2013 20:07:13 +0000 (17:07 -0300)]
qa-report: expose API for adding custom issues

expose gst_qa_issue_register and gst_qa_issue_new to allow applications
to register their own custom issues.

Issues IDs should use Areas higher than GST_QA_AREA_OTHER for custom
areas. And to add more issues to existing areas, the IDs should be
higher than GST_QA_ISSUE_ID_CUSTOM_FIRST.

Custom issues registering should be done at startup and from the same
thread as there is no locking around the issues hashtable

11 years agoFix typos
Thiago Santos [Tue, 30 Jul 2013 19:21:15 +0000 (16:21 -0300)]
Fix typos

11 years agoqa-runner: Remove printing API from qa-runner
Thiago Santos [Tue, 30 Jul 2013 19:20:49 +0000 (16:20 -0300)]
qa-runner: Remove printing API from qa-runner

Replace it with functions to list the reports

11 years agopad-monitor: fix NULL format string
Vincent Penquerc'h [Tue, 30 Jul 2013 16:17:48 +0000 (12:17 -0400)]
pad-monitor: fix NULL format string

An empty message should be an empty string.

11 years agoqa-runner: removing _setup call
Thiago Santos [Tue, 30 Jul 2013 13:21:13 +0000 (10:21 -0300)]
qa-runner: removing _setup call

Do setup on the _new function directly instead of having a separate
call for that

11 years agoqa-override: add more pad overrides for buffer probe and caps
Thiago Santos [Tue, 30 Jul 2013 12:56:05 +0000 (09:56 -0300)]
qa-override: add more pad overrides for buffer probe and caps

Add override functions for custom checking of buffer probe and
getcaps/setcaps functions.

11 years agopad-monitor: call the event/query/buffer overrides
Thiago Santos [Mon, 29 Jul 2013 20:26:21 +0000 (17:26 -0300)]
pad-monitor: call the event/query/buffer overrides

Use the new event/buffer/query overrides to allow custom checks
on those scenarios

11 years agoqa-override: add callbacks for query/buffer/event functions
Thiago Santos [Mon, 29 Jul 2013 19:26:52 +0000 (16:26 -0300)]
qa-override: add callbacks for query/buffer/event functions

Add callbacks for pad event/buffer/query functions in case the
override wants to do additional checks

11 years agogst-qa-override-registry: load overrides dynamically
Vincent Penquerc'h [Tue, 30 Jul 2013 09:20:43 +0000 (10:20 +0100)]
gst-qa-override-registry: load overrides dynamically

Shared objects listed in GST_QA_OVERRIDE are loaded on startup,
and the symbol gst_qa_create_overrides is run. It should create
any override needed. While it can do anything it wants, this
is discouraged.

GST_QA_OVERRIDE should be a comma separated list of shared objects,
any relative paths should be from the current working directory
at the time they are loaded (ie, if the process to be traced
changes cwd, use absolute paths).

No attempt whatsoever is made at not running what was not meant.

Includes a sample shared object for illustration purposes.

11 years agoqa-override-registry: register overrides by gtype and klass
Thiago Santos [Mon, 29 Jul 2013 16:17:50 +0000 (13:17 -0300)]
qa-override-registry: register overrides by gtype and klass

Overrides can now be registerd by gtype, meaning that they will
be attached to monitors that the target is of the requested type.

Also by element klass, that will check that the element has the
selected class in its details

11 years agoqa-monitor: implement intercept_report
Thiago Santos [Mon, 29 Jul 2013 15:01:02 +0000 (12:01 -0300)]
qa-monitor: implement intercept_report

It is used to iterate over overrides and modify the report level if
the overrides wants to do so.

Also adds a new mutex only for the overrides to avoid deadlocks when
reporting if we used the same lock for iterating the overrides

11 years agoqa-reporter: fix copy n paste left over
Thiago Santos [Mon, 29 Jul 2013 14:35:20 +0000 (11:35 -0300)]
qa-reporter: fix copy n paste left over

11 years agoqa-reporter: add function for intercepting reports
Thiago Santos [Mon, 29 Jul 2013 14:34:42 +0000 (11:34 -0300)]
qa-reporter: add function for intercepting reports

after report creation, this function is called and implementers can
modify the report to their liking before it is posted to the runner

11 years agoqa-monitor: chain gst_qa_monitor_finalize to parent's finalize
Vincent Penquerc'h [Mon, 29 Jul 2013 13:37:46 +0000 (09:37 -0400)]
qa-monitor: chain gst_qa_monitor_finalize to parent's finalize

It was chaining to the parent's dispose.

11 years agogst-qa-report: put the correct format to avoid compiler warnings
Thiago Santos [Mon, 29 Jul 2013 13:06:48 +0000 (10:06 -0300)]
gst-qa-report: put the correct format to avoid compiler warnings

11 years agoi18n: copy necessary files in-tree
Vincent Penquerc'h [Mon, 29 Jul 2013 11:02:30 +0000 (07:02 -0400)]
i18n: copy necessary files in-tree

11 years agoGstIssueId: make this uintptr_t
Vincent Penquerc'h [Mon, 29 Jul 2013 11:20:50 +0000 (07:20 -0400)]
GstIssueId: make this uintptr_t

As it's used a a placeholder pointer for g_hash_table use,
it needs to be converted back and forth to a pointer.

11 years agogst-qa-override-registry: adding the override-registry
Thiago Santos [Fri, 26 Jul 2013 22:05:31 +0000 (19:05 -0300)]
gst-qa-override-registry: adding the override-registry

This registry should contain the list of GstQaOverride to
be used on the pipelines being monitored

11 years agoqa-override: adds qa-override that can change the report level of issues
Thiago Santos [Fri, 26 Jul 2013 03:14:02 +0000 (00:14 -0300)]
qa-override: adds qa-override that can change the report level of issues

Useful for customizing the level of issues for particular elements/tests
when they are more relevant or have to be disabled

11 years agoqa-report: splitting a GstQaReport into a GstQaIssue and GstQaReport
Thiago Santos [Fri, 26 Jul 2013 02:25:22 +0000 (23:25 -0300)]
qa-report: splitting a GstQaReport into a GstQaIssue and GstQaReport

Reports now point to Issues, that are uniquely identified and have
translatable descriptions. This way we are going to be able to uniquely
identify the issues and applications can enable/disable checks for
specific elements.

11 years agoqa: Make it possible to set a scenario from the command line in test apps
Thibault Saunier [Wed, 24 Jul 2013 23:09:14 +0000 (19:09 -0400)]
qa: Make it possible to set a scenario from the command line in test apps

11 years agoqa: Properly set reporter's runner reference
Thibault Saunier [Tue, 23 Jul 2013 14:13:06 +0000 (10:13 -0400)]
qa: Properly set reporter's runner reference

That was never set, but it is needed for the reporter to properly add
reports to the runner.
We still keep a reference on the monitor to make things simpler

11 years agoreporter: Use Gst debugging log in the _report method directly
Thibault Saunier [Tue, 23 Jul 2013 12:55:24 +0000 (08:55 -0400)]
reporter: Use Gst debugging log in the _report method directly

Using __VALIST__ was not properly working
+ Add a gstqareporter debug category

11 years agoscenario: Implement the GstQaReporter interface and make use of it
Thibault Saunier [Mon, 22 Jul 2013 23:22:49 +0000 (19:22 -0400)]
scenario: Implement the GstQaReporter interface and make use of it

This way we can report issues from a scenario
Also add a Seek aread to the known areas list

We now need to pass the runner to the scenario instead of the
pipeline as the GstQaReporter interface needs it.

11 years agoqa: Add a GstQaReporter interface that objects needing reporting can implement
Thibault Saunier [Mon, 22 Jul 2013 23:17:53 +0000 (19:17 -0400)]
qa: Add a GstQaReporter interface that objects needing reporting can implement

Various type of object should be able to do some reporting, so we have
to make sure all the code to do that is in one place. Creating an interface
makes it simple to share information and it avoid to have a baseclass for
something that is not actually important enough to create a baseclass.

Conflicts:
gst/qa/gst-qa-pad-monitor.c

11 years agoqa: Add a GstQaScenario class making it possible to execute scenarios
Thibault Saunier [Sat, 20 Jul 2013 04:18:13 +0000 (00:18 -0400)]
qa: Add a GstQaScenario class making it possible to execute scenarios

A scenario correspond to a suite of action to execute on a pipeline,
for the time being, we only support seeking the pipeline, but in the
future we can imagine doing some queries, setting pipeline state, etc...

The scenario can be loaded thanks to the GST_QA_SCENARIO environment
variable, making it usable with any existant application, in case, the
application can be used interactively, the user should either, not load
any scenario or let the application run without interacting with it.

11 years agopad-monitor: add lots of locking
Thiago Santos [Wed, 24 Jul 2013 19:04:03 +0000 (16:04 -0300)]
pad-monitor: add lots of locking

When handling elements that spawn multiple threads (hardware
enc/decoders), the pad monitor has to protect its variables specially
because some checks involve iterating over internally linked pads to
add/get some data for comparison (expected events, timestamp ranges,
caps).

Aside from locking its own mutex, the pad monitor can also lock the
parent's mutex when it needs to use data from its internally linked
pads. The locking order should always be parent and then individual
pad-monitor mutexes. This should prevent deadlocks when multiple
pad-monitors from the same element start doing checks at the same time
from different threads.

11 years agopad-monitor: remove already solved TODOs
Thiago Santos [Wed, 24 Jul 2013 13:05:31 +0000 (10:05 -0300)]
pad-monitor: remove already solved TODOs

11 years agopad-monitor: accept unexpected flow return if pad is eos
Thiago Santos [Wed, 24 Jul 2013 12:51:05 +0000 (09:51 -0300)]
pad-monitor: accept unexpected flow return if pad is eos

Track eos event and mark that pad as eos so that checking for the
flow return knows when 'unexpected' is acceptable

11 years agopad-monitor: improve caps proxying check on getcaps
Thiago Santos [Tue, 23 Jul 2013 18:18:51 +0000 (15:18 -0300)]
pad-monitor: improve caps proxying check on getcaps

Only check if fields are proxied for sink getcaps as it is when
downstream restrictions should be proxied. Also improve the
fields comparison to handle single value x multi value
(list/array/range) contain relations.

11 years agopad-monitor: improve type conformance checking for caps
Thiago Santos [Tue, 23 Jul 2013 18:10:33 +0000 (15:10 -0300)]
pad-monitor: improve type conformance checking for caps

Replace the macro with a more powerful variadic function that can
check for more acceptable types for the same caps.

This removes a few more false positives

11 years agopad-monitor: only expect a new segment if pad is running on push mode
Thiago Santos [Tue, 23 Jul 2013 15:52:22 +0000 (12:52 -0300)]
pad-monitor: only expect a new segment if pad is running on push mode

For pull mode, it should just provide the buffers, regardless of getting
a new segment or not

11 years agogst-qa: show help and exit when no arguments are provided
Edward Hervey [Tue, 23 Jul 2013 15:14:26 +0000 (12:14 -0300)]
gst-qa: show help and exit when no arguments are provided

Instead of attempting to create empty pipelines and weird things
happening :)

11 years agopad-monitor: fix flushes checking
Thiago Santos [Tue, 23 Jul 2013 15:11:08 +0000 (12:11 -0300)]
pad-monitor: fix flushes checking

flush events shouldn't fail, so we don't need to rollback when it
returns false from downstream (this is common when downstream is still
not-linked) and it would cause gst-qa to spit false positives.

Also refactor the common event handling for both sink and src event
functions into a common place. Currently we handle flushes the same
for both pad's directions

11 years agopad-monitor: only merge caps if they exist
Thiago Santos [Tue, 23 Jul 2013 14:51:07 +0000 (11:51 -0300)]
pad-monitor: only merge caps if they exist

Downtream can not be linked, so we shouldn't try to merge
NULL caps

11 years agoconfigure: add nano version to enable Werror
Thiago Santos [Mon, 22 Jul 2013 23:50:02 +0000 (20:50 -0300)]
configure: add nano version to enable Werror

11 years agopad-monitor: fix expected setcaps fields comparison
Thiago Santos [Mon, 22 Jul 2013 23:09:35 +0000 (20:09 -0300)]
pad-monitor: fix expected setcaps fields comparison

Use the correct structure when getting the GValues and print different
messages for missing and different fields on the setcaps caps

11 years agopad-monitor: improve timestamp ranges comparison message a little
Thiago Santos [Mon, 22 Jul 2013 23:09:07 +0000 (20:09 -0300)]
pad-monitor: improve timestamp ranges comparison message a little

Show the buffer range that is being compared.

11 years agopad-monitor: add check for serialized events order
Thiago Santos [Mon, 22 Jul 2013 18:05:04 +0000 (15:05 -0300)]
pad-monitor: add check for serialized events order

Store expected serialized events and their 'timestamps' to check if
they are pushed in the same order/time as they were received

11 years agopad-monitor: add check for setcaps passing audio/video fields
Thiago Santos [Mon, 22 Jul 2013 12:50:23 +0000 (09:50 -0300)]
pad-monitor: add check for setcaps passing audio/video fields

Checks that the common audio/video fields are correctly passed
downstream after a setcaps

11 years agopad-monitor: add check for getcaps proxying audio/video fields
Thiago Santos [Fri, 19 Jul 2013 19:52:45 +0000 (16:52 -0300)]
pad-monitor: add check for getcaps proxying audio/video fields

Checks that the common audio/video fields are correctly proxied by
the elements after a getcaps

11 years agoelement-monitor: add is_encoder flag
Thiago Santos [Fri, 19 Jul 2013 19:52:11 +0000 (16:52 -0300)]
element-monitor: add is_encoder flag

Easy access to knowing if the monitored element is an encoder

11 years agoqa-transcoding: Add a binary program to easily test transcoding
Thibault Saunier [Thu, 18 Jul 2013 20:53:46 +0000 (16:53 -0400)]
qa-transcoding: Add a binary program to easily test transcoding

11 years agomonitor(s): Avoid trying to disconnect handlers on instances that do not exist anymore
Thibault Saunier [Thu, 18 Jul 2013 22:20:09 +0000 (18:20 -0400)]
monitor(s): Avoid trying to disconnect handlers on instances that do not exist anymore

11 years agoqa-report: Avoid reporting tons of times the exact same issue to users
Thibault Saunier [Thu, 18 Jul 2013 21:49:44 +0000 (17:49 -0400)]
qa-report: Avoid reporting tons of times the exact same issue to users

Some of the issue can be reported once and for all. We are here avoiding to flood the
user with the same information repeated infinitely.

11 years agoqa-pad-monitor: Do not use gst_private.h
Thibault Saunier [Thu, 18 Jul 2013 17:59:11 +0000 (13:59 -0400)]
qa-pad-monitor: Do not use gst_private.h

11 years agodocs: add design and usage docs
Thiago Santos [Fri, 19 Jul 2013 14:14:39 +0000 (11:14 -0300)]
docs: add design and usage docs

11 years agopad-monitor: improve timestamp ranges check
Thiago Santos [Fri, 19 Jul 2013 12:57:07 +0000 (09:57 -0300)]
pad-monitor: improve timestamp ranges check

Keep the full range stored by the element in the monitor and check
if outgoing timestamps are within that range. It is simple and
should generally work.

11 years agopad-monitor: fix combined flow checks
Thiago Santos [Thu, 18 Jul 2013 17:49:23 +0000 (14:49 -0300)]
pad-monitor: fix combined flow checks

We can only check if we found a downstream monitor

11 years agopad-monitor: fix caps field type checks
Thiago Santos [Thu, 18 Jul 2013 17:49:01 +0000 (14:49 -0300)]
pad-monitor: fix caps field type checks

The type is GstValueList and not GArray

11 years agopad-monitor: improve report messages with arguments
Thiago Santos [Thu, 18 Jul 2013 17:48:46 +0000 (14:48 -0300)]
pad-monitor: improve report messages with arguments

11 years agoqa-report: Pass the whole monitor when creating a report
Thibault Saunier [Thu, 18 Jul 2013 16:11:00 +0000 (12:11 -0400)]
qa-report: Pass the whole monitor when creating a report

So we have the proper source name already avalaible and in the future
we might need some more informations about the monitor itself.

11 years agoqa-pad-monitor: Properly set target_name with as much info as possible
Thibault Saunier [Thu, 18 Jul 2013 16:00:29 +0000 (12:00 -0400)]
qa-pad-monitor: Properly set target_name with as much info as possible

11 years agoqa-monitor: Add a target name field that can be used even when the target is freed
Thibault Saunier [Thu, 18 Jul 2013 15:49:54 +0000 (11:49 -0400)]
qa-monitor: Add a target name field that can be used even when the target is freed

11 years agoqa-monitor: Make the reference to the target a weak reference
Thibault Saunier [Thu, 18 Jul 2013 15:49:25 +0000 (11:49 -0400)]
qa-monitor: Make the reference to the target a weak reference

11 years agoqa-report: add debug flags for criticals
Thiago Santos [Thu, 18 Jul 2013 15:09:13 +0000 (12:09 -0300)]
qa-report: add debug flags for criticals

Allows the user to enable program abort if a report
is created with a certain level.

Use:
GST_QA=fatal_criticals,fatal_warnings,fatal_issues

11 years agoqa-report: Do not keep a ref to the source but keep its name instead
Thibault Saunier [Thu, 18 Jul 2013 14:59:11 +0000 (10:59 -0400)]
qa-report: Do not keep a ref to the source but keep its name instead

We currently do not need to access the object source after its creation
but we need to be able to have a usefull for debugging name.

11 years agoqa-runner: Add a 'report-added' signal
Thibault Saunier [Thu, 18 Jul 2013 00:21:53 +0000 (20:21 -0400)]
qa-runner: Add a 'report-added' signal

So it is possible to plug into the runner to get information about
what is going from outside of it.

11 years agoqa-report: Make it a boxed type
Thibault Saunier [Wed, 17 Jul 2013 23:56:52 +0000 (19:56 -0400)]
qa-report: Make it a boxed type

And make it refcounted, in 1.0 it should become a GstMiniObject, for
now, it is enough that way.

The goal is to be able to use it in signals

11 years agoqa-monitor: Allow detaill message to be in printf format
Thibault Saunier [Wed, 17 Jul 2013 23:18:49 +0000 (19:18 -0400)]
qa-monitor: Allow detaill message to be in printf format

So we can give proper informations about what is wrong to users

11 years agoqa-monitor-preload: fix preload to work with pipeline creation
Thiago Santos [Thu, 18 Jul 2013 00:46:37 +0000 (21:46 -0300)]
qa-monitor-preload: fix preload to work with pipeline creation

Wrap around the main gstreamer pipeline creation functions as wrapping
g_object_new requires rebuilding glib.

11 years agopad-monitor: fix copy n paste mistake
Thiago Santos [Wed, 17 Jul 2013 23:40:50 +0000 (20:40 -0300)]
pad-monitor: fix copy n paste mistake

Do not use GstFlowReturn where a boolean is expected

11 years agopad-monitor: fix initialization of timestamp ranges
Thiago Santos [Wed, 17 Jul 2013 23:40:38 +0000 (20:40 -0300)]
pad-monitor: fix initialization of timestamp ranges

11 years agopad-monitor: check that returns are combined properly
Thiago Santos [Wed, 17 Jul 2013 20:57:39 +0000 (17:57 -0300)]
pad-monitor: check that returns are combined properly

When getting a return from a sink pad, check that it combines properly
the current returns from downstream source pads

11 years agopad-monitor: verify that pushed segment matches what was received
Thiago Santos [Wed, 17 Jul 2013 17:36:44 +0000 (14:36 -0300)]
pad-monitor: verify that pushed segment matches what was received

Check that src pads push segments that are compatible with what
was received on the sink pads

11 years agopad-monitor: output timestamps should be in range of received ones
Thiago Santos [Wed, 17 Jul 2013 14:31:38 +0000 (11:31 -0300)]
pad-monitor: output timestamps should be in range of received ones

Checks if the timestamps of pushed buffers are in the range of the
received buffer timestamps;

11 years agopad-monitor: add check for out of segment buffers
Thiago Santos [Wed, 17 Jul 2013 03:33:42 +0000 (00:33 -0300)]
pad-monitor: add check for out of segment buffers

11 years agopad-monitor: track current buffer timestamp and duration
Thiago Santos [Wed, 17 Jul 2013 03:30:21 +0000 (00:30 -0300)]
pad-monitor: track current buffer timestamp and duration

This can be used to make sure outgoing buffers match the input
timestamps

11 years agopad-monitor: check for when a flush start isn't expected
Thiago Santos [Wed, 17 Jul 2013 03:29:38 +0000 (00:29 -0300)]
pad-monitor: check for when a flush start isn't expected

Complain when an unexpected flush-start is received

11 years agopad-monitor: add checks for raw caps completeness
Thiago Santos [Wed, 17 Jul 2013 03:29:04 +0000 (00:29 -0300)]
pad-monitor: add checks for raw caps completeness

Check audio and video raw caps returned from getcaps for expected
fields and types

11 years agoqa-monitor: Fix typo in printf format for report debug messages
Thiago Santos [Wed, 17 Jul 2013 03:25:11 +0000 (00:25 -0300)]
qa-monitor: Fix typo in printf format for report debug messages

Stringify the arguments correctly for printing

11 years agopad-monitor: first buffer checks
Thiago Santos [Wed, 17 Jul 2013 02:19:13 +0000 (23:19 -0300)]
pad-monitor: first buffer checks

Check that a newsegment is received before the first buffer and that
the first buffer running time is 0

11 years agoqa-report: rework qa-report API
Thiago Santos [Wed, 17 Jul 2013 00:15:09 +0000 (21:15 -0300)]
qa-report: rework qa-report API

Remove error from GstQaErrorReport, making it only GstQaReport. Add
 a level and use area and subarea code, with an extra string for message
 adding details.

Provide macros on qa-monitor to make it easy to create reports.

11 years agopad-monitor: add stubs for getcaps/setcaps function wrapping
Thiago Santos [Tue, 16 Jul 2013 12:17:44 +0000 (09:17 -0300)]
pad-monitor: add stubs for getcaps/setcaps function wrapping

11 years agopad-monitor: add check for out of segment buffer data
Thiago Santos [Tue, 16 Jul 2013 11:06:27 +0000 (08:06 -0300)]
pad-monitor: add check for out of segment buffer data

11 years agoqa-report: use gst_util_get_timestamp for report times
Thiago Santos [Mon, 15 Jul 2013 13:15:06 +0000 (10:15 -0300)]
qa-report: use gst_util_get_timestamp for report times

Makes it more aligned with GST_DEBUG output

11 years agopad-monitor: split event checks for src and sink pads
Thiago Santos [Mon, 15 Jul 2013 12:27:34 +0000 (09:27 -0300)]
pad-monitor: split event checks for src and sink pads

Keeping those handlers separate should keep the code smaller and
easier to understand

11 years agoqa-monitor: add parent relation for monitors
Thiago Santos [Fri, 12 Jul 2013 19:02:25 +0000 (16:02 -0300)]
qa-monitor: add parent relation for monitors

This is useful because Pad monitors will have to ask the
parent element monitors for some element details for
doing checks

11 years agoqa-element-monitor: check if the element is a decoder
Thiago Santos [Fri, 12 Jul 2013 18:42:56 +0000 (15:42 -0300)]
qa-element-monitor: check if the element is a decoder

This can be used on checks for timestamps being inside segment

11 years agopad-monitor: add probes for src pads
Thiago Santos [Fri, 12 Jul 2013 17:18:22 +0000 (14:18 -0300)]
pad-monitor: add probes for src pads

To be used for further monitoring events and buffers for
src pads

11 years agoqa-report: add a timestamp to error reports
Thiago Santos [Fri, 12 Jul 2013 16:32:08 +0000 (13:32 -0300)]
qa-report: add a timestamp to error reports

11 years agoqa-report: adds qa-report for reporting errors to GstQaRunner
Thiago Santos [Fri, 12 Jul 2013 05:10:06 +0000 (02:10 -0300)]
qa-report: adds qa-report for reporting errors to GstQaRunner

The errors are printed directly to stdout and are accumulated at
GstQaRunner for being printed at the end if requested

11 years agoqa-monitor-preload: add functions to allow ld-preload to wrap pipelines
Thiago Santos [Fri, 12 Jul 2013 04:23:48 +0000 (01:23 -0300)]
qa-monitor-preload: add functions to allow ld-preload to wrap pipelines

The preload functions wrap functions that can create pipelines and
attaches a runner to them for monitoring

11 years agoqa-monitor: add runner property
Thiago Santos [Fri, 12 Jul 2013 03:41:43 +0000 (00:41 -0300)]
qa-monitor: add runner property

runner stores the GstQaRunner that will receive the error reports
from the monitors

11 years agopad-monitor: make it able to initialize a segment
Thiago Santos [Thu, 11 Jul 2013 16:43:52 +0000 (13:43 -0300)]
pad-monitor: make it able to initialize a segment

Do not take the initial format set to TIME too seriously when we
haven't got any newsegment event yet. If it is the first segment
received, switch our internal segment tracker to the event format

11 years agogst-qa: add seek-tests option
Thiago Santos [Thu, 11 Jul 2013 16:41:25 +0000 (13:41 -0300)]
gst-qa: add seek-tests option

The seek-tests does a simple seeking after the pipeline has started
so that seeking checks can be performed by the monitors

11 years agopad-monitor: track some events
Thiago Santos [Thu, 11 Jul 2013 05:07:41 +0000 (02:07 -0300)]
pad-monitor: track some events

Segments, upstream seeks and flushes. Adding the following checks:

* A flush stop is expected after a flush start
* After a seek, the flushes/segment seqnum should be the same as the seek

11 years agopad-monitor: only set pad functions if they exist on the pad
Thiago Santos [Thu, 11 Jul 2013 03:05:17 +0000 (00:05 -0300)]
pad-monitor: only set pad functions if they exist on the pad

Some functions should only be set on pads if they were originally
set, like the GetRange, Chain and BufferAlloc

11 years agoqa-bin-monitor/element-monitor: implement pad/element wrapping
Thiago Santos [Thu, 11 Jul 2013 03:04:41 +0000 (00:04 -0300)]
qa-bin-monitor/element-monitor: implement pad/element wrapping

Add code that creates new monitors when elements/pads are found
in bin and element monitors

11 years agoqa-monitor: fix various start up issues
Thiago Santos [Thu, 11 Jul 2013 03:03:54 +0000 (00:03 -0300)]
qa-monitor: fix various start up issues

Fix reference count for monitored object, passing of constructor
parameter and base monitor property flag

11 years agopad-monitor: instrument to monitor buffer/event/query/alloc flows
Thiago Santos [Wed, 10 Jul 2013 21:38:09 +0000 (18:38 -0300)]
pad-monitor: instrument to monitor buffer/event/query/alloc flows

Replace pad functions with monitor functions that can do pre/post
checks and call the original functions

11 years agoqa-monitor: add base class for monitors
Thiago Santos [Wed, 10 Jul 2013 17:03:49 +0000 (14:03 -0300)]
qa-monitor: add base class for monitors

The base class adds a 'object' property to hold the monitored object,
it can only be set on construction. Also the constructor now
automatically calls the element set up