Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2d8ffc935bc80c9c7d3630dd8a44abf8ebce16b4
      
https://github.com/WebKit/WebKit/commit/2d8ffc935bc80c9c7d3630dd8a44abf8ebce16b4
  Author: Philippe Normand <ph...@igalia.com>
  Date:   2025-05-07 (Wed, 07 May 2025)

  Changed paths:
    M LayoutTests/fast/mediastream/video-rotation2.html
    M LayoutTests/platform/glib/TestExpectations
    M 
LayoutTests/platform/glib/fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt
    R 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/webrtc/protocol/rtp-headerextensions-expected.txt
    M Source/WebCore/platform/SourcesGStreamer.txt
    M Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
    A 
Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPVideoRotationHeaderExtension.cpp
    A 
Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPVideoRotationHeaderExtension.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
    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
    M Tools/Scripts/webkitpy/style/checker.py

  Log Message:
  -----------
  [GStreamer][WebRTC] Video rotation handling
https://bugs.webkit.org/show_bug.cgi?id=292528

Reviewed by Xabier Rodriguez-Calvar.

The video frames rotation and mirroring informations are now stored in the 
GstMeta attached to the
video buffers. When the RTP urn:3gpp:video-orientation header extension is 
negotiated through SDP
Offer/Answer, the metadata is added to RTP packets sent/received over the wire. 
The
MediaStreamSource element already had orientation tag handling, so as long as 
our video frames
contain the rotation and mirroring informations, they are translated to the 
corresponding GstTag and
propagated in our pipelines.

* LayoutTests/fast/mediastream/video-rotation2.html:
* LayoutTests/platform/glib/TestExpectations:
* 
LayoutTests/platform/glib/fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt:
* 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/webrtc/protocol/rtp-headerextensions-expected.txt:
 Removed.
* Source/WebCore/platform/SourcesGStreamer.txt:
* Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::registerWebKitGStreamerElements):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::getVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoSizeAndOrientationFromCaps):
(WebCore::getVideoOrientation): Deleted.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp:
(WebCore::VideoFrameGStreamer::createFromPixelBuffer):
(WebCore::VideoFrameGStreamer::VideoFrameGStreamer):
* Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp:
(videoFrameMetadataGetInfo):
(webkitGstBufferAddVideoFrameMetadata):
(webkitGstBufferSetVideoFrameMetadata):
(webkitGstBufferGetVideoRotation):
(webkitGstBufferSetVideoFrameTimeMetadata): Deleted.
* Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp:
(WebCore::GStreamerCapturer::createSource):
* 
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp:
(WebCore::GStreamerIncomingTrackProcessor::installRtpBufferPadProbe):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
* 
Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPVideoRotationHeaderExtension.cpp:
 Added.
(extensionGetSupportedFlags):
(extensionGetMaxSize):
(extensionWrite):
(extensionRead):
(webkit_gst_rtp_video_rotation_header_extension_class_init):
* 
Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPVideoRotationHeaderExtension.h:
 Added.
* Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
(WebCore::GStreamerVideoCapturer::setSinkVideoFrameCallback):
* 
Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::startProducingData):
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp:
(WebCore::RealtimeIncomingVideoSourceGStreamer::dispatchSample):
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingMediaSourceGStreamer::stopOutgoingSource):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::configurePacketizers):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::teardown):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::linkSource): Deleted.
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h:
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:
(WebCore::RealtimeOutgoingVideoSourceGStreamer::RealtimeOutgoingVideoSourceGStreamer):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::initialize):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::initializePreProcessor): 
Deleted.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::teardown): Deleted.
* 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h:
* Tools/Scripts/webkitpy/style/checker.py:

Canonical link: https://commits.webkit.org/294614@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