Commit graph

707 commits

Author SHA1 Message Date
Thibault Saunier
2a6c39d725 validate: Add safe guards to runner API 2016-12-22 10:29:18 -03:00
Edward Hervey
5eab79dbd3 validate-scenario: Properly get the rate for action validation
This issue was most likely introduced by the refactoring of the
position querying into a standalone function.

In execute_next_action() the rate variable was never replaced by
the current rate of the pipeline, this would result in all reverse
playback actions to trigger immediately instead of waiting for
the actual target time.

https://bugzilla.gnome.org/show_bug.cgi?id=776280
2016-12-19 16:44:31 +01:00
Thibault Saunier
e42d9a784e validate: Fix usage of get_stack)trace after API change 2016-12-12 15:07:30 -03:00
Reynaldo H. Verdejo Pinochet
0495c9197b validate: fix small grammar nit 2016-12-07 15:11:33 -08:00
Thibault Saunier
79faf44d32 validate: Properly handle proxy pads generating detailed info about NNEs
In cases where we had a two consecutive bins with proxy pads, we could
segfault because we were dereferencing a NULL pointer to pad.
2016-11-30 13:58:56 -03:00
Thibault Saunier
acfdd04e01 validate:launcher: Allow specifying timeout as a known issue
And minor cleanups
2016-11-28 19:37:08 -03:00
Thibault Saunier
8493b18e8c validate: Fix GI warnings 2016-11-23 08:38:49 -03:00
Scott D Phillips
9b18bafc68 Enable building with MSVC
https://bugzilla.gnome.org/show_bug.cgi?id=774638
2016-11-17 17:36:03 -03:00
Scott D Phillips
11c5a413ab pad-monitor: fix return type of get_range_func
The return type of GstPadGetRangeFunction is GstFlowReturn

https://bugzilla.gnome.org/show_bug.cgi?id=774638
2016-11-17 17:36:03 -03:00
Scott D Phillips
caafd6c36e validate: Remove #include <unistd.h>
It isn't needed and isn't present in non-posix environments like windows
with MSVC or mingw.

https://bugzilla.gnome.org/show_bug.cgi?id=774638
2016-11-17 17:36:03 -03:00
Scott D Phillips
6299e1228c Fix MSVC const warnings
https://bugzilla.gnome.org/show_bug.cgi?id=774638
2016-11-17 17:36:03 -03:00
Scott D Phillips
4e45b76c09 Pass gint/guint pointers instead of enum pointers
The underlying integer type for enums are implementation defined and may
not be the same size as gint/guint. So implicitly casting from pointers-
to-enum-types to pointers-to-int-types is unsafe. MSVC warns on these.

https://bugzilla.gnome.org/show_bug.cgi?id=774638
2016-11-17 17:36:03 -03:00
Thibault Saunier
612eaa4ad5 validate: meson: Do not mixup gstvalidate lib and tracer plugin
Even though it is mostly the same thing in the end
2016-11-15 18:55:09 -03:00
Thibault Saunier
30f4b590d8 validate: Remove extra buffering status prints 2016-11-14 13:06:10 -03:00
Thibault Saunier
17586b80b1 validate: Use gst_debug_get_stack_trace instead of our implementation
And remove now useless config.h.meson file
2016-11-09 10:55:40 -03:00
Thibault Saunier
8646977b27 validate: report: Do not unref an object where we do not own a ref
g_io_stream_get_output_stream is transfer none
2016-11-03 16:17:08 -03:00
Thibault Saunier
7ff1e0bca6 validate: gir: We should not depend on GstVideo
We do not depend on it at all in GstValidate itself

https://bugzilla.gnome.org/show_bug.cgi?id=773898
2016-11-03 11:22:39 -03:00
Nicolas Dufresne
c6dbb11c22 Also fix link issue in the plugin with libdw 2016-10-14 11:05:26 -04:00
Nicolas Dufresne
4fcc6ce452 Fix non-C89 code
In the automake build system we force C89 which does not allow mixing
code and declaration.
2016-10-14 10:52:53 -04:00
Nicolas Dufresne
3371a143be Fix missing linker flags for libdw
This was added in the meson build but was only checked and not used in
the automake build.
2016-10-14 10:48:16 -04:00
Jinwoo Ahn
6ff5848789 validate: fix typo in gst-validate-report.c
parametter -> parameter

https://bugzilla.gnome.org/show_bug.cgi?id=772439
2016-10-05 12:37:30 +03:00
Thibault Saunier
41b005963f validate: Allow doting the pipeline on issue reporting
And let the user configure on what level of issues to do it
by setting the GST_VALIDATE_CONFIG env var.

Always dot on critical issues.
2016-09-26 13:36:49 -03:00
Thibault Saunier
1fb0f02d6a validate: Allow passing a GST_VALIDATE_CONFIG as a string
Instead of forcing user to put it in a file.
We are simply using the GstCaps synthax to parse it.
2016-09-26 13:36:48 -03:00
Thibault Saunier
e247122051 validate: Add a reference to the pipeline from each monitor
That will allow us to add more flexibility regarding the way
we report thing to the user and will allow us to properly make
reports per pipeline.
2016-09-26 13:36:48 -03:00
Thibault Saunier
2fae2b2342 validate: Always print trace for critical issues
And take into account issue details level to generate backtrace.
2016-09-26 13:36:48 -03:00
Thibault Saunier
64560aea32 validate: Add support for setting a report level for an issue type
Until now we could set report levels to the monitor, this adds support
for setting report level for the issue types too.
2016-09-26 13:36:48 -03:00
Thibault Saunier
a458dfadfb validate: Dump the infos about NNEs if we can not properly determine the problem
It should anyway be pretty interesting pieces of information.
2016-09-22 16:11:09 -03:00
Javier Martinez Canillas
6110ecdc9b validate: fix build warning in generate_unwind_trace()
The unw_word_t type has different sizes for 32-bit and 64-bit, so using the
%lx format specifier on a 32-bit CPU leads to the following compile warning:

  CC       libgstvalidate_1.0_la-gst-validate-report.lo
gst-validate-report.c: In function 'generate_unwind_trace':
gst-validate-report.c:137:36: error: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'unw_word_t {aka unsigned int}' [-Werror=format=]
     g_string_append_printf (trace, "%s (0x%lx)\n", name, offset);

Cast to long so the %lx fomart specifier can be always used.
2016-09-22 12:54:57 -03:00
Thibault Saunier
6c37fa7110 validate: Avoid checking NULL pads when generating NNE reports 2016-09-22 12:36:29 -03:00
Tim-Philipp Müller
63ed33f1c5 validate: fix compiler warnings
gst-validate-report.c: In function ‘generate_unwind_trace’:
gst-validate-report.c:116:1: error: old-style function definition [-Werror=old-style-definition]
 generate_unwind_trace ()
 ^~~~~~~~~~~~~~~~~~~~~
gst-validate-report.c:122:3: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
   unw_cursor_t cursor;
   ^~~~~~~~~~~~
2016-09-20 13:39:02 +01:00
Thibault Saunier
026da6cd81 validate: Add backtraces in the reports
Printing them when the reporting all the details only
2016-09-20 08:49:04 -03:00
Thibault Saunier
3cbaae3090 meson: Build GstValidate as a tracer
And add version to the GStValidate shared library
2016-09-08 13:10:30 -03:00
Thibault Saunier
2fff14e469 validate: Pass information about GstValidate execution over a socket
Instead of trying to parsing stdout, generate json messages and
send them over a socket so that gst-validate-launcher can properly
have informations about gst-validate subprocess execution.
2016-09-08 13:10:29 -03:00
Thibault Saunier
29e5ac1362 validate: Enhance not-negotiated errors reporting
Keeping negotation information around and trying to figure
out precisely why the elements could not negotied the caps
when we get a NOT_NEGOTIATED error on the bus giving the
user details about it.
2016-09-08 13:10:29 -03:00
Thibault Saunier
4090b0a7ae validare: Enhance report message about wrong position 2016-09-08 10:39:56 -03:00
Thibault Saunier
f7f600e730 validate: launcher: Fix the condition to check if we need an http server
We could be checking if a string was in None

And use gs_string_assign when assigning the first string
without using printf like format.
2016-09-08 10:39:56 -03:00
Thibault Saunier
61669bd042 validate: Indent report details 2016-09-08 10:39:56 -03:00
Thibault Saunier
6e9c67238d validate:scenario: Wait for ASYNC_DONE to set async state change DONE
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=769894
2016-09-05 14:43:51 -03:00
Thibault Saunier
53d69adcaf meson: Add support for building GIR when used as subproject
Add allow project to us it as subproject too
2016-08-26 20:06:22 -03:00
Thibault Saunier
da327d8625 validate: Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson
2016-08-25 15:12:31 -03:00
Guillaume Desmottes
15e5e23e32 validate: use new API when switching track with playbin3
Move all the implementations of 'switch-track' to
gst-validate-scenario.c while doing so.

Differential Revision: https://phabricator.freedesktop.org/D1227
2016-08-01 10:45:42 -04:00
Guillaume Desmottes
7117e3e3df validate: reporter: break cyclic references with reports
My patch fixing monitor leak (15e7f1bbfd)
introduced a ref cycle between GstValidateReporter and
GstValidateReport.

The reports uses its reporter so it needs a ref on it
to ensure it's stay alive. But reports are owned by
GstValidateReporter and/or GstValidateRunner.

Fix this by not taking a reference on the reporter but instead caching
its name.

Reviewed-by: Thibault Saunier <tsaunier@gnome.org>
Differential Revision: https://phabricator.freedesktop.org/D1029
2016-08-01 10:45:41 -04:00
Guillaume Desmottes
8708215ce5 validate: turn GstValidateReport to a mini object
It handles refcounting for us and will enable automatic leak checks when
using the 'leaks' tracer.

Differential Revision: https://phabricator.freedesktop.org/D1233
2016-08-01 10:45:39 -04:00
Guillaume Desmottes
c8a3d6c607 validate: inherit from GstObject instead of GObject
This allow us to use to 'leaks' detector to check if those objects are
leaked.

Differential Revision: https://phabricator.freedesktop.org/D1232
2016-08-01 10:45:37 -04:00
Guillaume Desmottes
df6e25514c validate: use MAY_BE_LEAKED flag
Reviewed-by: Thibault Saunier <tsaunier@gnome.org>
Differential Revision: https://phabricator.freedesktop.org/D1230
2016-08-01 10:45:34 -04:00
Guillaume Desmottes
dc7382017d validate: reporter: break cyclic references with reports
My patch fixing monitor leak (15e7f1bbfd)
introduced a ref cycle between GstValidateReporter and
GstValidateReport.

The reports uses its reporter so it needs a ref on it
to ensure it's stay alive. But reports are owned by GstValidateReporter and/or
GstValidateRunner.
The best way I found to break this cycle is to introduce this purge
method. It's not great but the design is a bit tricky.

Reviewed-by: Thibault Saunier <tsaunier@gnome.org>
Differential Revision: https://phabricator.freedesktop.org/D1029
2016-08-01 10:45:30 -04:00
Guillaume Desmottes
b8c821dff4 validate: reporter: prevent usage of destroyed runner
Fix crashes.

Reviewed-by: Thibault Saunier <tsaunier@gnome.org>
Differential Revision: https://phabricator.freedesktop.org/D1028
2016-08-01 10:45:28 -04:00
Guillaume Desmottes
b5e020daa2 validate: runner: prevent hash table modifications while iterating
A GHashTableIter is invalided if the hash table is modified while we are
iterating. Prevent this by taking the runner lock.

Fix assertion warnings with
validate.file.transcode.to_vorbis_and_vp8_in_webm.Sintel_2010_720p_mkv_srt

Reviewed-by: Thibault Saunier <tsaunier@gnome.org>
Differential Revision: https://phabricator.freedesktop.org/D1026
2016-08-01 10:45:26 -04:00
Wonchul Lee
45603d786b docs: Fix typo
Reviewed-by: Alex Băluț <alexandru.balut@gmail.com>
Reviewed-by: Thibault Saunier <tsaunier@gnome.org>
Differential Revision: https://phabricator.freedesktop.org/D681
2016-07-29 14:34:13 -04:00
Edward Hervey
0502e6bf5b media-descriptor: Fine-tune stream-id checking
Only expect fully identical stream-id from URI which are not local files
nor from our local http server.

Fixes issues with non-default http server port
2016-07-04 16:19:05 +02:00