Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4dab5e97eee362997bc251c68299d3e72d118181 https://github.com/WebKit/WebKit/commit/4dab5e97eee362997bc251c68299d3e72d118181 Author: Philippe Normand <ph...@igalia.com> Date: 2024-01-22 (Mon, 22 Jan 2024)
Changed paths: M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/gtk-wayland/TestExpectations M LayoutTests/platform/gtk/TestExpectations R LayoutTests/platform/gtk/webrtc/canvas-to-peer-connection-2d-expected.txt M LayoutTests/platform/wpe/TestExpectations M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h M Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp M Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.h M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.h M Source/WebCore/platform/SourcesGStreamer.txt M Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp A Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp A Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp A Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCCommon.h M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.h M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp Log Message: ----------- REGRESSION(272844@main): [GStreamer][Debug] ASSERTION FAILED: isMainThread() in WebCore::MediaStreamTrackPrivate::source() https://bugs.webkit.org/show_bug.cgi?id=267411 Reviewed by Xabier Rodriguez-Calvar. Make sure we don't access the RealtimeMediaSource from non-main threads. Parsing and/or decoding on incoming RTP packets is now done between the webrtcbin src pad and the incoming source bin. Thus, track events are dispatched only when all parsers and/or decoders are ready, from the main thread. * LayoutTests/platform/glib/TestExpectations: * LayoutTests/platform/gtk-wayland/TestExpectations: * LayoutTests/platform/gtk/TestExpectations: * LayoutTests/platform/gtk/webrtc/canvas-to-peer-connection-2d-expected.txt: Removed. * LayoutTests/platform/wpe/TestExpectations: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp: (WebCore::GStreamerMediaEndpoint::initializePipeline): (WebCore::GStreamerMediaEndpoint::teardownPipeline): (WebCore::GStreamerMediaEndpoint::getStats): (WebCore::GStreamerMediaEndpoint::connectIncomingTrack): (WebCore::GStreamerMediaEndpoint::connectPad): (WebCore::GStreamerMediaEndpoint::suspend): (WebCore::GStreamerMediaEndpoint::resume): (WebCore::GStreamerMediaEndpoint::addRemoteStream): Deleted. (WebCore::GStreamerMediaEndpoint::startRemoteStream): Deleted. * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h: (WebCore::GStreamerMediaEndpoint::webrtcBin const): * Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp: (WebCore::GStreamerPeerConnectionBackend::getStats): (WebCore::GStreamerPeerConnectionBackend::tearDown): * Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp: (WebCore::GStreamerRtpSenderBackend::tearDown): * Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.h: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp: (WebCore::GStreamerRtpTransceiverBackend::tearDown): * Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.h: * Source/WebCore/platform/SourcesGStreamer.txt: * Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp: (videoFrameMetadataGetInfo): * Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp: Added. (WebCore::GStreamerIncomingTrackProcessor::GStreamerIncomingTrackProcessor): (WebCore::GStreamerIncomingTrackProcessor::mediaStreamIdFromPad): (WebCore::GStreamerIncomingTrackProcessor::retrieveMediaStreamAndTrackIdFromSDP): (WebCore::GStreamerIncomingTrackProcessor::incomingTrackProcessor): (WebCore::GStreamerIncomingTrackProcessor::createParser): (WebCore::GStreamerIncomingTrackProcessor::trackReady): (WebCore::GStreamerIncomingTrackProcessor::stats): * Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h: Added. (WebCore::GStreamerIncomingTrackProcessor::create): (WebCore::GStreamerIncomingTrackProcessor::bin const): (WebCore::GStreamerIncomingTrackProcessor::pad const): (WebCore::GStreamerIncomingTrackProcessor::isDecoding const): (WebCore::GStreamerIncomingTrackProcessor::isReady const): (WebCore::GStreamerIncomingTrackProcessor::trackId const): * Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: * Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCCommon.h: Added. * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp: * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp: (WebCore::RealtimeIncomingSourceGStreamer::RealtimeIncomingSourceGStreamer): (WebCore::RealtimeIncomingSourceGStreamer::setUpstreamBin): (WebCore::RealtimeIncomingSourceGStreamer::startProducingData): (WebCore::RealtimeIncomingSourceGStreamer::stopProducingData): (WebCore::RealtimeIncomingSourceGStreamer::registerClient): (WebCore::RealtimeIncomingSourceGStreamer::unregisterClient): (WebCore::RealtimeIncomingSourceGStreamer::unregisterClientLocked): (WebCore::RealtimeIncomingSourceGStreamer::handleUpstreamQuery): (WebCore::RealtimeIncomingSourceGStreamer::tearDown): (WebCore::RealtimeIncomingSourceGStreamer::createParser): Deleted. * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h: (WebCore::RealtimeIncomingSourceGStreamer::setIsUpstreamDecoding): (WebCore::RealtimeIncomingSourceGStreamer::configureForInputCaps): Deleted. * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp: (WebCore::RealtimeIncomingVideoSourceGStreamer::setUpstreamBin): (WebCore::RealtimeIncomingVideoSourceGStreamer::stats): (WebCore::RealtimeIncomingVideoSourceGStreamer::configureForInputCaps): Deleted. * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.h: * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp: (WebCore::RealtimeOutgoingAudioSourceGStreamer::setPayloadType): (WebCore::RealtimeOutgoingAudioSourceGStreamer::teardown): * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h: * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp: (WebCore::RealtimeOutgoingMediaSourceGStreamer::RealtimeOutgoingMediaSourceGStreamer): (WebCore::RealtimeOutgoingMediaSourceGStreamer::~RealtimeOutgoingMediaSourceGStreamer): (WebCore::RealtimeOutgoingMediaSourceGStreamer::stopOutgoingSource): (WebCore::RealtimeOutgoingMediaSourceGStreamer::teardown): * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h: (WebCore::RealtimeOutgoingMediaSourceGStreamer::teardown): Deleted. * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp: (WebCore::RealtimeOutgoingVideoSourceGStreamer::teardown): (WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType): Canonical link: https://commits.webkit.org/273292@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes