platform/upstream/gstreamer.git
10 years agoscenario: Fix negative rate management
Thibault Saunier [Thu, 15 Aug 2013 15:30:34 +0000 (17:30 +0200)]
scenario: Fix negative rate management

Properly parse the it has a gdouble and set the stop position of the seek as
seeked_position if the rate is negative

+ Add some debug

10 years agoscenario: Actions order in xml file is the order in which they must be executed
Thibault Saunier [Thu, 15 Aug 2013 10:33:23 +0000 (12:33 +0200)]
scenario: Actions order in xml file is the order in which they must be executed

When seeking we might want to execute seeks at a playback time inferior than previous
seek, so we need to be able to define the order in which actions have to be
executed, the simplest way is to just concider that actions are always
order in the XML files.

+ Add some more debugs

Conflicts:

gst/validate/gst-validate-scenario.c

10 years agoscenario: Rename the seeks list to actions, and initialize action to 0 when allocating
Thibault Saunier [Thu, 15 Aug 2013 13:57:52 +0000 (15:57 +0200)]
scenario: Rename the seeks list to actions, and initialize action to 0 when allocating

10 years agoscenario: Rename scenario xml files extension to .scenario
Thibault Saunier [Fri, 16 Aug 2013 10:17:34 +0000 (12:17 +0200)]
scenario: Rename scenario xml files extension to .scenario

10 years agovalidate: Connect to the bus signals watch as the main watch might already be connected
Thibault Saunier [Thu, 15 Aug 2013 10:18:56 +0000 (12:18 +0200)]
validate: Connect to the bus signals watch as the main watch might already be connected

10 years agovalidate: Add a way to list avalaible scenarios
Thibault Saunier [Fri, 16 Aug 2013 10:50:51 +0000 (12:50 +0200)]
validate: Add a way to list avalaible scenarios

Conflicts:

gst/validate/gst-validate-transcoding.c

10 years agogst-validate-transcoding: add signal handling and issues printing
Thiago Santos [Thu, 22 Aug 2013 13:35:50 +0000 (10:35 -0300)]
gst-validate-transcoding: add signal handling and issues printing

Update to have the same features as gst-validate.

1) Handle interrupts properly, with the additional of having the
'eos-on-shutdown' argument that sends EOS to the pipeline. This is
very useful for transcoding processes to finish correctly.

2) Print issues on the end of application

10 years agogst-validate: add interrupt handler
Thiago Santos [Thu, 22 Aug 2013 13:08:13 +0000 (10:08 -0300)]
gst-validate: add interrupt handler

Handle interrupt properly to still print issues when exiting

10 years agopad-monitor: Fix source pad probe handling
Edward Hervey [Wed, 21 Aug 2013 16:21:41 +0000 (18:21 +0200)]
pad-monitor: Fix source pad probe handling

type is a bitmask and not an enum

10 years agogst-validate: fix documentation after debug category changes
Thiago Santos [Wed, 21 Aug 2013 16:10:42 +0000 (13:10 -0300)]
gst-validate: fix documentation after debug category changes

10 years agovalidate-reporter: More comprehensive debug message
Edward Hervey [Wed, 21 Aug 2013 16:00:16 +0000 (18:00 +0200)]
validate-reporter: More comprehensive debug message

Some issues don't have any arguments, so put the full details in.

10 years agovalidate: Only use one debugging category: validate
Edward Hervey [Tue, 20 Aug 2013 09:43:07 +0000 (11:43 +0200)]
validate: Only use one debugging category: validate

There's no point in having a different debug category per file, you
can filter it by source filename if you *really* want that.

10 years agogst-validate: print issues at the end
Thiago Santos [Wed, 21 Aug 2013 15:11:40 +0000 (12:11 -0300)]
gst-validate: print issues at the end

And improve documentation about usage

10 years agomedia-check: add results file comparison
Thiago Santos [Wed, 21 Aug 2013 14:03:19 +0000 (11:03 -0300)]
media-check: add results file comparison

Adds a new expected-results argument to receive a file that is used
as a base for comparison with the new results. In case differences are
found, the application will print those issues.

10 years agoreporter: do not print issues to stdout
Thiago Santos [Tue, 20 Aug 2013 20:10:44 +0000 (17:10 -0300)]
reporter: do not print issues to stdout

10 years agomedia-info: fix playback tests
Thiago Santos [Tue, 20 Aug 2013 18:44:10 +0000 (15:44 -0300)]
media-info: fix playback tests

They weren't waiting for the pipeline to properly change state
before sending seek events, that would cause some events to
return TRUE even if they were not handled

10 years agomedia-check: return nonzero if a test failed
Thiago Santos [Tue, 20 Aug 2013 18:42:54 +0000 (15:42 -0300)]
media-check: return nonzero if a test failed

10 years agomedia-info: add playback and reverse-playback tests
Thiago Santos [Tue, 20 Aug 2013 16:24:31 +0000 (13:24 -0300)]
media-info: add playback and reverse-playback tests

The tests are very simple as they only write the first error they
found during playback. If no error is set, an empty string is
printed.

The playback pipeline isn't monitored with validate monitors for now

10 years agorename: gst-validate-file-check -> gst-validate-media-check
Thiago Santos [Tue, 20 Aug 2013 14:43:06 +0000 (11:43 -0300)]
rename: gst-validate-file-check -> gst-validate-media-check

It not only validates files, takes any URI

10 years agomedia-info: add stream topology parsing
Thiago Santos [Tue, 20 Aug 2013 14:41:15 +0000 (11:41 -0300)]
media-info: add stream topology parsing

Currently it only saves/loads the main type, but all topology is
already being parsed for future use

10 years agomedia-info: add duration and seekable entries
Thiago Santos [Mon, 19 Aug 2013 19:52:12 +0000 (16:52 -0300)]
media-info: add duration and seekable entries

Add duration entry in ns and seekable as a boolean to a new group
'media-info'

10 years agomedia-info: replacing file-checker with a simpler media-info struct
Thiago Santos [Mon, 19 Aug 2013 19:38:13 +0000 (16:38 -0300)]
media-info: replacing file-checker with a simpler media-info struct

This struct stores information about a media and tests run on it. It
also has a few helper functions that allows storing the results to a
file and loading it back.

Instead of having the file-checker object that would compare the
extracted values from the file to expected results set to its properties,
the media-info will store the values and it will be possible to compare
old media-info with new media-info from the same file. This allows
tracking improvements and regressions on different gstreamer versions.

Right now, the media-info is very tiny and doesn't store much info, only
the uri and the file size in bytes, but it will receive more additions in
the upcoming commits for storing duration, media topology, seekability and
playback information.

10 years ago.gitignore: Update for 1.0 and cleanup
Edward Hervey [Fri, 16 Aug 2013 13:15:51 +0000 (15:15 +0200)]
.gitignore: Update for 1.0 and cleanup

10 years agoall: Enable more C warnings at build time
Edward Hervey [Fri, 16 Aug 2013 13:05:54 +0000 (15:05 +0200)]
all: Enable more C warnings at build time

And fix the issues:
* Proper forward declaration
* static functions marked properly
* absolute includes
* declaration order

10 years agoreporter: Fix proper debug message output partially
Edward Hervey [Fri, 16 Aug 2013 12:27:29 +0000 (14:27 +0200)]
reporter: Fix proper debug message output partially

In order for the special gstreamer print argument handler to be used
you can't use g_strdup_printf. You need to pass it the actual va_list.

10 years agopad-monitor: Handle case where internal pad iterator is NULL
Edward Hervey [Fri, 16 Aug 2013 12:26:35 +0000 (14:26 +0200)]
pad-monitor: Handle case where internal pad iterator is NULL

Can happen with inputselector

10 years agopad-monitor: Don't use signal that doesn't exist
Edward Hervey [Fri, 16 Aug 2013 12:25:49 +0000 (14:25 +0200)]
pad-monitor: Don't use signal that doesn't exist

Note that we should just ensure we always get the pads from the parent

10 years agopad-monitor: Update raw audio caps checks
Edward Hervey [Fri, 16 Aug 2013 12:24:12 +0000 (14:24 +0200)]
pad-monitor: Update raw audio caps checks

10 years agopad-monitor: Fix locking issues
Edward Hervey [Fri, 16 Aug 2013 12:23:05 +0000 (14:23 +0200)]
pad-monitor: Fix locking issues

We were taking locks twice.

Also add debugging info when taking/releasing locks to help further similar issues

10 years agofile-checker: GstEncodingProfile is a GObject in 1.0
Edward Hervey [Fri, 16 Aug 2013 09:24:11 +0000 (11:24 +0200)]
file-checker: GstEncodingProfile is a GObject in 1.0

10 years agogst-validate: port to 1.0
Thiago Santos [Thu, 15 Aug 2013 04:46:27 +0000 (01:46 -0300)]
gst-validate: port to 1.0

10 years agopo: missing po rename
Thiago Santos [Thu, 15 Aug 2013 04:44:59 +0000 (01:44 -0300)]
po: missing po rename

10 years agovalidade: add missing config.h includes
Thiago Santos [Wed, 14 Aug 2013 23:03:43 +0000 (20:03 -0300)]
validade: add missing config.h includes

10 years agovalidate: add init function
Thiago Santos [Wed, 14 Aug 2013 22:14:18 +0000 (19:14 -0300)]
validate: add init function

Adds an init() function that should be called before using the lib.
It takes care of calling all internal initializing functions in
gst-validete

10 years agotools: improve documentation
Thiago Santos [Wed, 14 Aug 2013 21:04:23 +0000 (18:04 -0300)]
tools: improve documentation

10 years agorename gst-qa -> gst-validate
Thiago Santos [Wed, 14 Aug 2013 19:30:39 +0000 (16:30 -0300)]
rename gst-qa -> gst-validate

10 years agopad-monitor: only do complete caps checks on setcaps
Thiago Santos [Wed, 14 Aug 2013 18:58:34 +0000 (15:58 -0300)]
pad-monitor: only do complete caps checks on setcaps

On get caps it is acceptable to have missing fields to simplify caps
negotiation

10 years agoqa-preload: split to separate lib
Thiago Santos [Tue, 13 Aug 2013 16:40:48 +0000 (13:40 -0300)]
qa-preload: split to separate lib

It should only be used separately, otherwise it will wrap around any
pipeline from applications linking with gstqa

10 years agofile-check: add reverse-playback test
Thiago Santos [Mon, 12 Aug 2013 18:18:36 +0000 (15:18 -0300)]
file-check: add reverse-playback test

Adds a test that checks if reverse playback works without errors

10 years agoqa-reporter: Make debug message a bit more readable
Edward Hervey [Tue, 13 Aug 2013 09:07:31 +0000 (11:07 +0200)]
qa-reporter: Make debug message a bit more readable

By surrounding it with double quotes

10 years agopad-monitor: 0.10 uses "channel-positions" field in audio caps
Edward Hervey [Tue, 13 Aug 2013 09:07:05 +0000 (11:07 +0200)]
pad-monitor: 0.10 uses "channel-positions" field in audio caps

And it's an array, not a string

10 years agoMakefile: Clean up for make distcheck
Edward Hervey [Tue, 13 Aug 2013 08:11:42 +0000 (10:11 +0200)]
Makefile: Clean up for make distcheck

Directories, headers, files weren't properly disted

Also clean up the various CFLAGS/HEADERS/SOURCES variables and remove
ones that aren't needed.

10 years agopo: Add missing Makevars file
Edward Hervey [Tue, 13 Aug 2013 07:44:50 +0000 (09:44 +0200)]
po: Add missing Makevars file

10 years agopad-monitor: use correct variable for segment comparisons
Thiago Santos [Fri, 9 Aug 2013 15:37:49 +0000 (12:37 -0300)]
pad-monitor: use correct variable for segment comparisons

Use the expected versus the received instead of using the received
twice.

10 years agoreporter: fix printf format type
Thiago Santos [Fri, 9 Aug 2013 15:33:27 +0000 (12:33 -0300)]
reporter: fix printf format type

10 years agodocs: improve and update docs
Thiago Santos [Thu, 8 Aug 2013 15:35:50 +0000 (12:35 -0300)]
docs: improve and update docs

10 years agoqa-scenario: re add scenarios creation to bin-monitor
Thiago Santos [Wed, 7 Aug 2013 20:31:17 +0000 (17:31 -0300)]
qa-scenario: re add scenarios creation to bin-monitor

GstPipelines are monitored by bin monitors. Create scenarios if
requested from the bin monitors and store them there.

10 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.

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

10 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

10 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.

10 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.

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

10 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

10 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.

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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.

10 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

10 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

10 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.

10 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.

10 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

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

10 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

10 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.

10 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

10 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.

10 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

10 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

10 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.

10 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

10 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

10 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

10 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

10 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.

10 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

10 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

10 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.

10 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.