[webkit-changes] [WebKit/WebKit] f75e1e: REGRESSION(287869 at main?): [macOS Debug wk2] ASSERT...
Jean-Yves Avenard
noreply at github.com
Tue Jan 7 21:33:23 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f75e1eb03f2587e613a564ac94c78089b07beb95
https://github.com/WebKit/WebKit/commit/f75e1eb03f2587e613a564ac94c78089b07beb95
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2025-01-07 (Tue, 07 Jan 2025)
Changed paths:
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.cpp
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.h
Log Message:
-----------
REGRESSION(287869 at main?): [macOS Debug wk2] ASSERTION FAILED: frame->presentationTime() >= m_lastMuxedSampleStartTime in WebCore::MediaRecorderPrivateEncoder::interleaveAndEnqueueNextFrame()
https://bugs.webkit.org/show_bug.cgi?id=284853
rdar://141646476
Reviewed by Youenn Fablet.
This is a tentative fix involving four parts:
- We remove the assertion as it was mostly in place for development purposes; instead we log the errors.
The assertion would normally occur if the incoming data was going to cause an invalid webm (non monotonically increasing timestamps).
- Add assertion that the compressed frames timestamp are increasing monotonically as it's one explanation that
would trigger the earlier assertion with http/wpt/mediarecorder/MediaRecorder-video-bitrate.html
- Calculate the incoming video frame time at the time it is received to reduce the likelihood of frames
having the same timestamp.
- Drop incoming video frames as soon as the pause() has been called as it could have caused
an invalid calculation of the video frame time due to inconsistency between m_currentVideoDuration and m_resumeWallTime
Covered by existing tests, re-enable tests skipped in 287971 at main.
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.cpp:
(WebCore::MediaRecorderPrivateEncoder::pause):
(WebCore::MediaRecorderPrivateEncoder::resume):
(WebCore::MediaRecorderPrivateEncoder::appendVideoFrame):
(WebCore::MediaRecorderPrivateEncoder::enqueueCompressedVideoFrame):
(WebCore::MediaRecorderPrivateEncoder::interleaveAndEnqueueNextFrame):
(WebCore::MediaRecorderPrivateEncoder::currentTime const):
(WebCore::MediaRecorderPrivateEncoder::currentEndTime const):
(WebCore::MediaRecorderPrivateEncoder::nextVideoFrameTime): Deleted. Perform the calculation in appendVideoFrame instead.
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.h:
Canonical link: https://commits.webkit.org/288583@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list