[webkit-changes] [WebKit/WebKit] 213b24: Cherry-pick 259947 at main (783b37dbff01). https://bu...

Philippe Normand noreply at github.com
Wed Mar 1 05:58:51 PST 2023


  Branch: refs/heads/webkitglib/2.38
  Home:   https://github.com/WebKit/WebKit
  Commit: 213b2427ba82fc79acc9a54240fb851025167b8c
      https://github.com/WebKit/WebKit/commit/213b2427ba82fc79acc9a54240fb851025167b8c
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 259947 at main (783b37dbff01). https://bugs.webkit.org/show_bug.cgi?id=251783

    [GStreamer][EME] Misc clean-ups in decryptor base class
    https://bugs.webkit.org/show_bug.cgi?id=251783

    Reviewed by Xabier Rodriguez-Calvar.

    Chain to parent constructed vfunc and fix a mislabelled debug statement.

    * Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
    (constructed):
    (attachCDMProxy):

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


  Commit: de628332d43e13eb02d6ecb49e08abaafeed7704
      https://github.com/WebKit/WebKit/commit/de628332d43e13eb02d6ecb49e08abaafeed7704
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

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

  Log Message:
  -----------
  Cherry-pick 259948 at main (0bf0c5ed4b63). https://bugs.webkit.org/show_bug.cgi?id=251784

    [GStreamer][EME] video track configuration not updated when dealing with cenc caps
    https://bugs.webkit.org/show_bug.cgi?id=251784

    Reviewed by Xabier Rodriguez-Calvar.

    With encrypted caps `gst_video_info_from_caps()` would fail, so we fallback to our custom utilities
    in this case.

    * Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
    (WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):

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


  Commit: c72f2d3acc030c6ca31a2e4a8788bf43af47e56f
      https://github.com/WebKit/WebKit/commit/c72f2d3acc030c6ca31a2e4a8788bf43af47e56f
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

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

  Log Message:
  -----------
  Cherry-pick 259998 at main (8657349b48ce). https://bugs.webkit.org/show_bug.cgi?id=251852

    [GStreamer][EME] audio track configuration not updated when dealing with cenc caps
    https://bugs.webkit.org/show_bug.cgi?id=251852

    Reviewed by Xabier Rodriguez-Calvar.

    With encrypted caps `gst_audio_info_from_caps()` would fail, so we fallback to custom caps probing
    in this case.

    * Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
    (WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):

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


  Commit: c62e14cd77a0a6cbb7ec584a422b9fd59e146937
      https://github.com/WebKit/WebKit/commit/c62e14cd77a0a6cbb7ec584a422b9fd59e146937
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

  Changed paths:
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp

  Log Message:
  -----------
  Cherry-pick 260184 at main (d94a8a70284c). https://bugs.webkit.org/show_bug.cgi?id=252008

    [GStreamer] Remove useless code from capturer
    https://bugs.webkit.org/show_bug.cgi?id=252008

    Reviewed by Xabier Rodriguez-Calvar.

    The capturer pipeline has no sync bus handler, so not need to reset it when stopping.

    * Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp:
    (WebCore::GStreamerCapturer::stop):

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


  Commit: b2b9cadad45cddc0bee7d10c41274aaf35c3e77b
      https://github.com/WebKit/WebKit/commit/b2b9cadad45cddc0bee7d10c41274aaf35c3e77b
  Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

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

  Log Message:
  -----------
  Cherry-pick 260199 at main (0607f5ae7377). https://bugs.webkit.org/show_bug.cgi?id=252166

    [GStreamer][Westeros] Do not sync on clock
    https://bugs.webkit.org/show_bug.cgi?id=252166

    Reviewed by Philippe Normand.

    Patch by Eugene Mutavchi <Ievgen_Mutavchi at comcast.com>.

    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::syncOnClock): Add build flag for Westeros.

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


  Commit: f68c7970c12438e8af0976a8f19a74ac6263c313
      https://github.com/WebKit/WebKit/commit/f68c7970c12438e8af0976a8f19a74ac6263c313
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

  Changed paths:
    A LayoutTests/media/video-pause-while-seeking-expected.txt
    A LayoutTests/media/video-pause-while-seeking.html
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 260314 at main (5d8787383e48). https://bugs.webkit.org/show_bug.cgi?id=252063

    [GStreamer] Don't emit playbackStateChanged() event after a seek
    https://bugs.webkit.org/show_bug.cgi?id=252063

    It is not possible to pause the playback during a seek. Sink elements
    lose their states entering ASYNC PAUSED->PAUSED transition. Calling HTML
    video.pause() during a seek doesn't result in pipeline state change call
    as player reports it's paused already. Forcing gst_element_set_state()
    doesn't really help in this case as pipeline enters inconsistent state
    after a seek that everything is playing but sinks are paused.

    In addition, triggering playbackStateChanged() at seek end causes
    HTMLMediaElement::playInternal() that cleans up all signs of previous
    pause() call.

    Don't emit playbackStateChanged() at seek end so HTML won't force
    playInternal() and HTMLMediaElement will call pauseInternal() again
    after a seek (from updatePlayState()).

    This fixes following scenario:

     video.currentTime = x.xx
     video.play();
     // ensure async duringn a seek (video didn't pause after initial
     // seek had finished)
     setTimeout(()=>{ video.pause(); }, 1}

    Original author: Andrzej Surdej (https://github.com/asurdej-comcast)

    See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/1013

    Reviewed by Philippe Normand.

    * LayoutTests/media/video-pause-while-seeking-expected.txt: Added.
    * LayoutTests/media/video-pause-while-seeking.html: Added.
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::updateStates): Don't update playback state during a seek.

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


  Commit: 39bf85506dc3519705a1126e9df9f984c7a13691
      https://github.com/WebKit/WebKit/commit/39bf85506dc3519705a1126e9df9f984c7a13691
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

  Changed paths:
    M LayoutTests/media/media-source/content/test-vorbis-manifest.json
    M LayoutTests/media/media-source/content/test-xhe-aac-manifest.json
    A LayoutTests/media/media-source/media-managedmse-expected.txt
    A LayoutTests/media/media-source/media-managedmse.html
    M LayoutTests/media/media-source/media-source-loader.js
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/Modules/mediasource/MediaSource.idl
    M Source/WebCore/Modules/mediasource/SourceBuffer.idl

  Log Message:
  -----------
  Cherry-pick 260360 at main (b4f656f61284). https://bugs.webkit.org/show_bug.cgi?id=252307

    ManagedMediaExtension missing SkipVTableValidation in IDL
    https://bugs.webkit.org/show_bug.cgi?id=252307
    rdar://105489108

    Reviewed by Cameron McCormack.

    ManagedMediaSource and ManagedSourceBuffer inherit from MediaSource
    and SourceBuffer respectively.
    As such, both MediaSource and SourceBuffer need SkipVTableValidation
    keyword in their IDL definition to avoid
    `RELEASE_ASSERT(actualVTablePointer == expectedVTablePointer);`

    Added some minimal tests working on all platforms.

    * LayoutTests/platform/glib/TestExpectations: Skip test for now (see bug 252386)
    * LayoutTests/media/media-source/content/test-vorbis-manifest.json: Fix duration.
    * LayoutTests/media/media-source/content/test-xhe-aac-manifest.json: Fix duration.
    * LayoutTests/media/media-source/media-managedmse-expected.txt: Added.
    * LayoutTests/media/media-source/media-managedmse.html: Added.
    * LayoutTests/media/media-source/media-source-loader.js:
    (MediaSourceLoader.prototype.mediaSegmentEndTime): Add method.
    * Source/WebCore/Modules/mediasource/MediaSource.idl:
    * Source/WebCore/Modules/mediasource/SourceBuffer.idl:

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


  Commit: 7b5e60ab1021a55593d47ec0076190625e5f29fb
      https://github.com/WebKit/WebKit/commit/7b5e60ab1021a55593d47ec0076190625e5f29fb
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

  Changed paths:
    M Source/WebCore/Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 260361 at main (b2fe9a2501d1). https://bugs.webkit.org/show_bug.cgi?id=252319

    [GStreamer][MediaStream] AudioDestination buffers layout is incorrect
    https://bugs.webkit.org/show_bug.cgi?id=252319

    Reviewed by Xabier Rodriguez-Calvar.

    Copy the bus data to a tightly packed GstBuffer memory, as mandated by the audio layout advertised
    by the caps. Also drive-by, set the PTS on the new buffer.

    * Source/WebCore/Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp:
    (WebCore::copyBusData):
    (WebCore::MediaStreamAudioSource::consumeAudio):

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


  Commit: 48fa66fe5d9a9fca4962b2bfdacf0959540fb501
      https://github.com/WebKit/WebKit/commit/48fa66fe5d9a9fca4962b2bfdacf0959540fb501
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

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

  Log Message:
  -----------
  Cherry-pick 260362 at main (e3f0ed64c816). https://bugs.webkit.org/show_bug.cgi?id=252270

    [GStreamer] Unresponsive web process when playing HLS video, hang when calling gst_pad_set_active?
    https://bugs.webkit.org/show_bug.cgi?id=252270

    Reviewed by Xabier Rodriguez-Calvar.

    Prevent decodebin(3) from auto-plugging hlsdemux if it was disabled. UAs should be able to fallback
    to MSE when this happens.

    * Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
    (WebCore::registerWebKitGStreamerElements):

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


  Commit: 98e1ae7d5a190cd69c0c89b45f95d574f08aa9c5
      https://github.com/WebKit/WebKit/commit/98e1ae7d5a190cd69c0c89b45f95d574f08aa9c5
  Author: Jeff Miller <jeffm at apple.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

  Changed paths:
    M Source/WebCore/loader/cache/MemoryCache.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  Cherry-pick 260371 at main (40c78192b01e). https://bugs.webkit.org/show_bug.cgi?id=252356

    Assertion failure when calling WKBundlePageHasLocalDataForURL() with a URL that contains a fragment identifier
    https://bugs.webkit.org/show_bug.cgi?id=252356
    rdar://105518815

    Reviewed by Wenson Hsieh.

    WKBundlePageHasLocalDataForURL() is the only caller of WebPage::hasLocalDataForURL(), which calls
    DocumentLoader::subresource() with the URL. That function only expects URLs without fragment
    identifiers, so remove any identifier first in WebPage::hasLocalDataForURL().

    * Source/WebCore/loader/cache/MemoryCache.h:
    Export MemoryCache::removeFragmentIdentifierIfNeeded() so it can be used from WebKit.

    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::hasLocalDataForURL):
    Remove any fragment identifier from the URL before passing it to DocumentLoader::subresource().

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


  Commit: 6010d94d9057a0f45ee5b5fe1ee6769dd1e9b9c7
      https://github.com/WebKit/WebKit/commit/6010d94d9057a0f45ee5b5fe1ee6769dd1e9b9c7
  Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
  Date:   2023-02-28 (Tue, 28 Feb 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h

  Log Message:
  -----------
  Cherry-pick 260373 at main (0a2f95456a87). https://bugs.webkit.org/show_bug.cgi?id=252230

    [GStreamer][Westeros] Initial playbin3 support
    https://bugs.webkit.org/show_bug.cgi?id=252230

    Reviewed by Philippe Normand.

    Added support to handle the westeros sink caps in playbin3.

    Original patch by Eugene Mutavchi <Ievgen_Mutavchi at comcast.com>.

    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::configureElement):
    (WebCore::MediaPlayerPrivateGStreamer::configureElementPlatformQuirks):
    (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

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


  Commit: 17d9e94788eeec4ff07d80016524def7aaecc10f
      https://github.com/WebKit/WebKit/commit/17d9e94788eeec4ff07d80016524def7aaecc10f
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-03-01 (Wed, 01 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp

  Log Message:
  -----------
  Cherry-pick 260875 at main (afe779a29470). https://bugs.webkit.org/show_bug.cgi?id=252958

    REGRESSION(260082 at main): [GStreamer][1.20] YT broken
    https://bugs.webkit.org/show_bug.cgi?id=252958

    Reviewed by Xabier Rodriguez-Calvar.

    In 260082 at main we made the MSE source element act as an adaptive stream, triggering a different code
    path in urisourcebin, that turned out to be broken in GStreamer versions older than 1.22 and
    triggering caps negotiation errors during typefinding in urisourcebin. The commit that fixed this in
    GStreamer 1.22 is too big for backporting, so fallback to previous behavior in runtimes older than 1.22.

    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::configureElement):
    * Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
    (webkit_media_src_class_init):
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
    (webkit_media_stream_src_class_init):

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


Compare: https://github.com/WebKit/WebKit/compare/f13d5a4d1481...17d9e94788ee


More information about the webkit-changes mailing list