[webkit-changes] [WebKit/WebKit] 910edd: [MSE][GStreamer] Skip waiting for preroll when aud...

Enrique Ocaña González noreply at github.com
Wed Oct 4 05:13:40 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 910eddedfb3559fc9ed8829ae84efad7980978a9
      https://github.com/WebKit/WebKit/commit/910eddedfb3559fc9ed8829ae84efad7980978a9
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2023-10-04 (Wed, 04 Oct 2023)

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

  Log Message:
  -----------
  [MSE][GStreamer] Skip waiting for preroll when audio sink is non-async
https://bugs.webkit.org/show_bug.cgi?id=262492

Reviewed by Alicia Boya Garcia.

When the audio sink is non-async, the GST_STATE_CHANGE_ASYNC change will never happen. Under
these circumstances, the asyncStateChangeDone() code will never run. This patch calls that
method manually, fixing the issue. The method has been now given a better name (didPreroll()),
which better expresses the semantics.

Original author: Pawel Lampe <pawel.lampe at gmail.com>

See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/1195

* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek): Manually call asyncStateChangeDone() when the audio sink is non-async.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): asyncStateChangeDone() renamed to didPreroll().
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerPrivateGStreamer::didPreroll): Old asyncStateChangeDone().
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone): Deleted.
* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek): asyncStateChangeDone() renamed to didPreroll().
(WebCore::MediaPlayerPrivateGStreamerMSE::didPreroll): Old asyncStateChangeDone().
(WebCore::MediaPlayerPrivateGStreamerMSE::asyncStateChangeDone): Deleted.
* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

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




More information about the webkit-changes mailing list