Title: [145521] releases/WebKitGTK/webkit-2.0/Source/WebCore
- Revision
- 145521
- Author
- [email protected]
- Date
- 2013-03-12 04:26:35 -0700 (Tue, 12 Mar 2013)
Log Message
Merge r145318 - Fix offset handling in GStreamer WebKitWebSource.
https://bugs.webkit.org/show_bug.cgi?id=111888
Patch by Sebastian Dröge <[email protected]> on 2013-03-09
Reviewed by Philippe Normand.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcSeekDataCb):
(StreamingClient::didReceiveData):
The offset handling in WebKitWebSource was completely wrong
before and caused wrong offsets to be set on the GStreamer buffers
after a seek.
Apart from that there was also a race condition that happens
when a downstream element causes seeks in very short succession
and is switching between two different parts of the stream.
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.0/Source/WebCore/ChangeLog (145520 => 145521)
--- releases/WebKitGTK/webkit-2.0/Source/WebCore/ChangeLog 2013-03-12 11:18:54 UTC (rev 145520)
+++ releases/WebKitGTK/webkit-2.0/Source/WebCore/ChangeLog 2013-03-12 11:26:35 UTC (rev 145521)
@@ -1,3 +1,21 @@
+2013-03-09 Sebastian Dröge <[email protected]>
+
+ Fix offset handling in GStreamer WebKitWebSource.
+ https://bugs.webkit.org/show_bug.cgi?id=111888
+
+ Reviewed by Philippe Normand.
+
+ * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+ (webKitWebSrcSeekDataCb):
+ (StreamingClient::didReceiveData):
+ The offset handling in WebKitWebSource was completely wrong
+ before and caused wrong offsets to be set on the GStreamer buffers
+ after a seek.
+
+ Apart from that there was also a race condition that happens
+ when a downstream element causes seeks in very short succession
+ and is switching between two different parts of the stream.
+
2013-03-07 Zan Dobersek <[email protected]>
[GTK] Limit the supported compilers to GCC >= 4.7 and Clang >= 3.0
Modified: releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (145520 => 145521)
--- releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2013-03-12 11:18:54 UTC (rev 145520)
+++ releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2013-03-12 11:26:35 UTC (rev 145521)
@@ -463,6 +463,7 @@
val.set(g_strdup_printf("bytes=%" G_GUINT64_FORMAT "-", priv->requestedOffset));
request.setHTTPHeaderField("Range", val.get());
}
+ priv->offset = priv->requestedOffset;
if (priv->iradioMode)
request.setHTTPHeaderField("icy-metadata", "1");
@@ -745,7 +746,7 @@
WebKitWebSrcPrivate* priv = src->priv;
GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset);
- if (offset == priv->offset)
+ if (offset == priv->offset && priv->requestedOffset == priv->offset)
return TRUE;
if (!priv->seekable)
@@ -908,6 +909,8 @@
setGstBufferSize(priv->buffer.get(), length);
GST_BUFFER_OFFSET(priv->buffer.get()) = priv->offset;
+ if (priv->requestedOffset == priv->offset)
+ priv->requestedOffset += length;
priv->offset += length;
GST_BUFFER_OFFSET_END(priv->buffer.get()) = priv->offset;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes