Diff
Modified: releases/WebKitGTK/webkit-2.24/LayoutTests/ChangeLog (243588 => 243589)
--- releases/WebKitGTK/webkit-2.24/LayoutTests/ChangeLog 2019-03-27 23:47:47 UTC (rev 243588)
+++ releases/WebKitGTK/webkit-2.24/LayoutTests/ChangeLog 2019-03-27 23:48:01 UTC (rev 243589)
@@ -1,3 +1,13 @@
+2019-03-26 Philippe Normand <[email protected]>
+
+ [GStreamer] Sound loop with Google Hangouts and WhatsApp notifications
+ https://bugs.webkit.org/show_bug.cgi?id=189471
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ * platform/gtk/TestExpectations:
+ * platform/gtk/media/video-playing-and-pause-expected.txt:
+
2019-03-22 Alicia Boya García <[email protected]>
[MSE][GStreamer] Don't construct segments on PlaybackPipeline::flush
Modified: releases/WebKitGTK/webkit-2.24/LayoutTests/platform/gtk/TestExpectations (243588 => 243589)
--- releases/WebKitGTK/webkit-2.24/LayoutTests/platform/gtk/TestExpectations 2019-03-27 23:47:47 UTC (rev 243588)
+++ releases/WebKitGTK/webkit-2.24/LayoutTests/platform/gtk/TestExpectations 2019-03-27 23:48:01 UTC (rev 243589)
@@ -1485,14 +1485,8 @@
webkit.org/b/116976 media/video-played-collapse.html [ Failure Pass Crash ]
-webkit.org/b/116977 media/event-attributes.html [ Crash Failure Timeout Pass ]
-
webkit.org/b/103443 fast/parser/parser-yield-timing.html [ Failure Pass ]
-webkit.org/b/105191 media/video-playing-and-pause.html [ Failure Pass ]
-
-webkit.org/b/118460 media/media-element-play-after-eos.html [ Timeout Pass ]
-
webkit.org/b/119009 http/tests/cache/subresource-failover-to-network.html [ Failure Pass ]
webkit.org/b/119040 perf/nested-combined-selectors.html [ Failure Pass ]
@@ -1702,8 +1696,6 @@
webkit.org/b/134981 fast/parser/document-write-during-load.html [ Timeout Pass Crash ]
-webkit.org/b/81604 media/video-loop.html [ Timeout Pass ]
-
webkit.org/b/134998 plugins/change-widget-and-click-crash.html [ Timeout Pass Crash ]
webkit.org/b/135003 jquery/attributes.html [ Timeout Pass ]
@@ -3755,6 +3747,84 @@
webkit.org/b/194611 http/wpt/webrtc/getUserMedia-processSwapping.html [ Failure ]
+webkit.org/b/195133 imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-3.html [ Failure ]
+
+webkit.org/b/195134 inspector/cpu-profiler/threads.html [ Failure ]
+webkit.org/b/195134 inspector/cpu-profiler/tracking.html [ Failure ]
+
+webkit.org/b/195259 compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html [ ImageOnlyFailure ]
+
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-control.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-br.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-source.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-text.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source-after.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-text.html [ Failure ]
+
+webkit.org/b/195671 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html [ Failure ]
+webkit.org/b/195671 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html [ Failure ]
+
+webkit.org/b/195712 inspector/canvas/recording-html-2d.html [ Failure ]
+
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-advance-continue-async.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-advance-exception-order.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-advance-invalid.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-advance.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-continue-exception-order.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exceptions.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-delete-exception-order.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction-index-keyrange.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction-index.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction-objectstore-keyrange.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction-objectstore.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-key.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-primarykey.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor-update-exception-order.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbcursor_iterating.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbindex-query-exception-order.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbindex-request-source.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-deleteIndex-exception-order.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex14-exception_order.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbrequest-onupgradeneeded.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/idbtransaction_objectStoreNames.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/key-conversion-exceptions.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/key_valid.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/keygenerator.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/keypath_maxsize.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/large-requests-abort.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/list_ordering.htm [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/request-event-ordering.html [ Failure ]
+webkit.org/b/196069 imported/w3c/web-platform-tests/IndexedDB/value_recursive.htm [ Failure ]
+webkit.org/b/196069 storage/indexeddb/transaction-coordination-across-databases.html [ Failure ]
+
+webkit.org/b/196061 editing/pasteboard/smart-paste-paragraph-001.html [ Failure ]
+webkit.org/b/196061 editing/pasteboard/smart-paste-paragraph-002.html [ Failure ]
+webkit.org/b/196061 editing/pasteboard/smart-paste-paragraph-004.html [ Failure ]
+
+webkit.org/b/196195 inspector/console/console-screenshot.html [ Failure ]
+
+webkit.org/b/196196 inspector/audit/run-resources.html [ Failure ]
+
+webkit.org/b/196197 http/wpt/cache-storage/cache-quota-after-restart.any.html [ Failure ]
+
+webkit.org/b/196199 http/tests/IndexedDB/storage-limit-1.https.html [ Failure ]
+
+webkit.org/b/196201 fast/text/ja-sans-serif.html [ ImageOnlyFailure ]
+
+webkit.org/b/116977 media/event-attributes.html [ Failure ]
+
#////////////////////////////////////////////////////////////////////////////////////////
# End of non-crashing, non-flaky tests failing
#////////////////////////////////////////////////////////////////////////////////////////
Modified: releases/WebKitGTK/webkit-2.24/LayoutTests/platform/gtk/media/video-playing-and-pause-expected.txt (243588 => 243589)
--- releases/WebKitGTK/webkit-2.24/LayoutTests/platform/gtk/media/video-playing-and-pause-expected.txt 2019-03-27 23:47:47 UTC (rev 243588)
+++ releases/WebKitGTK/webkit-2.24/LayoutTests/platform/gtk/media/video-playing-and-pause-expected.txt 2019-03-27 23:48:01 UTC (rev 243589)
@@ -1,28 +1,29 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 800x317
- RenderBlock {HTML} at (0,0) size 800x317
- RenderBody {BODY} at (8,16) size 784x293
- RenderBlock {P} at (0,0) size 784x34
- RenderText {#text} at (0,0) size 766x34
- text run at (0,0) width 766: "Test that pausing the media element in \"playing\" event handler pauses the media immediately. The video should show the"
- text run at (0,17) width 68: "first frame."
- RenderBlock (anonymous) at (0,50) size 784x243
+layer at (0,0) size 800x320
+ RenderBlock {HTML} at (0,0) size 800x320
+ RenderBody {BODY} at (8,16) size 784x296
+ RenderBlock {P} at (0,0) size 784x36
+ RenderText {#text} at (0,0) size 764x35
+ text run at (0,0) width 764: "Test that pausing the media element in \"playing\" event handler pauses the media immediately. The video should show the"
+ text run at (0,18) width 68: "first frame."
+ RenderBlock (anonymous) at (0,52) size 784x244
RenderText {#text} at (0,0) size 0x0
-layer at (8,66) size 320x240
+layer at (8,68) size 320x240
RenderVideo {VIDEO} at (0,0) size 320x240
-layer at (8,66) size 320x240
+layer at (8,68) size 320x240
RenderFlexibleBox {DIV} at (0,0) size 320x240
RenderBlock {DIV} at (0,200) size 320x40
-layer at (13,271) size 310x30
+layer at (13,273) size 310x30
RenderFlexibleBox {DIV} at (5,5) size 310x30 [bgcolor=#141414CC]
- RenderButton {INPUT} at (9,0) size 30x30
+ RenderButton {BUTTON} at (9,0) size 30x30
RenderSlider {INPUT} at (49,11) size 93x8 [color=#E6E6E659]
RenderFlexibleBox {DIV} at (0,0) size 93x8 [border: (1px solid #E6E6E659)]
RenderBlock {DIV} at (1,-2) size 105x12
- RenderBlock {DIV} at (-7,0) size 13x12 [color=#FFFFFF]
+ RenderBlock {DIV} at (-7,0) size 12x12 [color=#FFFFFF]
RenderBlock {DIV} at (157,0) size 74x30 [color=#FFFFFF]
RenderText {#text} at (0,7) size 74x15
text run at (0,7) width 74: "00:00 / 00:06"
- RenderButton {INPUT} at (239,0) size 30x30
- RenderButton {INPUT} at (271,0) size 30x30
+ RenderButton {BUTTON} at (239,0) size 30x30
+ RenderFlexibleBox {DIV} at (271,0) size 30x30
+ RenderButton {BUTTON} at (0,0) size 30x30
Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog (243588 => 243589)
--- releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog 2019-03-27 23:47:47 UTC (rev 243588)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog 2019-03-27 23:48:01 UTC (rev 243589)
@@ -1,3 +1,31 @@
+2019-03-26 Philippe Normand <[email protected]>
+
+ [GStreamer] Sound loop with Google Hangouts and WhatsApp notifications
+ https://bugs.webkit.org/show_bug.cgi?id=189471
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ The media duration is now cached (again). The loop issue was
+ triggered by the previous version of the code returning positive
+ infinite duration in didEnd(), followed by the timeupdate event
+ propagation that would trick the HTMLMediaElement into a new call
+ to play(). Now the cached duration is updated to current position
+ at EOS (for forward playback direction only), so the media element
+ no longer triggers a new play call for those cases.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
+ (WebCore::MediaPlayerPrivateGStreamer::loadFull):
+ (WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
+ (WebCore::MediaPlayerPrivateGStreamer::platformDuration const):
+ (WebCore::MediaPlayerPrivateGStreamer::durationMediaTime const):
+ (WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
+ (WebCore::MediaPlayerPrivateGStreamer::didEnd):
+ (WebCore::MediaPlayerPrivateGStreamer::durationChanged):
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+ (WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime const):
+
2019-03-22 Alicia Boya García <[email protected]>
[MSE][GStreamer] Don't construct segments on PlaybackPipeline::flush
Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (243588 => 243589)
--- releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2019-03-27 23:47:47 UTC (rev 243588)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2019-03-27 23:48:01 UTC (rev 243589)
@@ -136,6 +136,7 @@
, m_buffering(false)
, m_bufferingPercentage(0)
, m_cachedPosition(MediaTime::invalidTime())
+ , m_cachedDuration(MediaTime::invalidTime())
, m_canFallBackToLastFinishedSeekPosition(false)
, m_changingRate(false)
, m_downloadFinished(false)
@@ -142,7 +143,6 @@
, m_errorOccured(false)
, m_isEndReached(false)
, m_isStreaming(false)
- , m_durationAtEOS(MediaTime::invalidTime())
, m_paused(true)
, m_playbackRate(1)
, m_requestedState(GST_STATE_VOID_PENDING)
@@ -310,7 +310,6 @@
m_readyState = MediaPlayer::HaveNothing;
m_player->readyStateChanged();
m_volumeAndMuteInitialized = false;
- m_durationAtEOS = MediaTime::invalidTime();
m_hasTaintedOrigin = WTF::nullopt;
if (!m_delayingLoad)
@@ -366,6 +365,7 @@
MediaTime MediaPlayerPrivateGStreamer::playbackPosition() const
{
+ GST_TRACE_OBJECT(pipeline(), "isEndReached: %s, seeking: %s, seekTime: %s", boolForPrinting(m_isEndReached), boolForPrinting(m_seeking), m_seekTime.toString().utf8().data());
if (m_isEndReached && m_seeking)
return m_seekTime;
@@ -372,8 +372,10 @@
// This constant should remain lower than HTMLMediaElement's maxTimeupdateEventFrequency.
static const Seconds positionCacheThreshold = 200_ms;
Seconds now = WTF::WallTime::now().secondsSinceEpoch();
- if (m_lastQueryTime && (now - m_lastQueryTime.value()) < positionCacheThreshold && m_cachedPosition.isValid())
+ if (m_lastQueryTime && (now - m_lastQueryTime.value()) < positionCacheThreshold && m_cachedPosition.isValid()) {
+ GST_TRACE_OBJECT(pipeline(), "Returning cached position: %s", m_cachedPosition.toString().utf8().data());
return m_cachedPosition;
+ }
m_lastQueryTime = now;
@@ -384,7 +386,7 @@
gst_query_parse_position(query, 0, &position);
gst_query_unref(query);
- GST_TRACE_OBJECT(pipeline(), "Position %" GST_TIME_FORMAT, GST_TIME_ARGS(position));
+ GST_TRACE_OBJECT(pipeline(), "Position %" GST_TIME_FORMAT ", canFallBackToLastFinishedSeekPosition: %s", GST_TIME_ARGS(position), boolForPrinting(m_canFallBackToLastFinishedSeekPosition));
MediaTime playbackPosition = MediaTime::zeroTime();
GstClockTime gstreamerPosition = static_cast<GstClockTime>(position);
@@ -486,29 +488,39 @@
loadingFailed(MediaPlayer::Empty);
}
-MediaTime MediaPlayerPrivateGStreamer::durationMediaTime() const
+MediaTime MediaPlayerPrivateGStreamer::platformDuration() const
{
- if (!m_pipeline || m_errorOccured)
+ GST_TRACE_OBJECT(pipeline(), "errorOccured: %s, pipeline state: %s", boolForPrinting(m_errorOccured), gst_element_state_get_name(GST_STATE(m_pipeline.get())));
+ if (m_errorOccured)
return MediaTime::invalidTime();
- if (m_durationAtEOS.isValid())
- return m_durationAtEOS;
-
// The duration query would fail on a not-prerolled pipeline.
if (GST_STATE(m_pipeline.get()) < GST_STATE_PAUSED)
- return MediaTime::positiveInfiniteTime();
+ return MediaTime::invalidTime();
- gint64 timeLength = 0;
-
- if (!gst_element_query_duration(m_pipeline.get(), GST_FORMAT_TIME, &timeLength) || !GST_CLOCK_TIME_IS_VALID(timeLength)) {
+ int64_t duration = 0;
+ if (!gst_element_query_duration(m_pipeline.get(), GST_FORMAT_TIME, &duration) || !GST_CLOCK_TIME_IS_VALID(duration)) {
GST_DEBUG_OBJECT(pipeline(), "Time duration query failed for %s", m_url.string().utf8().data());
return MediaTime::positiveInfiniteTime();
}
- GST_LOG("Duration: %" GST_TIME_FORMAT, GST_TIME_ARGS(timeLength));
+ GST_LOG_OBJECT(pipeline(), "Duration: %" GST_TIME_FORMAT, GST_TIME_ARGS(duration));
+ return MediaTime(duration, GST_SECOND);
+}
- return MediaTime(timeLength, GST_SECOND);
- // FIXME: handle 3.14.9.5 properly
+MediaTime MediaPlayerPrivateGStreamer::durationMediaTime() const
+{
+ GST_TRACE_OBJECT(pipeline(), "Cached duration: %s", m_cachedDuration.toString().utf8().data());
+ if (m_cachedDuration.isValid())
+ return m_cachedDuration;
+
+ MediaTime duration = platformDuration();
+ if (!duration || duration.isInvalid())
+ return MediaTime::zeroTime();
+
+ m_cachedDuration = duration;
+
+ return m_cachedDuration;
}
MediaTime MediaPlayerPrivateGStreamer::currentMediaTime() const
@@ -516,6 +528,7 @@
if (!m_pipeline || m_errorOccured)
return MediaTime::invalidTime();
+ GST_TRACE_OBJECT(pipeline(), "seeking: %s, seekTime: %s", boolForPrinting(m_seeking), m_seekTime.toString().utf8().data());
if (m_seeking)
return m_seekTime;
@@ -2185,27 +2198,26 @@
// position is not always reported as 0 for instance.
m_cachedPosition = MediaTime::invalidTime();
MediaTime now = currentMediaTime();
- if (now > MediaTime { } && now <= durationMediaTime())
+ if (now > MediaTime::zeroTime() && !m_seeking) {
+ m_cachedDuration = now;
m_player->durationChanged();
+ }
m_isEndReached = true;
- timeChanged();
if (!m_player->client().mediaPlayerIsLooping()) {
m_paused = true;
- m_durationAtEOS = durationMediaTime();
changePipelineState(GST_STATE_READY);
m_downloadFinished = false;
}
+ timeChanged();
}
void MediaPlayerPrivateGStreamer::durationChanged()
{
MediaTime previousDuration = durationMediaTime();
+ m_cachedDuration = MediaTime::invalidTime();
- // FIXME: Check if this method is still useful, because it's not doing its work at all
- // since bug #159458 removed a cacheDuration() call here.
-
// Avoid emiting durationchanged in the case where the previous
// duration was 0 because that case is already handled by the
// HTMLMediaElement.
Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h (243588 => 243589)
--- releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h 2019-03-27 23:47:47 UTC (rev 243588)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h 2019-03-27 23:48:01 UTC (rev 243589)
@@ -91,6 +91,7 @@
bool paused() const override;
bool seeking() const override;
+ MediaTime platformDuration() const;
MediaTime durationMediaTime() const override;
MediaTime currentMediaTime() const override;
void seek(const MediaTime&) override;
@@ -187,11 +188,10 @@
#endif
protected:
- void cacheDuration();
-
bool m_buffering;
int m_bufferingPercentage;
mutable MediaTime m_cachedPosition;
+ mutable MediaTime m_cachedDuration;
bool m_canFallBackToLastFinishedSeekPosition;
bool m_changingRate;
bool m_downloadFinished;
@@ -198,7 +198,6 @@
bool m_errorOccured;
mutable bool m_isEndReached;
mutable bool m_isStreaming;
- mutable MediaTime m_durationAtEOS;
bool m_paused;
float m_playbackRate;
GstState m_currentState;
Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp (243588 => 243589)
--- releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2019-03-27 23:47:47 UTC (rev 243588)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2019-03-27 23:48:01 UTC (rev 243589)
@@ -782,7 +782,6 @@
m_eosPending = false;
m_isEndReached = true;
m_cachedPosition = m_mediaTimeDuration;
- m_durationAtEOS = m_mediaTimeDuration;
m_player->timeChanged();
}
return position;