[webkit-changes] [WebKit/WebKit] d42fe5: [GStreamer][MediaStream] fast/mediastream/MediaStr...

Philippe Normand noreply at github.com
Mon Apr 24 05:10:06 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d42fe538c8b6f8f01d268722793c4420a4573abf
      https://github.com/WebKit/WebKit/commit/d42fe538c8b6f8f01d268722793c4420a4573abf
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-24 (Mon, 24 Apr 2023)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp

  Log Message:
  -----------
  [GStreamer][MediaStream] fast/mediastream/MediaStream-video-element-track-stop.html fails
https://bugs.webkit.org/show_bug.cgi?id=254529

Reviewed by Xabier Rodriguez-Calvar.

The EOS and position tracking for MediaStreams is improved, we now report monotonically increasing
timestamps for the position, similarily to the Mac port. The duration is no longer cached, it's
useless in this case, we can always return positiveInfinite() and thus simplify the `didEnd()` method.

Also the stream collection is now handled differently, when receiving a new collection we
first disable video/text tracks, remove old audio tracks and reactivate tracks corresponding to
existing GstStreams. When player no longer has enabled tracks we trigger the EOS mechanism.

The mediastreamsrc element will now post an empty stream collection when all its tracks have ended,
this allows the media player to deactivate ended video tracks and remove ended audio tracks.

* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::durationMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(webkitMediaStreamSrcPostStreamCollection):

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




More information about the webkit-changes mailing list