mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 04:00:37 +00:00
GStreamer multimedia framework
f0abd316e2
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. |
||
---|---|---|
codecanalyzer | ||
debug-viewer | ||
hooks | ||
mediainfo | ||
tracer | ||
vagrant | ||
validate | ||
.arcconfig | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
configure | ||
meson.build | ||
meson_options.txt |