platform/upstream/gstreamer.git
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

11 years agoqa-bin-monitor: adds a bin monitor
Thiago Santos [Tue, 9 Jul 2013 22:20:55 +0000 (19:20 -0300)]
qa-bin-monitor: adds a bin monitor

Extends element-monitor to also wrap child elements

11 years agoqa: renaming Wrapper -> Monitor
Thiago Santos [Tue, 9 Jul 2013 20:38:47 +0000 (17:38 -0300)]
qa: renaming Wrapper -> Monitor

11 years agoqa-pad-wrapper: adds stub class for pad QA wrapper
Thiago Santos [Tue, 9 Jul 2013 19:52:02 +0000 (16:52 -0300)]
qa-pad-wrapper: adds stub class for pad QA wrapper

Also fixes _new functions to ref the elements intead of
ownership transfers

11 years agoqa-element-wrapper: add code for iterating and monitoring pads creation
Thiago Santos [Tue, 9 Jul 2013 19:39:38 +0000 (16:39 -0300)]
qa-element-wrapper: add code for iterating and monitoring pads creation

This will be used to create the wrappers for pads

11 years agogitignore: ignore gst-qa binary
Thiago Santos [Tue, 9 Jul 2013 19:13:00 +0000 (16:13 -0300)]
gitignore: ignore gst-qa binary

11 years agoqa: adds gst-qa binary and basic classes to run the QA tests
Thiago Santos [Tue, 9 Jul 2013 19:08:30 +0000 (16:08 -0300)]
qa: adds gst-qa binary and basic classes to run the QA tests

The classes are mostly a stub for now, but the gst-qa already
has a minimum to start them;

11 years agoqa: add common submodule
Thiago Santos [Tue, 9 Jul 2013 19:07:58 +0000 (16:07 -0300)]
qa: add common submodule

11 years agoqa: initial empty repository
Thiago Santos [Tue, 9 Jul 2013 19:06:36 +0000 (16:06 -0300)]
qa: initial empty repository