[webkit-changes] [WebKit/WebKit] 738525: [GStreamer] Fix readyState calculations

Vivienne noreply at github.com
Mon Nov 28 03:49:10 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 738525821b033b3a945e32e3a9c4255af0af595a
      https://github.com/WebKit/WebKit/commit/738525821b033b3a945e32e3a9c4255af0af595a
  Author: Vivienne Watermeier <vwatermeier at igalia.com>
  Date:   2022-11-28 (Mon, 28 Nov 2022)

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

  Log Message:
  -----------
  [GStreamer] Fix readyState calculations
https://bugs.webkit.org/show_bug.cgi?id=248217

Reviewed by Philippe Normand.

On some platforms, the audio sink is acting as a fake sink while the decoder fetches data
from the pipeline and transfers it to the SoC drivers, even in READY and PAUSED states,
meaning we cannot rely on buffering messages anymore.

However, on that platform the audio sinks implements buffering queries, that are currently
issued to the entire pipeline, which on some platforms may yield misleading results
if some random element implements buffering queries and receives that query first.

Thus this patch first queries the audio sink, before trying the video sink and finally
the pipeline itself.

Original author: Pawel Lampe <pawel.lampe at gmail.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/975

* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Send buffering query to audio/video sinks first

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




More information about the webkit-changes mailing list