[Webkit-unassigned] [Bug 202204] REGRESSION(r246399): [GStreamer] Problems playing AAC streams
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Oct 1 05:06:43 PDT 2019
https://bugs.webkit.org/show_bug.cgi?id=202204
--- Comment #4 from Philippe Normand <pnormand at igalia.com> ---
Strange that commit introduced the regression for sure?
Here what I observe is that the internal queue gets drained just before the next data chunk arrives and that triggers EOS. However it shouldn't be triggered because this is a "live" non-seekable stream. I have a simple fix but I'll try to write a layout test as well, which will delay the upstreaming of the fix.
So here's the fix, in case downstream users are in urgent need of it:
diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
index 9810c257b37..965b6e276d0 100644
--- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
+++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
@@ -451,11 +451,11 @@ static GstFlowReturn webKitWebSrcCreate(GstPushSrc* pushSrc, GstBuffer** buffer)
GST_BUFFER_OFFSET(*buffer) = baseSrc->segment.position;
GST_BUFFER_OFFSET_END(*buffer) = GST_BUFFER_OFFSET(*buffer) + size;
GST_TRACE_OBJECT(src, "Buffer bounds set to %" G_GUINT64_FORMAT "-%" G_GUINT64_FORMAT, GST_BUFFER_OFFSET(*buffer), GST_BUFFER_OFFSET_END(*buffer));
- GST_TRACE_OBJECT(src, "doesHaveEOS: %s, wasSeeking: %s, seeking: %s, size: %u", boolForPrinting(priv->doesHaveEOS), boolForPrinting(priv->wasSeeking), boolForPrinting(priv->isSeeking), size);
+ GST_TRACE_OBJECT(src, "doesHaveEOS: %s, wasSeeking: %s, seeking: %s, buffer size: %u, size: %" G_GUINT64_FORMAT, boolForPrinting(priv->doesHaveEOS), boolForPrinting(priv->wasSeeking), boolForPrinting(priv->isSeeking), size, priv->size);
if (priv->haveSize && GST_BUFFER_OFFSET_END(*buffer) >= priv->size) {
if (priv->wasSeeking)
priv->wasSeeking = false;
- else
+ else if (priv->isSeekable)
priv->doesHaveEOS = true;
} else if (priv->wasSeeking)
priv->wasSeeking = false;
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20191001/a1a9c69e/attachment.html>
More information about the webkit-unassigned
mailing list