Commit graph

181 commits

Author SHA1 Message Date
Thiago Santos
49d39be022 pad-monitor: also track flush events on probes 2013-08-27 16:16:08 -03:00
Thiago Santos
41e0bf1e91 tools: moving applications from gst/validate to tools
Keeps the CLI applications separate from the libs files
2013-08-27 12:04:31 -03:00
Vincent Penquerc'h
aa814d0189 gst-validate-scenario: fix scenario listing missing installed ones
Only scenarii in the current directory or the user's home directory
were being listed.
2013-08-27 11:52:11 -03:00
Vincent Penquerc'h
69597d9f5e gst-validate-transcoding: fix help text to refer to URIs as URIs
Referring to them as files is confusing, as you'll try to use files
and not URIs.
2013-08-27 11:52:10 -03:00
Thiago Santos
2ba098976a pad-monitor: Move repeated caps to test only on sinkpads
Testing on source pads can lead to false positives when pads are
unlinked. The caps event is sticky and will be pushed again later
when another buffer/event is pushed, leading to an acceptable
situation to push the caps twice.
2013-08-27 11:48:00 -03:00
Thiago Santos
b591f11b15 pad-monitor: add another acceptable flow return combination scenarios
A demuxer knows when to return EOS after samples are over, so it is
ok for it to return even when all src pads returned OK
2013-08-26 20:33:23 -03:00
Thiago Santos
a06a9038a4 pad-monitor: improve serialized event checks
If the event was already found at the first position of the array, it
shouldn't be searched on the rest of it.

This removes lots of false positives.
2013-08-26 20:33:23 -03:00
Thiago Santos
1a54b40c78 pad-monitor: fix aggregate flow return check for error situations
Flow flushing must be returned upstream to indicate an error situation
downstream
2013-08-26 20:33:22 -03:00
Thiago Santos
185d10bf79 gst-validate: print error message when starting the pipeline fails
Instead of just exiting silently
2013-08-26 20:33:22 -03:00
Edward Hervey
e48eadad75 pad-monitor: New check for duplicate caps event
We shouldn't get/push twice caps that are identical
2013-08-26 17:09:04 -03:00
Thiago Santos
104cccdfc0 media-info: avoid glib assert 2013-08-23 17:26:51 -03:00
Edward Hervey
4f3e1de776 report: Avoid repeating long macros
Makes the code a bit more readable and compact
2013-08-23 11:38:15 +02:00
Edward Hervey
60a2dfaf72 validate-report: Fix critical flag handling
criticals are warnings/issues also
warnings are issues also
2013-08-23 11:10:57 +02:00
Thibault Saunier
0609de7156 scenario: Have GstClockTime as second (in double) inside scenario files
Making it easier to read
2013-08-22 14:13:07 -03:00
Thibault Saunier
ff3e435e94 data: Add a Backward and Forward seeking scenario 2013-08-22 13:55:08 -03:00
Thibault Saunier
96ca875c56 validate: Set return value of apps to -1 only if a critical issues was reported
Conflicts:

	gst/validate/gst-validate-transcoding.c
	gst/validate/gst-validate.c
2013-08-22 13:54:39 -03:00
Thibault Saunier
375a47aa0d transcoding: Make sure to initialize Gst before parsing options
Avoiding to break the help
2013-08-22 13:06:01 -03:00
Thibault Saunier
40e3b5881a transcoding: Connect to the bus signals watch as the main watch might already be connected 2013-08-22 12:08:14 -03:00
Thibault Saunier
161e0cee12 scenario: Start monitoring the position only when the pipeline starts playing
Otherwize seeking with a playback_time=0 won't work properly
2013-08-22 12:06:29 -03:00
Thibault Saunier
f9ddb6f59e 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
2013-08-22 12:05:18 -03:00
Thibault Saunier
ddd00741fd 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
2013-08-22 12:04:08 -03:00
Thibault Saunier
15b3049764 scenario: Rename the seeks list to actions, and initialize action to 0 when allocating 2013-08-22 12:02:49 -03:00
Thibault Saunier
2102648c5c scenario: Rename scenario xml files extension to .scenario 2013-08-22 12:02:02 -03:00
Thibault Saunier
fc61dcf1ed validate: Connect to the bus signals watch as the main watch might already be connected 2013-08-22 12:01:44 -03:00
Thibault Saunier
de57b1455a validate: Add a way to list avalaible scenarios
Conflicts:

	gst/validate/gst-validate-transcoding.c
2013-08-22 12:00:04 -03:00
Thiago Santos
123bdea93a 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
2013-08-22 10:35:50 -03:00
Thiago Santos
db44d3aa27 gst-validate: add interrupt handler
Handle interrupt properly to still print issues when exiting
2013-08-22 10:35:34 -03:00
Edward Hervey
ec6abff9dd pad-monitor: Fix source pad probe handling
type is a bitmask and not an enum
2013-08-21 13:26:27 -03:00
Thiago Santos
df228c5729 gst-validate: fix documentation after debug category changes 2013-08-21 13:10:42 -03:00
Edward Hervey
de930073fc validate-reporter: More comprehensive debug message
Some issues don't have any arguments, so put the full details in.
2013-08-21 18:00:16 +02:00
Edward Hervey
529576e69b 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.
2013-08-21 17:59:51 +02:00
Thiago Santos
7e5f458e63 gst-validate: print issues at the end
And improve documentation about usage
2013-08-21 12:14:22 -03:00
Thiago Santos
044b21521b 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.
2013-08-21 11:03:19 -03:00
Thiago Santos
549bcc1fd5 reporter: do not print issues to stdout 2013-08-20 17:10:44 -03:00
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