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