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