gstreamer/validate
Alicia Boya García f0abd316e2 gst-validate-scenario: Make waits optional in appsrc-push
While in many cases it's desirable to wait for a buffer to be pushed
downstream when using appsrc-push, in some cases this is not possible as
such pushing action is dependent on following actions that would not be
executed if we wait.

An example for this is prerolling:

    appsrc ! qtdemux ! video/x-h264 ! decodebin name=dec ! %(videosink)s

    description, seek=false, handles-states=true
    appsrc-push, target-element-name=appsrc0, file-name="raw_h264.0.mp4"
    set-state, state=playing
    appsrc-eos, target-element-name=appsrc0

In order for the preroll to occur, both the appsrc needs to push the
buffer and the state needs to reach PLAYING. But `set-state` cannot
finish if the buffer has not been pushed (the state transition does not
finish) and conversely pushing the buffer will not finish until the
state has reached.

Making appsrc-push not wait for the buffer solves this problem. This
patch makes appsrc-push aware of this issue by only waiting for the
buffer to be pushed if the pipeline is in a state that allows buffers to
flow.
2019-02-24 01:23:58 +01:00
..
common@59cb678164 Automatic update of common submodule 2018-12-06 11:53:33 +02:00
data validate:scenario: Enhance variable implementation 2019-02-15 14:19:03 +00:00
docs validate: allow config to check for minimum buffer frequency on pads 2019-02-20 12:12:46 +01:00
gst gst-validate-scenario: Make waits optional in appsrc-push 2019-02-24 01:23:58 +01:00
gst-libs validate: Update for g_type_class_add_private() deprecation in recent GLib 2018-09-20 15:16:16 -03:00
launcher validateflow: interpolate folder directories into pipeline descriptions. 2019-02-21 13:57:17 +00:00
pkgconfig validate: pkgconfig: fix libtool-ism in uninstalled .pc file 2017-02-15 18:13:14 +00:00
plugins validateflow: Fix double-free on stdout 2019-02-18 11:05:26 +00:00
po validate: Update autogen.sh 2015-04-23 11:52:41 +02:00
tests validate: report: Fix the way we print 'repeat' values 2019-02-15 14:19:03 +00:00
tools validate:launcher: Add a simple way to profile app 2019-02-09 17:23:28 -03:00
win32 win32: update .def file for new API 2019-01-17 09:38:13 +00:00
.gitignore validate: Update all gitignore 2018-06-05 16:25:46 +02:00
AUTHORS qa: adds gst-qa binary and basic classes to run the QA tests 2013-07-09 16:08:30 -03:00
autogen.sh validate: Always git submodule update from the toplevel directory 2015-05-12 09:55:58 +02:00
ChangeLog Release 1.15.1 2019-01-17 10:01:50 +00:00
configure.ac validate: Add autotools support for flow plugin 2019-02-11 11:09:46 +01:00
COPYING qa: adds gst-qa binary and basic classes to run the QA tests 2013-07-09 16:08:30 -03:00
gst-validate.doap Release 1.15.1 2019-01-17 10:01:50 +00:00
Makefile.am validate: make: include common/win32.mak 2016-11-19 11:54:06 +02:00
meson.build Fix distcheck 2019-01-17 10:00:46 +00:00
NEWS Release 1.15.1 2019-01-17 10:01:50 +00:00
README docs: update and improve 2013-09-02 16:09:07 -03:00
RELEASE Release 1.15.1 2019-01-17 10:01:50 +00:00

== Gst-Validate

The goal of GstValidate is to be able to detect when elements are not
behaving as expected and report it to the user so he knows how things
are supposed to work inside a GstPipeline. In the end, fixing issues
found by the tool will ensure that all elements behave all together in
the expected way.

The easiest way of using GstValidate is to use one of its command-line
tools, located at tools/ directory. It is also possible to monitor
GstPipelines from any application by using the LD_PRELOAD gstvalidate
lib. The third way of using it is to write your own application that
links and uses libgstvalidate.

== BUILDING

Getting the code:

Releases are available at <URL>, download and extract the tarball. If you
want to use latest git version, do:

git clone <URI>

After cloning or extracting from a tarball, enter the gst-validate directory:

cd gst-validate

The 'master' branch uses gstreamer 1.0, there is a '0.10' branch for
gstreamer 0.10. The default is the 'master' branch, if you want to use it
for 0.10, do:

git checkout --track origin/0.10

Build with:

./autogen.sh --prefix=<installation-prefix>
make
sudo make install (only if you want to install it)

Replace <installation-prefix> with your desired installation path, you can omit
the --prefix argument if you aren't going to install it or if you want the
default /usr/local. It is possible to use gst-validate CLI tools without
installation.

== INSTRUCTIONS

If you are looking for informations on how to use gst-validate -> docs/validate-usage.txt
If you are looking for informations on gst-validate design -> docs/validate-design.txt