[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