⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 274478 in webkit


Ignore:
Timestamp:
Mar 16, 2021, 8:04:10 AM (6 years ago)
Author:
calvaris@igalia.com
Message:

[GStreamer][MSE] fix video freeze in NASA TV feed
​https://bugs.webkit.org/show_bug.cgi?id=214625

Reviewed by Alicia Boya Garcia.

Initial seek should not be marked as a real seek as it is not
getting seek-datas from GStreamer and therefore it can mess up
with pipeline branches becoming empty after getting an enough-data
because the need-data is expecting seek-datas to complete that
seek that is never going to happen.

A couple of debug output lines were fixed for the same price.

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcPrepareInitialSeek):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r274477 r274478  
     12021-03-16  Xabier Rodriguez Calvar  <calvaris@igalia.com>
     2
     3        [GStreamer][MSE] fix video freeze in NASA TV feed
     4        https://bugs.webkit.org/show_bug.cgi?id=214625
     5
     6        Reviewed by Alicia Boya Garcia.
     7
     8        Initial seek should not be marked as a real seek as it is not
     9        getting seek-datas from GStreamer and therefore it can mess up
     10        with pipeline branches becoming empty after getting an enough-data
     11        because the need-data is expecting seek-datas to complete that
     12        seek that is never going to happen.
     13
     14        A couple of debug output lines were fixed for the same price.
     15
     16        * platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
     17        (webKitMediaSrcPrepareInitialSeek):
     18
    1192021-03-16  Ziran Sun  <zsun@igalia.com>
    220
  • trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp

    r263656 r274478  
    103103        int numAppsrcs = webKitMediaSrc->priv->streams.size();
    104104        if (webKitMediaSrc->priv->appsrcSeekDataCount == numAppsrcs && webKitMediaSrc->priv->appsrcNeedDataCount == numAppsrcs) {
    105             GST_DEBUG("All needDatas completed");
     105            GST_DEBUG_OBJECT(webKitMediaSrc, "All needDatas completed");
    106106            allAppsrcNeedDataAfterSeek = true;
    107107            webKitMediaSrc->priv->appsrcSeekDataCount = 0;
    … …  
    116116
    117117    if (allAppsrcNeedDataAfterSeek) {
    118         GST_DEBUG("All expected appsrcSeekData() and appsrcNeedData() calls performed. Running next action (%d)", static_cast<int>(appsrcSeekDataNextAction));
     118        GST_DEBUG_OBJECT(webKitMediaSrc, "All expected appsrcSeekData() and appsrcNeedData() calls performed. Running next action (%d)", static_cast<int>(appsrcSeekDataNextAction));
    119119
    120120        switch (appsrcSeekDataNextAction) {
    … …  
    759759
    760760    // The pending action will be performed in enabledAppsrcSeekData().
    761     source->priv->appsrcSeekDataNextAction = MediaSourceSeekToTime;
     761    source->priv->appsrcSeekDataNextAction = Nothing;
    762762
    763763    GUniquePtr<GstSegment> segment(gst_segment_new());
Note: See TracChangeset for help on using the changeset viewer.