[webkit-changes] [WebKit/WebKit] 885511: [GStreamer][WebRTC] Rework replaceTrack handling
Philippe Normand
noreply at github.com
Mon Sep 23 03:10:52 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 88551187c932d1e173f270ba4df6e3f031d81e99
https://github.com/WebKit/WebKit/commit/88551187c932d1e173f270ba4df6e3f031d81e99
Author: Philippe Normand <philn at igalia.com>
Date: 2024-09-23 (Mon, 23 Sep 2024)
Changed paths:
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.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] Rework replaceTrack handling
https://bugs.webkit.org/show_bug.cgi?id=280120
Reviewed by Xabier Rodriguez-Calvar.
Track replacement is now handled in the GStreamer mediastream source element, instead of doing
convoluted caps negotiation issues-prone pipeline manipulations in outgoing sources. We used to have
an audiotestsrc/videotestsrc combined with input-selector there, but that could lead to caps
negotiation issues, for instance when replacing an audio track with a new one with different
capabilities (samplerate for instance).
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp:
(WebCore::GStreamerRtpSenderBackend::replaceTrack):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(mediaStreamTrackPrivateGetTags):
(webkitMediaStreamNew):
(WebKitMediaStreamObserver::didRemoveTrack):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcReplaceTrack):
(webkitMediaStreamSrcConfigureAudioTracks):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingAudioSourceGStreamer::setPayloadType):
(WebCore::RealtimeOutgoingAudioSourceGStreamer::connectFallbackSource): Deleted.
(WebCore::RealtimeOutgoingAudioSourceGStreamer::unlinkOutgoingSource): Deleted.
(WebCore::RealtimeOutgoingAudioSourceGStreamer::linkOutgoingSource): Deleted.
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h:
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingMediaSourceGStreamer::RealtimeOutgoingMediaSourceGStreamer):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::start):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::stop):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::stopOutgoingSource):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::sourceMutedChanged):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::sourceEnabledChanged):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::initializeFromTrack):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::teardown):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::replaceTrack):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setSource): Deleted.
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h:
(WebCore::RealtimeOutgoingMediaSourceGStreamer::track const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::source const): Deleted.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::connectFallbackSource): Deleted.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::unlinkOutgoingSource): Deleted.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::linkOutgoingSource): Deleted.
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::connectFallbackSource): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::unlinkOutgoingSource): Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::linkOutgoingSource): Deleted.
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h:
Canonical link: https://commits.webkit.org/284065@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list