Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f27346baf833b1134f43b57d859570103117aa87
https://github.com/WebKit/WebKit/commit/f27346baf833b1134f43b57d859570103117aa87
Author: Xabier Rodriguez-Calvar <[email protected]>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M Source/WTF/wtf/PlatformGTK.cmake
M Source/WTF/wtf/PlatformWPE.cmake
A Source/WTF/wtf/glib/GMallocString.cpp
A Source/WTF/wtf/glib/GMallocString.h
M Source/WTF/wtf/glib/GSpanExtras.h
M Source/WTF/wtf/text/CStringView.h
M
Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp
M
Source/WebCore/Modules/mediastream/gstreamer/GStreamerDtlsTransportBackend.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceAgent.cpp
M
Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceTransportBackend.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
M
Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp
M Source/WebCore/platform/audio/gstreamer/AudioEncoderGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
M
Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp
M
Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
M Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp
M Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.cpp
M Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.h
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp
M Tools/TestWebKitAPI/PlatformGTK.cmake
M Tools/TestWebKitAPI/PlatformWPE.cmake
M Tools/TestWebKitAPI/Tests/WTF/CStringView.cpp
A Tools/TestWebKitAPI/Tests/WTF/glib/GMallocString.cpp
M Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GStreamerTest.cpp
M Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GstElementHarness.cpp
Log Message:
-----------
[Glib][GStreamer] Implement GMallocString class and apply it to GStreamer code
https://bugs.webkit.org/show_bug.cgi?id=303909
Reviewed by Adrian Perez de Castro.
When interfacing with Glib APIs there was no way to wrap an owned malloced
char* so GMallocString was created. It can
adopt C strings in several ways, providing then easy ways to interface with the
WebKit strings the same way CStringView
does and also preserving the original null terminated C string without
performing any copy.
I applied this to the GStreamer code.
Tests: Tools/TestWebKitAPI/Tests/WTF/CStringView.cpp
Tools/TestWebKitAPI/Tests/WTF/glib/GMallocString.cpp
Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GStreamerTest.cpp
Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GstElementHarness.cpp
* Source/WTF/wtf/PlatformGTK.cmake:
* Source/WTF/wtf/PlatformWPE.cmake:
* Source/WTF/wtf/glib/GMallocString.cpp: Added.
* Source/WTF/wtf/glib/GMallocString.h: Added.
(WTF::operator==):
(WTF::safePrintfType):
(WTF::toCStringView):
* Source/WTF/wtf/glib/GSpanExtras.h:
(WTF::dupGMallocSpan):
(WTF::adoptGMallocString): Deleted.
* Source/WTF/wtf/text/CStringView.h:
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:
(WebCore::GStreamerDataChannelHandler::checkState):
*
Source/WebCore/Modules/mediastream/gstreamer/GStreamerDtlsTransportBackend.cpp:
(WebCore::GStreamerDtlsTransportBackendObserver::stateChanged):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceAgent.cpp:
(webkitGstWebRTCIceAgentLocalCandidateGatheredForStream):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceTransportBackend.cpp:
(WebCore::GStreamerIceTransportBackend::registerClient):
(WebCore::GStreamerIceTransportBackend::stateChanged const):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::initializePipeline):
(WebCore::fetchDescription):
(WebCore::fetchSignalingState):
(WebCore::toGStreamerMediaEndpointTransceiverState):
(WebCore::transceiverStatesFromWebRTCBin):
(WebCore::GStreamerMediaEndpoint::linkOutgoingSources):
(WebCore::GStreamerMediaEndpoint::setDescription):
(WebCore::GStreamerMediaEndpoint::processSDPMessage):
(WebCore::GStreamerMediaEndpoint::createTransceiverBackends):
(WebCore::GStreamerMediaEndpoint::onIceGatheringChange):
(WebCore::GStreamerMediaEndpoint::collectTransceivers):
*
Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:
(WebCore::GStreamerRtpTransceiverBackend::setDirection):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp:
(WebCore::setSsrcAudioLevelVadOn):
* Source/WebCore/platform/audio/gstreamer/AudioEncoderGStreamer.cpp:
(WebCore::GStreamerInternalAudioEncoder::initialize):
* Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::getStreamIdFromPad):
(WebCore::registerActivePipeline):
(WebCore::unregisterPipeline):
(WebCore::videoColorSpaceFromInfo):
* Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp:
(WebCore::BaseSinkPositionFlushWorkaroundProbe::checkIsNeeded):
(WebCore::AppSinkFlushCapsWorkaroundProbe::checkIsNeeded):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::elementIdChanged const):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus):
(WebCore::MediaPlayerPrivateGStreamer::configureParsebin):
(WebCore::MediaPlayerPrivateGStreamer::configureElement):
(WebCore::MediaPlayerPrivateGStreamer::configureDownloadBuffer):
(WebCore::MediaPlayerPrivateGStreamer::downloadBufferFileCreatedCallback):
(WebCore::MediaPlayerPrivateGStreamer::setupCodecProbe):
(WebCore::MediaPlayerPrivateGStreamer::configureVideoDecoder):
(WebCore::MediaPlayerPrivateGStreamer::getVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::audioOutputDeviceChanged):
* Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):
* Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcSetExtraHeader):
(webKitWebSrcMakeRequest):
* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::didReceiveInitializationSegment):
* Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp:
(WebCore::GStreamerMediaDescription::extractCodecName const):
* Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcLoop):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
* Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp:
(WebCore::MermaidBuilder::describeCaps):
(WebCore::GStreamerElementHarness::dumpGraph):
* Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.cpp:
(WebCore::DesktopPortal::waitResponseSignal):
(WebCore::DesktopPortalScreenCast::createScreencastSession):
(WebCore::DesktopPortalScreenCast::ScreencastSession::openPipewireRemote):
* Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.h:
(WebCore::DesktopPortal::waitResponseSignal):
*
Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp:
(WebCore::sortDevices):
(WebCore::GStreamerCaptureDeviceManager::captureDeviceFromGstDevice):
(WebCore::GStreamerCaptureDeviceManager::refreshCaptureDevices):
*
Source/WebCore/platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:
(WebCore::GStreamerDisplayCaptureDeviceManager::createDisplayCaptureSource):
*
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp:
(WebCore::GStreamerIncomingTrackProcessor::mediaStreamIdFromPad):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(webkitMediaStreamSrcAddTrack):
*
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingMediaSourceGStreamer::checkMid):
* Tools/TestWebKitAPI/PlatformGTK.cmake:
* Tools/TestWebKitAPI/PlatformWPE.cmake:
* Tools/TestWebKitAPI/Tests/WTF/CStringView.cpp:
(TestWebKitAPI::TEST(WTF, CStringViewFrom)):
* Tools/TestWebKitAPI/Tests/WTF/glib/GMallocString.cpp: Added.
(TestWebKitAPI::TEST(WTF_GMallocString, NullAndEmpty)):
(TestWebKitAPI::TEST(WTF_GMallocString, Move)):
(TestWebKitAPI::TEST(WTF_GMallocString, Length)):
(TestWebKitAPI::TEST(WTF_GMallocString, Equality)):
(TestWebKitAPI::TEST(WTF_GMallocString, CStringView)):
(TestWebKitAPI::TEST(WTF_GMallocString, LeakUTF8)):
(TestWebKitAPI::TEST(WTF_GMallocString, ToCStringView)):
* Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GStreamerTest.cpp:
(TestWebKitAPI::TEST_F(GStreamerTest, capsFromCodecString)):
* Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GstElementHarness.cpp:
(TestWebKitAPI::TEST_F(GStreamerTest, harnessParseMP4)):
(TestWebKitAPI::TEST_F(GStreamerTest, harnessDecodeMP4Video)):
Canonical link: https://commits.webkit.org/304343@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications