[webkit-changes] [WebKit/WebKit] fa6485: Cherry-pick 284353 at main (ae4d384da8af). https://bu...

Enrique Ocaña González noreply at github.com
Fri Sep 27 13:58:16 PDT 2024


  Branch: refs/heads/webkitglib/2.46
  Home:   https://github.com/WebKit/WebKit
  Commit: fa6485cc7f3b7806bcd8e63294f8606e560823f4
      https://github.com/WebKit/WebKit/commit/fa6485cc7f3b7806bcd8e63294f8606e560823f4
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2024-09-27 (Fri, 27 Sep 2024)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 284353 at main (ae4d384da8af). https://bugs.webkit.org/show_bug.cgi?id=280334

    REGRESSION(284072 at main): [GStreamer] A lot of media tests crash with Assertion "SHOULD NEVER BE REACHED"
    https://bugs.webkit.org/show_bug.cgi?id=280334

    Reviewed by Xabier Rodriguez-Calvar and Philippe Normand.

    A video can work in two modes: streaming mode (GstQueue2 element is
    used, GST_MESSAGE_BUFFERING is relied upon to get buffering info) or
    download mode (GstDownloadBuffer element is used, fillTimer is used to
    poll its buffering percentage).

    However, under some circumstances (file or mediastream URI, for
    instance), none of these two GStreamer elements are created and the
    player private was expecting the video to work in download mode. The
    failing assert higlighted the mismatch when fillTimerFired asked for the
    buffering percentage. But the truth is that in these special cases the
    video can actually work in stream mode and ask the whole pipeline or the
    sinks for the buffering percentage (which usually is just 100%, meaning
    that buffering is complete).

    This commit acknowledges the existence of these special cases and
    removes the assert. Also, it stops the fillTimer when buffering reaches
    100% in those cases, to avoid wasting resources.

    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::queryBufferingPercentage): Removed assert. Added extra comment. Stop fillTimer (and report it in the logs) when on stream mode and buffering reaching 100%.

    Canonical link: https://commits.webkit.org/284353@main

Canonical link: https://commits.webkit.org/282416.171@webkitglib/2.46



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list