Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2431cfa314f3ed427e74049bc340ab8371bc4b48
      
https://github.com/WebKit/WebKit/commit/2431cfa314f3ed427e74049bc340ab8371bc4b48
  Author: Claudio Saavedra <[email protected]>
  Date:   2026-10-06 (Tue, 06 Oct 2026)

  Changed paths:
    M 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp

  Log Message:
  -----------
  [GStreamer][MSE] ASSERT_NOT_REACHED() in 
MediaPlayerPrivateGStreamerMSE::buffered() after the MediaSource is detached
https://bugs.webkit.org/show_bug.cgi?id=326504

Reviewed by Philippe Normand.

HTMLMediaElement::buffered() retrieves the buffered ranges from the
MediaSource while one is attached, and only falls back to the MediaPlayer
otherwise. However, the MediaSource is detached from the element in some
situations where the MSE player is kept alive, for instance by
mediaLoadingFailedFatally() after a decode or network error. Any read of
HTMLMediaElement.buffered in that window (e.g. by the media controls)
reaches MediaPlayerPrivateGStreamerMSE::buffered() with m_source set, and
hits its ASSERT_NOT_REACHED(), crashing builds with assertions enabled.

This was observed on the WPE ARM64 release bot (which has assertions
enabled) in media/media-source/media-source-audio-track-id-switch-play.html,
with the media controls reading video.buffered after a pipeline error.

Return empty ranges without asserting, like
MediaPlayerPrivateMediaSourceAVFObjC::buffered() does.

* 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::buffered const):

Canonical link: https://commits.webkit.org/322855@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to