[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:30:33 PDT 2019
https://bugs.webkit.org/show_bug.cgi?id=202204
--- Comment #5 from Carlos Alberto Lopez Perez <clopez at igalia.com> ---
(In reply to Philippe Normand from comment #4)
> Strange that commit introduced the regression for sure?
>
I'm not sure if it was the one that introduced the regression, or the one that seems to work-around the issue if reverted. I didn't a full bisect.
I just tested to revert it on my local branch, and observed that after reverting it the issue seems fixed.
> 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;
I tested this patch and it also fixes the issue :)
--
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/2ceb210c/attachment.html>
More information about the webkit-unassigned
mailing list