Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3539c8a950f66fbe6bd7e37a9d90bd9d98f03386
      
https://github.com/WebKit/WebKit/commit/3539c8a950f66fbe6bd7e37a9d90bd9d98f03386
  Author: Philippe Normand <[email protected]>
  Date:   2024-11-08 (Fri, 08 Nov 2024)

  Changed paths:
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
    M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h

  Log Message:
  -----------
  [GStreamer][WebRTC] Latency improvements
https://bugs.webkit.org/show_bug.cgi?id=282756

Reviewed by Xabier Rodriguez-Calvar.

When sharing data between pipelines it is recommended to use a shared base time 
of 0 and -1 start
time on each pipeline. If appsrc is used its handle-segment-change property 
should be enabled as
well. Then latency queries need to be plumbed as well, this was partly done 
already for incoming
sources, but wasn't done yet for capture sources.

With this patch the end-to-end latency on the pc1 demo went from ~10 frames to 
3 (or 4 frames).

* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::initializePipeline):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::connectSimpleBusMessageCallback):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp:
(WebCore::MediaRecorderPrivateBackend::preparePipeline):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
(WebCore::GStreamerAudioCaptureSource::queryLatency):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp:
(WebCore::GStreamerCapturer::setupPipeline):
(WebCore::GStreamerCapturer::queryLatency):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp:
(webkitMockDeviceCreateElement):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::queryLatency):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:

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



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

Reply via email to