gstreamer/validate/gst
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
..
overrides validate: Export the plugin symbol correctly 2018-09-06 17:29:24 +05:30
validate gst-validate-scenario: Make waits optional in appsrc-push 2019-02-24 01:23:58 +01:00
Makefile.am validate: Turn GstValidateRunner into a GstTracer 2016-02-23 11:46:32 +01:00
meson.build meson: Build gstvalidate-default-overrides-1.0 2018-07-31 23:30:36 +05:30