Title: [223532] releases/WebKitGTK/webkit-2.18/Source/WebCore
Revision
223532
Author
carlo...@webkit.org
Date
2017-10-17 05:32:53 -0700 (Tue, 17 Oct 2017)

Log Message

Merge r223168 - [GStreamer] Fix double seek requested by downloadbuffer GStreamer element in webkibwebsrc
https://bugs.webkit.org/show_bug.cgi?id=178079

Reviewed by Žan Doberšek.

When the downloadbuffer GStreamer element requests two seeks too
close to each other there's some rare race condition where our
source answers that it is not seekable and ends up with
downloadbuffer element to seek beyond the file size, which causes
the server to issue a 416 HTTP error code eventually, causing our
MediaPlayer to stop.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcStop): We only unset he seekable attribute if we are
not seeking.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog (223531 => 223532)


--- releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog	2017-10-17 12:29:37 UTC (rev 223531)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog	2017-10-17 12:32:53 UTC (rev 223532)
@@ -1,3 +1,21 @@
+2017-10-10  Xabier Rodriguez Calvar  <calva...@igalia.com>
+
+        [GStreamer] Fix double seek requested by downloadbuffer GStreamer element in webkibwebsrc
+        https://bugs.webkit.org/show_bug.cgi?id=178079
+
+        Reviewed by Žan Doberšek.
+
+        When the downloadbuffer GStreamer element requests two seeks too
+        close to each other there's some rare race condition where our
+        source answers that it is not seekable and ends up with
+        downloadbuffer element to seek beyond the file size, which causes
+        the server to issue a 416 HTTP error code eventually, causing our
+        MediaPlayer to stop.
+
+        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+        (webKitWebSrcStop): We only unset he seekable attribute if we are
+        not seeking.
+
 2017-10-10  Joanmarie Diggs  <jdi...@igalia.com>
 
         AX: [ATK] ARIA form role should be mapped to ATK_ROLE_LANDMARK; not ATK_ROLE_FORM

Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (223531 => 223532)


--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2017-10-17 12:29:37 UTC (rev 223531)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2017-10-17 12:32:53 UTC (rev 223532)
@@ -58,7 +58,7 @@
     virtual ~CachedResourceStreamingClient();
 private:
 #if USE(SOUP)
-    char* getOrCreateReadBuffer(PlatformMediaResource&, size_t requestedSize, size_t& actualSize);
+    char* getOrCreateReadBuffer(PlatformMediaResource&, size_t requestedSize, size_t& actualSize) override;
 #endif
     // PlatformMediaResourceClient virtual methods.
     void responseReceived(PlatformMediaResource&, const ResourceResponse&) override;
@@ -373,12 +373,12 @@
     priv->paused = false;
 
     priv->offset = 0;
-    priv->seekable = FALSE;
 
     if (!wasSeeking) {
         priv->size = 0;
         priv->requestedOffset = 0;
         priv->player = nullptr;
+        priv->seekable = FALSE;
     }
 
     if (priv->appsrc) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to