[GStreamer][WebRTC] Avoid returning FLUSHING when it is not the case in GStreamerMedi...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Jan 2019 14:24:05 +0000 (14:24 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Jan 2019 14:24:05 +0000 (14:24 +0000)
commit5659649751ccae71d431ae2f7d3c4430941d3ef8
treed97c7499469d899241b1b5ad44c320343cf8d480
parent751a545780d45a10693e7023c5bbd6dadc80690b
[GStreamer][WebRTC] Avoid returning FLUSHING when it is not the case in GStreamerMediaStreamSource
https://bugs.webkit.org/show_bug.cgi?id=194087

Basically GstFlowCombiner was mostly designed for element that have 1 sinkpad and several srcpad
meaning that it makes sense that when any of the downstream pad is returning flushing, you should
return FLUSHING upstream. But in our case we have several sinkpads and FLUSHING should be returned
*only* if the internally linked srcpad is FLUSHING otherwise we might end up setting the upstream
source element task to PAUSED (because downstream returned flushing) on a branch that was not
flushing!

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-01-31
Reviewed by Philippe Normand.

This is a theorical race we can't really cover with tests.

* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(WebCore::webkitMediaStreamSrcChain):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240782 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp