[webkit-changes] [WebKit/WebKit] fbe198: [GStreamer][WebRTC] Video encoder/decoder stats su...
Philippe Normand
noreply at github.com
Mon Nov 7 03:57:59 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fbe198894a3ba6c5f994abd42dedec056e6c5ae7
https://github.com/WebKit/WebKit/commit/fbe198894a3ba6c5f994abd42dedec056e6c5ae7
Author: Philippe Normand <philn at igalia.com>
Date: 2022-11-07 (Mon, 07 Nov 2022)
Changed paths:
M LayoutTests/platform/glib/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/GStreamerStatsCollector.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.h
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.h
M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp
M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h
Log Message:
-----------
[GStreamer][WebRTC] Video encoder/decoder stats support
https://bugs.webkit.org/show_bug.cgi?id=247487
Reviewed by Xabier Rodriguez-Calvar.
This patch adds support for filling the `framesDecoded` field in inbound RTP stream stats and the
`framesSent`/`framesEncoded` in outbound RTP stream stats. Decoded frames count is queried by the
mediastream source, the query travels downstream and is handled by the media player, where decoders
are actually part of the pipeline. Outbound metrics are filled in the outgoing video source, using a
pad probe on the source pad.
These additional statistics are then aggregated with the statistics reported by webrtcbin, in the
GStreamerStatsCollector.
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::getStats):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:
(WebCore::GStreamerPeerConnectionBackend::getStats):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:
(WebCore::fillRTCRTPStreamStats):
(WebCore::fillRemoteInboundRTPStreamStats):
(WebCore::fillInboundRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):
(WebCore::ReportHolder::ReportHolder):
(WebCore::fillReportCallback):
(WebCore::GStreamerStatsCollector::getStats):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.h:
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::configureVideoDecoder):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerPrivateGStreamer::incrementDecodedVideoFramesCount):
(WebCore::MediaPlayerPrivateGStreamer::decodedVideoFramesCount const):
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::forEachVideoFrameObserver):
* Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
* Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp:
(WebCore::RealtimeIncomingVideoSourceGStreamer::stats):
* Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.h:
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingVideoSourceGStreamer::RealtimeOutgoingVideoSourceGStreamer):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::updateStats):
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h:
Canonical link: https://commits.webkit.org/256395@main
More information about the webkit-changes
mailing list