Title: [264299] trunk/Source/WebCore
Revision
264299
Author
[email protected]
Date
2020-07-13 06:03:22 -0700 (Mon, 13 Jul 2020)

Log Message

[MSE][GStreamer] Discard PTS-less samples
https://bugs.webkit.org/show_bug.cgi?id=214252

Reviewed by Philippe Normand.

In some cases GStreamer demuxers emit PTS-less samples with metadata
at the beginning of the container. These are fortunately not necessary
for playback, and in fact incompatible with the way MSE works, where
you should be able to start playing a stream from the middle.

This patch skips these frames in the AppendPipeline so they don't
pollute other parts of the MSE codebase.

Since these frames were not necessary and were later overwritten,
this patch is just a cleanup introducing no notable behavior changes.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (264298 => 264299)


--- trunk/Source/WebCore/ChangeLog	2020-07-13 12:17:04 UTC (rev 264298)
+++ trunk/Source/WebCore/ChangeLog	2020-07-13 13:03:22 UTC (rev 264299)
@@ -1,3 +1,24 @@
+2020-07-13  Alicia Boya GarcĂ­a  <[email protected]>
+
+        [MSE][GStreamer] Discard PTS-less samples
+        https://bugs.webkit.org/show_bug.cgi?id=214252
+
+        Reviewed by Philippe Normand.
+
+        In some cases GStreamer demuxers emit PTS-less samples with metadata
+        at the beginning of the container. These are fortunately not necessary
+        for playback, and in fact incompatible with the way MSE works, where
+        you should be able to start playing a stream from the middle.
+
+        This patch skips these frames in the AppendPipeline so they don't
+        pollute other parts of the MSE codebase.
+
+        Since these frames were not necessary and were later overwritten,
+        this patch is just a cleanup introducing no notable behavior changes.
+
+        * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+        (WebCore::AppendPipeline::appsinkNewSample):
+
 2020-07-13  Carlos Garcia Campos  <[email protected]>
 
         [WPE][GTK4] Form controls are not painted when using threaded rendering

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (264298 => 264299)


--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-07-13 12:17:04 UTC (rev 264298)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-07-13 13:03:22 UTC (rev 264299)
@@ -460,6 +460,12 @@
         return;
     }
 
+    if (!GST_BUFFER_PTS_IS_VALID(gst_sample_get_buffer(sample.get()))) {
+        // When demuxing Vorbis, matroskademux creates several PTS-less frames with header information. We don't need those.
+        GST_DEBUG("Ignoring sample without PTS: %" GST_PTR_FORMAT, gst_sample_get_buffer(sample.get()));
+        return;
+    }
+
     auto mediaSample = WebCore::MediaSampleGStreamer::create(WTFMove(sample), m_presentationSize, trackId());
 
     GST_TRACE("append: trackId=%s PTS=%s DTS=%s DUR=%s presentationSize=%.0fx%.0f",
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to