[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