Commit graph

147 commits

Author SHA1 Message Date
Thiago Santos
36e5c626af 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
2013-08-20 15:44:10 -03:00
Thiago Santos
387f7c1b63 media-check: return nonzero if a test failed 2013-08-20 15:42:54 -03:00
Thiago Santos
1713442fd3 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
2013-08-20 13:24:31 -03:00
Thiago Santos
3f91779c32 rename: gst-validate-file-check -> gst-validate-media-check
It not only validates files, takes any URI
2013-08-20 11:43:06 -03:00
Thiago Santos
577ad5c127 media-info: add stream topology parsing
Currently it only saves/loads the main type, but all topology is
already being parsed for future use
2013-08-20 11:41:15 -03:00
Thiago Santos
3d93eb78f1 media-info: add duration and seekable entries
Add duration entry in ns and seekable as a boolean to a new group
'media-info'
2013-08-19 16:52:12 -03:00
Thiago Santos
1c32bbbac3 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.
2013-08-19 16:38:13 -03:00
Edward Hervey
6a3070a1e4 .gitignore: Update for 1.0 and cleanup 2013-08-16 15:15:51 +02:00
Edward Hervey
15ea3bd8aa all: Enable more C warnings at build time
And fix the issues:
* Proper forward declaration
* static functions marked properly
* absolute includes
* declaration order
2013-08-16 15:13:54 +02:00
Edward Hervey
3e5c921217 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.
2013-08-16 14:30:02 +02:00
Edward Hervey
501be30379 pad-monitor: Handle case where internal pad iterator is NULL
Can happen with inputselector
2013-08-16 14:30:02 +02:00
Edward Hervey
eca452978a pad-monitor: Don't use signal that doesn't exist
Note that we should just ensure we always get the pads from the parent
2013-08-16 14:30:01 +02:00
Edward Hervey
511ab5e1d8 pad-monitor: Update raw audio caps checks 2013-08-16 14:30:01 +02:00
Edward Hervey
5a659f205d pad-monitor: Fix locking issues
We were taking locks twice.

Also add debugging info when taking/releasing locks to help further similar issues
2013-08-16 14:30:01 +02:00
Edward Hervey
f3bd5ac0c0 file-checker: GstEncodingProfile is a GObject in 1.0 2013-08-16 14:30:01 +02:00
Thiago Santos
25688f4e50 gst-validate: port to 1.0 2013-08-15 01:46:27 -03:00
Thiago Santos
6df0b6c010 validade: add missing config.h includes 2013-08-14 20:03:43 -03:00
Thiago Santos
ee9f1ad9b2 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
2013-08-14 19:14:18 -03:00
Thiago Santos
3dea4388fd tools: improve documentation 2013-08-14 18:04:23 -03:00
Thiago Santos
52002376ea rename gst-qa -> gst-validate 2013-08-14 17:46:28 -03:00
Thiago Santos
ddc95f5b8c pad-monitor: only do complete caps checks on setcaps
On get caps it is acceptable to have missing fields to simplify caps
negotiation
2013-08-14 16:00:50 -03:00
Thiago Santos
848c86712b qa-preload: split to separate lib
It should only be used separately, otherwise it will wrap around any
pipeline from applications linking with gstqa
2013-08-13 13:40:48 -03:00
Thiago Santos
4f11a05baf file-check: add reverse-playback test
Adds a test that checks if reverse playback works without errors
2013-08-13 13:28:40 -03:00
Edward Hervey
737a2664f2 qa-reporter: Make debug message a bit more readable
By surrounding it with double quotes
2013-08-13 09:33:26 -03:00
Edward Hervey
5fcbf1026d pad-monitor: 0.10 uses "channel-positions" field in audio caps
And it's an array, not a string
2013-08-13 09:33:26 -03:00
Edward Hervey
c8e2e3aa67 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.
2013-08-13 09:33:25 -03:00
Thiago Santos
4af966f5ee pad-monitor: use correct variable for segment comparisons
Use the expected versus the received instead of using the received
twice.
2013-08-09 12:37:49 -03:00
Thiago Santos
e679d8531e reporter: fix printf format type 2013-08-09 12:33:27 -03:00
Thiago Santos
6544d5f67e 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.
2013-08-07 17:31:17 -03:00
Thiago Santos
71fd0e57cd qa-monitor: remove reference to the runner
qa-monitor implements qa-reporter, and we already have a runner stored
there.
2013-08-07 16:23:25 -03:00
Thiago Santos
6d4a8fd754 gitignore: ignore more binaries 2013-08-07 16:23:25 -03:00
Thiago Santos
a6b3816c35 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
2013-08-07 16:23:25 -03:00
Thiago Santos
08aae8336b 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.
2013-08-07 16:10:57 -03:00
Thiago Santos
61d39d6e74 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.
2013-08-07 11:31:04 -03:00
Thiago Santos
b959a781a9 qa-reporter: fix typo 2013-08-06 19:42:21 -03:00
Thiago Santos
499f65a041 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
2013-08-06 19:42:09 -03:00
Thiago Santos
71351b3e33 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.
2013-08-06 18:32:07 -03:00
Thiago Santos
e7853ec69f qa-reporter: fix crash by avoiding unref an integer 2013-08-06 10:37:15 -03:00
Thiago Santos
c81e6198f9 makefile: fix build of gst-qa- tools 2013-08-06 10:36:47 -03:00
Thiago Santos
cde09a7e6c 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
2013-08-06 10:36:02 -03:00
Thiago Santos
369e936b8f 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
2013-08-05 14:16:06 -03:00
Thiago Santos
e5cafa3375 qa-scenario: adding eos scenario action
Allows sending EOS to the pipeline
2013-08-01 18:08:44 -03:00
Thiago Santos
caba58c029 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
2013-08-01 09:35:59 -03:00
Thiago Santos
60b0c7383f 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
2013-08-01 01:27:20 -03:00
Thiago Santos
2901e35f5c qa-scenario: avoid assertion on dispose
After an error, the pipeline might still be null, check before unreffing
2013-07-31 15:01:13 -03:00
Thiago Santos
f1368356bc qa-scenario: fix typo on define variable 2013-07-31 15:00:56 -03:00
Thiago Santos
a395133aa2 qa-report: fix typo on assertion comparison 2013-07-31 15:00:33 -03:00
Vincent Penquerc'h
3a419c3fd8 gst-qa-element-monitor: do not bypass monitor factory
A pad monitor was created directly. Prefer going through the
factory.
2013-07-31 08:10:42 -03:00
Vincent Penquerc'h
5356f10644 gst-qa-reporter: fix use of uninitialized repeat field 2013-07-31 08:10:40 -03:00
Vincent Penquerc'h
711fa22a49 gst-qa-reporter: fix report leak when discarding repeated report 2013-07-31 08:10:37 -03:00