Title: [273309] trunk
- Revision
- 273309
- Author
- [email protected]
- Date
- 2021-02-23 08:58:16 -0800 (Tue, 23 Feb 2021)
Log Message
[GStreamer] fast/mediastream/captureStream/canvas2d.html is flaky timing out since GStreamer 1.18 update
https://bugs.webkit.org/show_bug.cgi?id=218580
Patch by Philippe Normand <[email protected]> on 2021-02-23
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Live streams start without pre-rolling, that means they can reach PAUSED while sinks still
haven't received a sample to render. So we need to notify the media element in such cases
only after pre-rolling has completed. Otherwise the media element might emit a play event
too early, before pre-rolling has been completed.
No new tests, this patch fixes a few layout tests though, most notably removing flakiness
from fast/mediastream/captureStream/canvas2d.html.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
LayoutTests:
* platform/glib/TestExpectations: Unflag no-longer-flaky and now-passing media tests.
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (273308 => 273309)
--- trunk/LayoutTests/ChangeLog 2021-02-23 16:21:48 UTC (rev 273308)
+++ trunk/LayoutTests/ChangeLog 2021-02-23 16:58:16 UTC (rev 273309)
@@ -1,3 +1,12 @@
+2021-02-23 Philippe Normand <[email protected]>
+
+ [GStreamer] fast/mediastream/captureStream/canvas2d.html is flaky timing out since GStreamer 1.18 update
+ https://bugs.webkit.org/show_bug.cgi?id=218580
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ * platform/glib/TestExpectations: Unflag no-longer-flaky and now-passing media tests.
+
2021-02-23 Frederic Wang <[email protected]>
Nullptr crash in ModifySelectionListLevelCommand::appendSiblingNodeRange
Modified: trunk/LayoutTests/platform/glib/TestExpectations (273308 => 273309)
--- trunk/LayoutTests/platform/glib/TestExpectations 2021-02-23 16:21:48 UTC (rev 273308)
+++ trunk/LayoutTests/platform/glib/TestExpectations 2021-02-23 16:58:16 UTC (rev 273309)
@@ -512,8 +512,6 @@
webkit.org/b/214038 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html [ Missing Failure ]
-webkit.org/b/217829 media/video-orientation-canvas.html [ Failure ]
-
webkit.org/b/217845 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html [ Failure ]
webkit.org/b/218321 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/active-processing.https.html [ Pass Timeout Failure ]
# Needs to process results in order.
@@ -520,8 +518,6 @@
webkit.org/b/218652 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html [ Failure Pass ]
webkit.org/b/218653 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html [ Failure Pass ]
-webkit.org/b/218580 fast/mediastream/captureStream/canvas2d.html [ Failure Timeout ]
-
webkit.org/b/220540 media/media-fullscreen-inline.html [ Timeout ]
#////////////////////////////////////////////////////////////////////////////////////////
@@ -1577,8 +1573,7 @@
# Fails because MutationObservers are not notified at end-of-task.
webkit.org/b/78290 fast/dom/MutationObserver/end-of-task-delivery.html [ Failure ]
-# The MediaStream implementation is still not completed,
-webkit.org/b/79203 fast/mediastream/MediaStream-video-element-displays-buffer.html [ Failure ]
+# The MediaStream implementation is almost completed
webkit.org/b/79203 fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html [ Timeout Failure ]
webkit.org/b/84692 fast/events/attempt-scroll-with-no-scrollbars.html [ Failure ]
Modified: trunk/Source/WebCore/ChangeLog (273308 => 273309)
--- trunk/Source/WebCore/ChangeLog 2021-02-23 16:21:48 UTC (rev 273308)
+++ trunk/Source/WebCore/ChangeLog 2021-02-23 16:58:16 UTC (rev 273309)
@@ -1,3 +1,22 @@
+2021-02-23 Philippe Normand <[email protected]>
+
+ [GStreamer] fast/mediastream/captureStream/canvas2d.html is flaky timing out since GStreamer 1.18 update
+ https://bugs.webkit.org/show_bug.cgi?id=218580
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ Live streams start without pre-rolling, that means they can reach PAUSED while sinks still
+ haven't received a sample to render. So we need to notify the media element in such cases
+ only after pre-rolling has completed. Otherwise the media element might emit a play event
+ too early, before pre-rolling has been completed.
+
+ No new tests, this patch fixes a few layout tests though, most notably removing flakiness
+ from fast/mediastream/captureStream/canvas2d.html.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::updateStates):
+ (WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
+
2021-02-23 Diego Pino Garcia <[email protected]>
Unreviewed, GTK Ubuntu LTS build fix after r273241
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (273308 => 273309)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2021-02-23 16:21:48 UTC (rev 273308)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2021-02-23 16:58:16 UTC (rev 273309)
@@ -2405,10 +2405,9 @@
if (m_currentState == GST_STATE_READY)
m_readyState = MediaPlayer::ReadyState::HaveNothing;
- else if (m_currentState == GST_STATE_PAUSED) {
- m_readyState = MediaPlayer::ReadyState::HaveEnoughData;
+ else if (m_currentState == GST_STATE_PAUSED)
m_isPaused = true;
- } else if (m_currentState == GST_STATE_PLAYING)
+ else if (m_currentState == GST_STATE_PLAYING)
m_isPaused = false;
if (!m_isPaused && m_playbackRate)
@@ -3081,6 +3080,15 @@
if (!weakThis)
return;
updateVideoSizeAndOrientationFromCaps(caps.get());
+
+ // Live streams start without pre-rolling, that means they can reach PAUSED while sinks
+ // still haven't received a sample to render. So we need to notify the media element in
+ // such cases only after pre-rolling has completed. Otherwise the media element might
+ // emit a play event too early, before pre-rolling has been completed.
+ if (m_isLiveStream && m_readyState < MediaPlayer::ReadyState::HaveEnoughData) {
+ m_readyState = MediaPlayer::ReadyState::HaveEnoughData;
+ m_player->readyStateChanged();
+ }
});
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes