Title: [178355] releases/WebKitGTK/webkit-2.6/Source/WebCore
Revision
178355
Author
[email protected]
Date
2015-01-13 03:40:38 -0800 (Tue, 13 Jan 2015)

Log Message

Merge r177279 - [GStreamer] the webkitwebsrc element can stale
https://bugs.webkit.org/show_bug.cgi?id=138425

Patch by Xavier Claessens <[email protected]> on 2014-12-15
Reviewed by Philippe Normand.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(removeTimeoutSources):
(webKitWebSrcStart):
(webKitWebSrcChangeState):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog (178354 => 178355)


--- releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog	2015-01-13 11:35:09 UTC (rev 178354)
+++ releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog	2015-01-13 11:40:38 UTC (rev 178355)
@@ -1,3 +1,15 @@
+2014-12-15  Xavier Claessens  <[email protected]>
+
+        [GStreamer] the webkitwebsrc element can stale
+        https://bugs.webkit.org/show_bug.cgi?id=138425
+
+        Reviewed by Philippe Normand.
+
+        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+        (removeTimeoutSources):
+        (webKitWebSrcStart):
+        (webKitWebSrcChangeState):
+
 2014-12-14  Ryosuke Niwa  <[email protected]>
 
         REGRESSION(r160182): Fragment parser doesn't close a form element with a close tag

Modified: releases/WebKitGTK/webkit-2.6/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (178354 => 178355)


--- releases/WebKitGTK/webkit-2.6/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2015-01-13 11:35:09 UTC (rev 178354)
+++ releases/WebKitGTK/webkit-2.6/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2015-01-13 11:40:38 UTC (rev 178355)
@@ -139,6 +139,7 @@
 
     guint64 requestedOffset;
 
+    gboolean pendingStart;
     GThreadSafeMainLoopSource startSource;
     GThreadSafeMainLoopSource stopSource;
     GThreadSafeMainLoopSource needDataSource;
@@ -379,7 +380,8 @@
 {
     WebKitWebSrcPrivate* priv = src->priv;
 
-    priv->startSource.cancel();
+    if (!priv->pendingStart)
+        priv->startSource.cancel();
     priv->needDataSource.cancel();
     priv->enoughDataSource.cancel();
     priv->seekSource.cancel();
@@ -449,6 +451,7 @@
 
     GMutexLocker<GMutex> locker(*GST_OBJECT_GET_LOCK(src));
 
+    priv->pendingStart = FALSE;
     priv->corsAccessCheck = CORSNoCheck;
 
     if (!priv->uri) {
@@ -543,12 +546,14 @@
     switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
         GST_DEBUG_OBJECT(src, "READY->PAUSED");
+        priv->pendingStart = TRUE;
         gst_object_ref(src);
         priv->startSource.schedule("[WebKit] webKitWebSrcStart", std::function<void()>(std::bind(webKitWebSrcStart, src)), G_PRIORITY_DEFAULT,
             [src] { gst_object_unref(src); });
         break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
         GST_DEBUG_OBJECT(src, "PAUSED->READY");
+        priv->pendingStart = FALSE;
         // cancel pending sources
         removeTimeoutSources(src);
         gst_object_ref(src);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to