[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