WebKit Bugzilla
Attachment 360718 Details for
Bug 194087
: [GStreamer][WebRTC] Avoid returning FLUSHING when it is not the case in GStreamerMediaStreamSource
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194087-20190131100828.patch (text/plain), 2.48 KB, created by
Thibault Saunier
on 2019-01-31 05:08:29 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Thibault Saunier
Created:
2019-01-31 05:08:29 PST
Size:
2.48 KB
patch
obsolete
>Subversion Revision: 240707 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 120c31f46a3df27188261e5363cdaad3648ac205..283770d19f8e35bf5465bf18b8a1afcba5463e87 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2019-01-31 Thibault Saunier <tsaunier@igalia.com> >+ >+ [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! >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This is a theorical race we can't really cover with tests. >+ >+ * platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: >+ (WebCore::webkitMediaStreamSrcChain): >+ > 2019-01-29 Rob Buis <rbuis@igalia.com> > > Align with Fetch on data: URLs >diff --git a/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp b/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp >index 927d986c205bb3f0cb21d9ffceb00c30286a1e8c..c391c4cd9dfaa33fe2b3367b5c89a38b07c30b75 100644 >--- a/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp >+++ b/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp >@@ -368,11 +368,14 @@ typedef struct { > > static GstFlowReturn webkitMediaStreamSrcChain(GstPad* pad, GstObject* parent, GstBuffer* buffer) > { >- GstFlowReturn result; >+ GstFlowReturn result, chain_result; > GRefPtr<WebKitMediaStreamSrc> self = adoptGRef(WEBKIT_MEDIA_STREAM_SRC(gst_object_get_parent(parent))); > >- result = gst_flow_combiner_update_pad_flow(self.get()->flowCombiner, pad, >- gst_proxy_pad_chain_default(pad, GST_OBJECT(self.get()), buffer)); >+ chain_result = gst_proxy_pad_chain_default(pad, GST_OBJECT(self.get()), buffer); >+ result = gst_flow_combiner_update_pad_flow(self.get()->flowCombiner, pad, chain_result); >+ >+ if (result == GST_FLOW_FLUSHING) >+ return chain_result; > > return result; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194087
: 360718