Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7fd5af5101339bcf6c80040a5f74e35368effad4
      
https://github.com/WebKit/WebKit/commit/7fd5af5101339bcf6c80040a5f74e35368effad4
  Author: Enrique Ocaña González <[email protected]>
  Date:   2022-10-17 (Mon, 17 Oct 2022)

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

  Log Message:
  -----------
  [GStreamer] Fix prolonged buffering during progressive live playback
https://bugs.webkit.org/show_bug.cgi?id=246352

Reviewed by Xabier Rodriguez-Calvar.

On one of the Comcast devices prolonged buffering is observed in some apps
where live assets are using progressive player. The high threshold of the
queue element (used in live videos or in scenarios where disk buffering is
disabled) can be lowered to mitigate the problem, so that buffering can finish
much faster.

This patch sets the high-watermark on the GstQueue2 element.

The way in which elements are configured has been refactored to its own method.
This may not seem very important in the upstream code, but will certainly ease
the porting to the downstream repository, where at least 3 other custom
configurations are done for other platform dependant elements[1].

Original author: Pawel Lampe <[email protected]>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/953

[1] 
https://github.com/WebPlatformForEmbedded/WPEWebKit/blob/9f61fce0a2b04a3784440cf5ea6b8473c670c19d/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp#L3866

* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::configureElement): New method to 
centralize the setup of the elements. It delegates to configureVideoDecoder(), 
configureDepayloader(), etc. for specific elements and handles the rest of the 
configuration for non-specific ones (such as GstQueue2).
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Use the new 
configureElement() method instead of having everithing embedded in a lambda.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 
Created configureElement().

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to