Title: [177279] trunk/Source/WebCore
- Revision
- 177279
- Author
- [email protected]
- Date
- 2014-12-15 07:38:02 -0800 (Mon, 15 Dec 2014)
Log Message
[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: trunk/Source/WebCore/ChangeLog (177278 => 177279)
--- trunk/Source/WebCore/ChangeLog 2014-12-15 13:41:26 UTC (rev 177278)
+++ trunk/Source/WebCore/ChangeLog 2014-12-15 15:38:02 UTC (rev 177279)
@@ -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-15 Gyuyoung Kim <[email protected]>
[GTK] Remove GamepadDeviceGtk::create()
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (177278 => 177279)
--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2014-12-15 13:41:26 UTC (rev 177278)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2014-12-15 15:38:02 UTC (rev 177279)
@@ -124,6 +124,7 @@
guint64 requestedOffset;
+ gboolean pendingStart;
GThreadSafeMainLoopSource startSource;
GThreadSafeMainLoopSource stopSource;
GThreadSafeMainLoopSource needDataSource;
@@ -364,7 +365,8 @@
{
WebKitWebSrcPrivate* priv = src->priv;
- priv->startSource.cancel();
+ if (!priv->pendingStart)
+ priv->startSource.cancel();
priv->needDataSource.cancel();
priv->enoughDataSource.cancel();
priv->seekSource.cancel();
@@ -436,6 +438,7 @@
GMutexLocker<GMutex> locker(*GST_OBJECT_GET_LOCK(src));
+ priv->pendingStart = FALSE;
priv->didPassAccessControlCheck = false;
if (!priv->uri) {
@@ -540,12 +543,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