[webkit-changes] [WebKit/WebKit] fa1227: [MSE][GStreamer] Don't extend PTS of non-key frame

Enrique Ocaña González noreply at github.com
Wed Feb 8 05:55:33 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fa12275b80a8b12cde02cb86e3750bf41b6c71f3
      https://github.com/WebKit/WebKit/commit/fa12275b80a8b12cde02cb86e3750bf41b6c71f3
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2023-02-08 (Wed, 08 Feb 2023)

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

  Log Message:
  -----------
  [MSE][GStreamer] Don't extend PTS of non-key frame
https://bugs.webkit.org/show_bug.cgi?id=251868

The edit list support patch from
https://bugs.webkit.org/show_bug.cgi?id=231019 was reverted in
https://bugs.webkit.org/show_bug.cgi?id=244428. While that patch isn't
landed again, we're growing the first buffer of an append near the
begining of the stream to make it start from 0. This workaround uses a
tolerance of 0.1s, and can cause problems on frames short enough to fit
more than one time in the tolerance margin (eg: 3 frames at 30fps would
fit, as well as 6 frames at 60fps).

The process of growing the seconde frame that still fit in the tolerance
is triggering the deletion of the first frame, which is usually a sync
one. This sweeps other frames into the deletion and causes problems.

This patch changes the condition to enable frame growing to only apply
on key frames (sync samples).

Original author: Eugene Mutavchi <Ievgen_Mutavchi at comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/1015

Reviewed by Alicia Boya Garcia.

* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample): Don't extend PTS of non-key frame.

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




More information about the webkit-changes mailing list