[webkit-changes] [WebKit/WebKit] 7fd5af: [GStreamer] Fix prolonged buffering during progres...
Enrique Ocaña González
noreply at github.com
Mon Oct 17 07:46:22 PDT 2022
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 <eocanha at igalia.com>
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 <pawel.lampe at gmail.com>
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
More information about the webkit-changes
mailing list