platform/upstream/gstreamer.git
11 years agoqa-monitor: remove reference to the runner
Thiago Santos [Wed, 7 Aug 2013 19:22:36 +0000 (16:22 -0300)]
qa-monitor: remove reference to the runner

qa-monitor implements qa-reporter, and we already have a runner stored
there.

11 years agogitignore: ignore more binaries
Thiago Santos [Wed, 7 Aug 2013 19:13:33 +0000 (16:13 -0300)]
gitignore: ignore more binaries

11 years agoqa-file-check: add new binary to run file checks easily
Thiago Santos [Wed, 7 Aug 2013 19:12:45 +0000 (16:12 -0300)]
qa-file-check: add new binary to run file checks easily

It creates a GstQaFileChecker and runs it on the passed URI with
the tests enabled as arguments

11 years agoqa-runner: simplify runner to not hold refs to monitor/pipeline
Thiago Santos [Wed, 7 Aug 2013 19:10:57 +0000 (16:10 -0300)]
qa-runner: simplify runner to not hold refs to monitor/pipeline

The GstQaRunner is now a simple aggregator of reports that it receives
from monitors and filechecker. This allows it to be used in both
scenarios without  APIs that expect GstElement or Monitors, that are
only used on the pipeline monitoring QA tests.

11 years agofile-checker: add file playback testing feature
Thiago Santos [Wed, 7 Aug 2013 14:31:04 +0000 (11:31 -0300)]
file-checker: add file playback testing feature

Adds a property that triggers the file playback tests on
GstQaFileCheker. Also enable it in the gst-transcoding post file checks.

The implementation is simple, just create a playbin2 and use fakesinks
as sinks, set it to playing and wait for either EOS or ERROR messages.

11 years agoqa-reporter: fix typo
Thiago Santos [Tue, 6 Aug 2013 22:42:21 +0000 (19:42 -0300)]
qa-reporter: fix typo

11 years agofile-checker: include restriction caps tests when checking for profiles
Thiago Santos [Tue, 6 Aug 2013 22:39:58 +0000 (19:39 -0300)]
file-checker: include restriction caps tests when checking for profiles

Also move the caps check earlier on the path, to error out sooner and
avoid iterating the sub streams without needing

11 years agofile-checker: replace encoding profile comparison
Thiago Santos [Tue, 6 Aug 2013 21:17:39 +0000 (18:17 -0300)]
file-checker: replace encoding profile comparison

Use our own custom comparison to allow to add more fine grained error
reporting. Also the encoding profile is_equal function is too strict as
it also compares profiles names, that doesn't matter to us.

This commit implementation is still initial and needs improvements as it
isn't using the restriction caps, which includes information that might not be
on the profile format caps.

11 years agoqa-reporter: fix crash by avoiding unref an integer
Thiago Santos [Tue, 6 Aug 2013 13:36:58 +0000 (10:36 -0300)]
qa-reporter: fix crash by avoiding unref an integer

11 years agomakefile: fix build of gst-qa- tools
Thiago Santos [Tue, 6 Aug 2013 13:36:47 +0000 (10:36 -0300)]
makefile: fix build of gst-qa- tools

11 years agofile-checker: add error report and new report types
Thiago Santos [Tue, 6 Aug 2013 13:36:02 +0000 (10:36 -0300)]
file-checker: add error report and new report types

Add a list of new report types and use them in the file-checker.
The errors are mostly related to testing file attributes against
expected values

11 years agoqa-file-checker: add a file checker object/runner
Thiago Santos [Mon, 5 Aug 2013 17:16:06 +0000 (14:16 -0300)]
qa-file-checker: add a file checker object/runner

It is an object that is capable to run a few file checks. The
implemented tests are: file size, duration, if the file is seekable and
comparing the file stream types with a encoding profile

11 years agoqa-scenario: adding eos scenario action
Thiago Santos [Thu, 1 Aug 2013 21:08:44 +0000 (18:08 -0300)]
qa-scenario: adding eos scenario action

Allows sending EOS to the pipeline

11 years agoqa-scenario: add new scenario action - Pause
Thiago Santos [Thu, 1 Aug 2013 12:35:59 +0000 (09:35 -0300)]
qa-scenario: add new scenario action - Pause

The pause action instructs the pipeline to go to paused state and then
return to playing. It has the argument 'duration', that indicates the
duration for which the pipeline will remain in paused

11 years agoqa-scenario: refactor to accomodate more actions
Thiago Santos [Thu, 1 Aug 2013 04:27:20 +0000 (01:27 -0300)]
qa-scenario: refactor to accomodate more actions

Refactor to be able to reuse to add more actions to scenarios.
Planned are pauses and encoding changes

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