[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