[webkit-changes] [WebKit/WebKit] 00c67b: Cherry-pick 261070 at main (c9a7acf64ee3). https://bu...
Xabier Rodríguez
noreply at github.com
Wed Apr 12 15:12:31 PDT 2023
Branch: refs/heads/webkitglib/2.38
Home: https://github.com/WebKit/WebKit
Commit: 00c67b617cdbdf4d3b24d01af5e4e2048aef261c
https://github.com/WebKit/WebKit/commit/00c67b617cdbdf4d3b24d01af5e4e2048aef261c
Author: Philippe Normand <philn at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h
Log Message:
-----------
Cherry-pick 261070 at main (c9a7acf64ee3). https://bugs.webkit.org/show_bug.cgi?id=253237
[GStreamer] GRefPtr template specialization for GstDeviceMonitor
https://bugs.webkit.org/show_bug.cgi?id=253237
Reviewed by Xabier Rodriguez-Calvar.
We're (hopefully) not fixing a leak here, since without specialization the generic
g_object_ref/unref would be called. But having a specialization for this object is still a good
thing, allowing for instance the GStreamer leak tracer to correctly track lifetime of device
monitors.
Also, drive-by, stop the monitor only if it was successfully started, similarily to the
CaptureDeviceManager implementation.
* Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::maximumNumberOfOutputChannels):
* Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::adoptGRef):
(WTF::refGPtr<GstDeviceMonitor>):
(WTF::derefGPtr<GstDeviceMonitor>):
* Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h:
Canonical link: https://commits.webkit.org/261070@main
Commit: 6669ecccd1c806bc6a468f707c7fa33f848b1c9e
https://github.com/WebKit/WebKit/commit/6669ecccd1c806bc6a468f707c7fa33f848b1c9e
Author: Philippe Normand <philn at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.h
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
Log Message:
-----------
Cherry-pick 261074 at main (7878d72b0fd7). https://bugs.webkit.org/show_bug.cgi?id=251428
[GStreamer][WebRTC] Implement GstMappedRtpBuffer
https://bugs.webkit.org/show_bug.cgi?id=251428
Reviewed by Xabier Rodriguez-Calvar.
With this new RAII object for mapping RTP buffers we don't need to manually unmap anymore.
Canonical link: https://commits.webkit.org/261074@main
Commit: e909ba0172e76c48108d85d129334b62064691c2
https://github.com/WebKit/WebKit/commit/e909ba0172e76c48108d85d129334b62064691c2
Author: Enrique Ocaña González <eocanha at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/Modules/mediasource/SourceBuffer.cpp
Log Message:
-----------
Cherry-pick 261328 at main (1581c8aa2d3c). https://bugs.webkit.org/show_bug.cgi?id=253074
[MSE] Skip initial buffering rate computation
https://bugs.webkit.org/show_bug.cgi?id=253074
Reviewed by Jer Noble.
m_timeOfBufferingMonitor is initialized in SourceBuffer at creation
time. If the first call to monitorBufferingRate() takes too much to
happen for whatever reason (eg: because the webpage takes too much to
perform the first append), the computed interval is already going to be
too big and generate an artificially low m_averageBufferRate.
To mitigate this, I've added code to initialize m_timeOfBufferingMonitor
to zero, detect that special value in monitorBufferingRate() and skip
the first time that the rate computation is done (just assigning the
"now" time to m_timeOfBufferingMonitor, so when the next update is done,
the interval is most realistic).
However, since monitorBufferingRate() calls are only done from
canPlayThroughRange() and that call might happen only once in some
layout tests and production scenarios, m_averageBufferRate might not
reach accurate values on time and make the test fail. To mitigate that,
I've also added extra calls every time a buffer is appended and every
time the append completes.
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/928#issuecomment-1327746356
* Source/WebCore/Modules/mediasource/SourceBuffer.cpp: Initialize m_timeOfBufferingMonitor to zero, meaning "never updated before".
(WebCore::SourceBuffer::appendBuffer): Update monitorBufferingRate.
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): UpdateMonitorBufferingRate.
(WebCore::SourceBuffer::monitorBufferingRate): Skip first m_averageBufferRate update.
Canonical link: https://commits.webkit.org/261328@main
Commit: 6cd3e03d4a4fd5de1422552d5c7201928be1ec00
https://github.com/WebKit/WebKit/commit/6cd3e03d4a4fd5de1422552d5c7201928be1ec00
Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
Log Message:
-----------
Cherry-pick 261571 at main (c5cfffe19659). https://bugs.webkit.org/show_bug.cgi?id=252310
[GStreamer] Try to detect and recover inconsistent playing state
https://bugs.webkit.org/show_bug.cgi?id=252310
Reviewed by Philippe Normand.
A series of buffer flushings could leave pipeline in an inconsistent state: top-level bin in playing with sinks in
paused. This happens if flush is triggered in the middle of paused-to-playing transition which was started by gst bin
async handling of ASYNC_DONE message.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::areAllSinksPlayingForBin):
(WebCore::MediaPlayerPrivateGStreamer::checkPlayingConsistency):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
Canonical link: https://commits.webkit.org/261571@main
Commit: bb3a2cb3c1b4b511617c318d6412177338f88245
https://github.com/WebKit/WebKit/commit/bb3a2cb3c1b4b511617c318d6412177338f88245
Author: Philippe Normand <philn at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h
Log Message:
-----------
Cherry-pick 261626 at main (e2ccf6b69511). https://bugs.webkit.org/show_bug.cgi?id=253833
[GStreamer][WebRTC] Ensure end-point pipeline is stopped when destroying
https://bugs.webkit.org/show_bug.cgi?id=253833
Reviewed by Xabier Rodriguez-Calvar.
As subject says, make sure the pipeline is teared down during disposal of the EndPoint.
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::~GStreamerMediaEndpoint):
(WebCore::GStreamerMediaEndpoint::teardownPipeline):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:
Canonical link: https://commits.webkit.org/261626@main
Commit: 4b8a3b3ac654f8a303fd658015bf691f163da996
https://github.com/WebKit/WebKit/commit/4b8a3b3ac654f8a303fd658015bf691f163da996
Author: Philippe Normand <philn at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp
Log Message:
-----------
Cherry-pick 261681 at main (2e8371efc38c). https://bugs.webkit.org/show_bug.cgi?id=253955
[GStreamer][WebRTC] StatsCollector: Update GStreamer version checks
https://bugs.webkit.org/show_bug.cgi?id=253955
Reviewed by Xabier Rodriguez-Calvar.
GStreamer 1.22 is out so no need to check 1.21 anymore.
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:
(WebCore::fillReportCallback):
Canonical link: https://commits.webkit.org/261681@main
Commit: 709e9ac3beb721c55e23dc03fc7173977c7575ff
https://github.com/WebKit/WebKit/commit/709e9ac3beb721c55e23dc03fc7173977c7575ff
Author: Philippe Normand <philn at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.h
Log Message:
-----------
Cherry-pick 261683 at main (758056c72f5c). https://bugs.webkit.org/show_bug.cgi?id=253954
[GStreamer][WebRTC] Improve DataChannel logs
https://bugs.webkit.org/show_bug.cgi?id=253954
Reviewed by Xabier Rodriguez-Calvar.
The logs now mention one unique identifier per data-channel. This works only when building against
GStreamer 1.22 though because it requires new macros.
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:
(WebCore::GStreamerDataChannelHandler::GStreamerDataChannelHandler):
(WebCore::GStreamerDataChannelHandler::~GStreamerDataChannelHandler):
(WebCore::GStreamerDataChannelHandler::setClient):
(WebCore::GStreamerDataChannelHandler::sendStringData):
(WebCore::GStreamerDataChannelHandler::sendRawData):
(WebCore::GStreamerDataChannelHandler::close):
(WebCore::GStreamerDataChannelHandler::checkState):
(WebCore::GStreamerDataChannelHandler::bufferedAmountChanged):
(WebCore::GStreamerDataChannelHandler::onMessageData):
(WebCore::GStreamerDataChannelHandler::onMessageString):
(WebCore::GStreamerDataChannelHandler::onError):
(WebCore::GStreamerDataChannelHandler::onClose):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.h:
Canonical link: https://commits.webkit.org/261683@main
Commit: 9d1936ad77d3cf5cf75f8acec942e6aa9402d54b
https://github.com/WebKit/WebKit/commit/9d1936ad77d3cf5cf75f8acec942e6aa9402d54b
Author: Philippe Normand <philn at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
Log Message:
-----------
Cherry-pick 261684 at main (8f08fa82eddb). https://bugs.webkit.org/show_bug.cgi?id=253000
[GStreamer][EME] Added support to check support of cryptoblockformat
https://bugs.webkit.org/show_bug.cgi?id=253000
Reviewed by Xabier Rodriguez-Calvar.
Inspired from downstream WPE 2.22 patch:
https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/e5b91c2bb7732e1047e3f52aa6f6651e0e1f02da
Fixes YT cert test: "Format Support Tests" -> "1. isTypeSupported cryptoblockformat"
Also drive-by change suggested by Xabier, remove the application/x-cbcs check in the Thunder
decryptor as that is now cenc with a cypher-mode.
* Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::isContentTypeSupported const):
Canonical link: https://commits.webkit.org/261684@main
Commit: 6da9beff894ff1d9cc55e5bc85ab7b25ea29dc6d
https://github.com/WebKit/WebKit/commit/6da9beff894ff1d9cc55e5bc85ab7b25ea29dc6d
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h
Log Message:
-----------
Cherry-pick 261785 at main (8684905426f0). https://bugs.webkit.org/show_bug.cgi?id=254018
Expose RealtimeMediaSource fitnessScore as a double
https://bugs.webkit.org/show_bug.cgi?id=254018
rdar://problem/106801067
Reviewed by Eric Carlson.
We should not silently cast double into unsigned, especially since we are doing comparison on the values.
* Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h:
Canonical link: https://commits.webkit.org/261785@main
Commit: 5be482d525255ee3d3fe4bfca0ae86577df5cb6b
https://github.com/WebKit/WebKit/commit/5be482d525255ee3d3fe4bfca0ae86577df5cb6b
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/Modules/mediasource/MediaSource.cpp
M Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp
Log Message:
-----------
Cherry-pick 261830 at main (8575978fe5ef). https://bugs.webkit.org/show_bug.cgi?id=254076
MediaSource duration change algorithm incorrectly update the duration
https://bugs.webkit.org/show_bug.cgi?id=254076
rdar://106858912
Reviewed by Jer Noble.
Will be covered by existing tests once the MockMediaSource will be
runnin in the GPU process.
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::setDurationInternal):
* Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::durationChanged):
Canonical link: https://commits.webkit.org/261830@main
Commit: a840ee764381e5c8ddcd555ca010956a38fe79bf
https://github.com/WebKit/WebKit/commit/a840ee764381e5c8ddcd555ca010956a38fe79bf
Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M Source/WebCore/Modules/encryptedmedia/InitDataRegistry.cpp
Log Message:
-----------
Cherry-pick 261914 at main (71eaa127b96b). https://bugs.webkit.org/show_bug.cgi?id=254159
[GStreamer][PlayReady] Accept init data as sanitized
https://bugs.webkit.org/show_bug.cgi?id=254159
Reviewed by Carlos Garcia Campos.
When getting init datas from adaptive streaming technologies, it can happen that information does not come in pssh form
and we need to parse it in a custom way.
* Source/WebCore/Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::isPlayReadySanitizedInitializationData):
(WebCore::InitDataRegistry::sanitizeCenc):
Canonical link: https://commits.webkit.org/261914@main
Compare: https://github.com/WebKit/WebKit/compare/1133b3d3a727...a840ee764381
More information about the webkit-changes
mailing list