Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a5509c9f1bd7777cd6762db9f5ae2538843dd09b
      
https://github.com/WebKit/WebKit/commit/a5509c9f1bd7777cd6762db9f5ae2538843dd09b
  Author: Philippe Normand <ph...@igalia.com>
  Date:   2024-11-19 (Tue, 19 Nov 2024)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    M 
LayoutTests/platform/glib/fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt
    M 
LayoutTests/platform/glib/fast/mediastream/RTCPeerConnection-inspect-offer-expected.txt
    A 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/webrtc/RTCRtpParameters-encodings-expected.txt
    M Source/WebCore/Modules/mediastream/MediaStream.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.h
    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/GStreamerRtpReceiverBackend.cpp
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpReceiverBackend.h
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp
    M 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.h
    M Source/WebCore/platform/SourcesGStreamer.txt
    A 
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioRTPPacketizer.cpp
    A 
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioRTPPacketizer.h
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
    A Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPPacketizer.cpp
    A Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPPacketizer.h
    A 
Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoRTPPacketizer.cpp
    A 
Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoRTPPacketizer.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCCommon.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
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h

  Log Message:
  -----------
  [GStreamer][WebRTC] Pipeline revamp in preparation for simulcast support
https://bugs.webkit.org/show_bug.cgi?id=282926

Reviewed by Xabier Rodriguez-Calvar.

Outgoing sources can now multiplex multiple RTP streams, this is going to be 
required for simulcast
support. Encoding/payloading are now done in a separate sub-bin, managed by new
GStreamer{Audio,Video}RTPPacketizer classes. Encoding RTP parameters validation 
support was improved
as well.

* LayoutTests/platform/glib/TestExpectations:
* 
LayoutTests/platform/glib/fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt:
* 
LayoutTests/platform/glib/fast/mediastream/RTCPeerConnection-inspect-offer-expected.txt:
* Source/WebCore/Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.h:
(WebCore::MediaStreamTrack::setMediaStreamId):
(WebCore::MediaStreamTrack::mediaStreamId const):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::initializePipeline):
(WebCore::GStreamerMediaEndpoint::setConfiguration):
(WebCore::getMediaStreamIdsFromSDPMedia):
(WebCore::toGStreamerMediaEndpointTransceiverState):
(WebCore::transceiverStatesFromWebRTCBin):
(WebCore::GStreamerMediaEndpoint::doSetLocalDescription):
(WebCore::GStreamerMediaEndpoint::doSetRemoteDescription):
(WebCore::GStreamerMediaEndpoint::setDescription):
(WebCore::GStreamerMediaEndpoint::processSDPMessage):
(WebCore::GStreamerMediaEndpoint::configureSource):
(WebCore::GStreamerMediaEndpoint::requestPad):
(WebCore::GStreamerMediaEndpoint::addTrack):
(WebCore::GStreamerMediaEndpoint::initiate):
(WebCore::GStreamerMediaEndpoint::trackIdFromSDPMedia):
(WebCore::GStreamerMediaEndpoint::connectIncomingTrack):
(WebCore::GStreamerMediaEndpoint::connectPad):
(WebCore::GStreamerMediaEndpoint::createTransceiverBackends):
(WebCore::GStreamerMediaEndpoint::addTransceiver):
(WebCore::GStreamerMediaEndpoint::createMutedSource):
(WebCore::GStreamerMediaEndpoint::createSourceForTrack):
(WebCore::GStreamerMediaEndpoint::close):
(WebCore::GStreamerMediaEndpoint::suspend):
(WebCore::GStreamerMediaEndpoint::onNegotiationNeeded):
(WebCore::GStreamerMediaEndpoint::collectTransceivers):
(WebCore::GStreamerMediaEndpoint::preprocessStats):
(WebCore::GStreamerMediaEndpoint::configureAndLinkSource): Deleted.
(WebCore::GStreamerMediaEndpoint::createLinkedSourceForTrack): Deleted.
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:
* 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:
(WebCore::GStreamerPeerConnectionBackend::addTrack):
(WebCore::GStreamerPeerConnectionBackend::createSourceForTrack):
(WebCore::GStreamerPeerConnectionBackend::existingTransceiverForTrackId):
(WebCore::GStreamerPeerConnectionBackend::createLinkedSourceForTrack): Deleted.
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h:
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpReceiverBackend.cpp:
(WebCore::GStreamerRtpReceiverBackend::GStreamerRtpReceiverBackend):
(WebCore::GStreamerRtpReceiverBackend::getParameters):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpReceiverBackend.h:
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp:
(WebCore::m_initData):
(WebCore::GStreamerRtpSenderBackend::setSource):
(WebCore::GStreamerRtpSenderBackend::replaceTrack):
(WebCore::GStreamerRtpSenderBackend::setParameters):
* 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:
(WebCore::GStreamerRtpTransceiverBackend::GStreamerRtpTransceiverBackend):
(WebCore::GStreamerRtpTransceiverBackend::createReceiverBackend):
(WebCore::toRtpCodecCapability):
(WebCore::GStreamerRtpTransceiverBackend::setCodecPreferences):
(WebCore::getMsidFromCurrentCodecPreferences): Deleted.
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:
(WebCore::RTCStatsReport::ReceivedRtpStreamStats::ReceivedRtpStreamStats):
(WebCore::RTCStatsReport::OutboundRtpStreamStats::OutboundRtpStreamStats):
(WebCore::GStreamerStatsCollector::getStats):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp:
(WebCore::fromRTCEncodingParameters):
(WebCore::toRTCEncodingParameters):
(WebCore::toRTCCodecParameters):
(WebCore::toRTCRtpSendParameters):
(WebCore::fromRTCCodecParameters):
(WebCore::fromRTCSendParameters):
(WebCore::capsFromRtpCapabilities):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.h:
(WebCore::webrtcKindFromCaps):
* Source/WebCore/platform/SourcesGStreamer.txt:
* 
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioRTPPacketizer.cpp: 
Added.
(WebCore::GStreamerAudioRTPPacketizer::create):
(WebCore::GStreamerAudioRTPPacketizer::GStreamerAudioRTPPacketizer):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioRTPPacketizer.h: 
Copied from 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h.
* 
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp:
(WebCore::GStreamerIncomingTrackProcessor::configure):
(WebCore::GStreamerIncomingTrackProcessor::trackReady):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPPacketizer.cpp: 
Added.
(WebCore::GStreamerRTPPacketizer::GStreamerRTPPacketizer):
(WebCore::GStreamerRTPPacketizer::configureExtensions):
(WebCore::GStreamerRTPPacketizer::ensureMidExtension):
(WebCore::GStreamerRTPPacketizer::rtpParameters const):
(WebCore::GStreamerRTPPacketizer::rtpStreamId const):
(WebCore::GStreamerRTPPacketizer::payloadType const):
(WebCore::GStreamerRTPPacketizer::currentSequenceNumberOffset const):
(WebCore::GStreamerRTPPacketizer::setSequenceNumberOffset):
(WebCore::GStreamerRTPPacketizer::findLastExtensionId):
(WebCore::GStreamerRTPPacketizer::stats const):
(WebCore::GStreamerRTPPacketizer::startUpdatingStats):
(WebCore::GStreamerRTPPacketizer::updateStatsFromRTPExtensions):
(WebCore::GStreamerRTPPacketizer::stopUpdatingStats):
(WebCore::GStreamerRTPPacketizer::applyEncodingParameters const):
(WebCore::GStreamerRTPPacketizer::reconfigure):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPPacketizer.h: Added.
(WebCore::GStreamerRTPPacketizer::bin const):
(WebCore::GStreamerRTPPacketizer::payloader const):
(WebCore::GStreamerRTPPacketizer::updateStats):
(WebCore::GStreamerRTPPacketizer::configure const):
* 
Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoRTPPacketizer.cpp: 
Added.
(WebCore::GStreamerVideoRTPPacketizer::create):
(WebCore::GStreamerVideoRTPPacketizer::GStreamerVideoRTPPacketizer):
(WebCore::GStreamerVideoRTPPacketizer::configure const):
(WebCore::GStreamerVideoRTPPacketizer::updateStats):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoRTPPacketizer.h: 
Copied from 
Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCCommon.h.
* Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCCommon.h:
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingAudioSourceGStreamer::RealtimeOutgoingAudioSourceGStreamer):
(WebCore::RealtimeOutgoingAudioSourceGStreamer::initialize):
(WebCore::RealtimeOutgoingAudioSourceGStreamer::linkTee):
(WebCore::RealtimeOutgoingAudioSourceGStreamer::outgoingSourcePad const):
(WebCore::RealtimeOutgoingAudioSourceGStreamer::createPacketizer):
(WebCore::RealtimeOutgoingAudioSourceGStreamer::setPayloadType): Deleted.
(WebCore::RealtimeOutgoingAudioSourceGStreamer::setParameters): Deleted.
(WebCore::RealtimeOutgoingAudioSourceGStreamer::teardown): Deleted.
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h:
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingMediaSourceGStreamer::RealtimeOutgoingMediaSourceGStreamer):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::~RealtimeOutgoingMediaSourceGStreamer):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::initialize):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::allowedCaps const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::rtpCaps const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::start):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::stopOutgoingSource):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::sourceEnabledChanged):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::initializeSourceFromTrackPrivate):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::link):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setSinkPad):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::checkMid):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::parameters):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::codecPreferencesChanged):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::replaceTrack):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setInitialParameters):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::configure):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setParameters):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::getPacketizerForRid):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::linkPacketizer):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::configurePacketizers):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::lookupRtpExtensions):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::stats):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::startUpdatingStats):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::stopUpdatingStats):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::teardown):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::flush): Deleted.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::initializeFromTrack): Deleted.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::unlinkPayloader): Deleted.
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h:
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setPayloadType): Deleted.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::fillEncodingParameters): 
Deleted.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setParameters): Deleted.
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingVideoSourceGStreamer::RealtimeOutgoingVideoSourceGStreamer):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::initializePreProcessor):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::teardown):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::rtpCapabilities const):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::linkTee):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::outgoingSourcePad const):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::createPacketizer):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::updateStats): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::startUpdatingStats): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::stopUpdatingStats): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::sourceEnabledChanged): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::flush): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::setParameters): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::fillEncodingParameters): 
Deleted.
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to