Diff
Modified: trunk/Source/WebCore/ChangeLog (291268 => 291269)
--- trunk/Source/WebCore/ChangeLog 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/ChangeLog 2022-03-15 07:52:24 UTC (rev 291269)
@@ -1,5 +1,80 @@
2022-03-15 Youenn Fablet <you...@apple.com>
+ Rename VideoSampleMetadata to VideoFrameTimeMetadata
+ https://bugs.webkit.org/show_bug.cgi?id=237593
+
+ Reviewed by Eric Carlson.
+
+ We are going to rename videoSampleAvailable to videoFrameAvailable and move from passing MediaSample to VideoFrame.
+ We rename VideoSampleMetadata to VideoFrameTimeMetadata for consistency.
+ No change of behavior.
+
+ * Headers.cmake:
+ * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
+ (WebCore::CanvasCaptureMediaStreamTrack::Source::captureCanvas):
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/VideoFrameTimeMetadata.h: Renamed from Source/WebCore/platform/VideoSampleMetadata.h.
+ (WebCore::VideoFrameTimeMetadata::encode const):
+ (WebCore::VideoFrameTimeMetadata::decode):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
+ (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):
+ * platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
+ (WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
+ (WebCore::MediaSampleGStreamer::createImageSample):
+ * platform/graphics/gstreamer/MediaSampleGStreamer.h:
+ (WebCore::MediaSampleGStreamer::create):
+ (WebCore::MediaSampleGStreamer::createImageSample):
+ * platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp:
+ (webkitGstBufferSetVideoFrameTimeMetadata):
+ (webkitGstBufferSetVideoSampleMetadata): Deleted.
+ * platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h:
+ * platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
+ (WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
+ * platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
+ * platform/mediarecorder/MediaRecorderPrivateGStreamer.h:
+ * platform/mediarecorder/MediaRecorderPrivateMock.cpp:
+ (WebCore::MediaRecorderPrivateMock::videoSampleAvailable):
+ * platform/mediarecorder/MediaRecorderPrivateMock.h:
+ * platform/mediastream/RealtimeIncomingVideoSource.cpp:
+ (WebCore::RealtimeIncomingVideoSource::metadataFromVideoFrame):
+ * platform/mediastream/RealtimeIncomingVideoSource.h:
+ * platform/mediastream/RealtimeMediaSource.cpp:
+ (WebCore::RealtimeMediaSource::videoSampleAvailable):
+ * platform/mediastream/RealtimeMediaSource.h:
+ * platform/mediastream/RealtimeOutgoingVideoSource.h:
+ * platform/mediastream/RealtimeVideoCaptureSource.cpp:
+ (WebCore::RealtimeVideoCaptureSource::dispatchMediaSampleToObservers):
+ * platform/mediastream/RealtimeVideoCaptureSource.h:
+ * platform/mediastream/RealtimeVideoSource.cpp:
+ (WebCore::RealtimeVideoSource::videoSampleAvailable):
+ * platform/mediastream/RealtimeVideoSource.h:
+ * platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
+ (WebCore::DisplayCaptureSourceCocoa::emitFrame):
+ * platform/mediastream/gstreamer/GStreamerCapturer.cpp:
+ (WebCore::GStreamerCapturer::createSource):
+ * platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
+ * platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
+ (WebCore::MockDisplayCaptureSourceGStreamer::videoSampleAvailable):
+ (WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
+ * platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
+ * platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
+ (WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):
+ * platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:
+ * platform/mediastream/mac/AVVideoCaptureSource.mm:
+ (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
+ * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
+ (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):
+ * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
+ (WebCore::RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable):
+ * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::videoSampleAvailable):
+ * testing/Internals.h:
+
+2022-03-15 Youenn Fablet <you...@apple.com>
+
Make sure to end any pending AudioSession interruption when activating it
https://bugs.webkit.org/show_bug.cgi?id=237654
<rdar://88405081>
Modified: trunk/Source/WebCore/Headers.cmake (291268 => 291269)
--- trunk/Source/WebCore/Headers.cmake 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/Headers.cmake 2022-03-15 07:52:24 UTC (rev 291269)
@@ -1363,7 +1363,7 @@
platform/ValidationBubble.h
platform/VideoFrame.h
platform/VideoFrameMetadata.h
- platform/VideoSampleMetadata.h
+ platform/VideoFrameTimeMetadata.h
platform/WebGLStateTracker.h
platform/Widget.h
platform/WindowsKeyboardCodes.h
Modified: trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp (291268 => 291269)
--- trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -196,7 +196,7 @@
if (!sample)
return;
- VideoSampleMetadata metadata;
+ VideoFrameTimeMetadata metadata;
metadata.captureTime = MonotonicTime::now().secondsSinceEpoch();
videoSampleAvailable(*sample, metadata);
}
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (291268 => 291269)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-03-15 07:52:24 UTC (rev 291269)
@@ -1118,7 +1118,7 @@
4157EBFB1E3AB67F00AC9FE9 /* MockLibWebRTCPeerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4157EBF81E3AB06800AC9FE9 /* MockLibWebRTCPeerConnection.h */; };
415864A023BF7CBF00A0A61E /* RealtimeVideoUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D1938F2152C561006F14CA /* RealtimeVideoUtilities.h */; settings = {ATTRIBUTES = (Private, ); }; };
415CDAF51E6B8F8B004F11EE /* CanvasCaptureMediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 41C7E1061E6A54360027B4DE /* CanvasCaptureMediaStreamTrack.h */; };
- 416049332743B0E800A86FA0 /* VideoSampleMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 416049312743B0E700A86FA0 /* VideoSampleMetadata.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 416049332743B0E800A86FA0 /* VideoFrameTimeMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 416049312743B0E700A86FA0 /* VideoFrameTimeMetadata.h */; settings = {ATTRIBUTES = (Private, ); }; };
41614A791DA64241004AD06F /* HTTPHeaderValues.h in Headers */ = {isa = PBXBuildFile; fileRef = 41614A771DA64236004AD06F /* HTTPHeaderValues.h */; settings = {ATTRIBUTES = (Private, ); }; };
4161E2D51FE48DC500EC2E96 /* FetchLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4147E2B51C89912600A7E715 /* FetchLoader.h */; settings = {ATTRIBUTES = (Private, ); }; };
4162A451101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 4162A44E101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h */; };
@@ -8717,7 +8717,7 @@
415E1BB5215010810022DA96 /* RTCRtpContributingSource.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RTCRtpContributingSource.idl; sourceTree = "<group>"; };
415E1BB62150152A0022DA96 /* RTCRtpSynchronizationSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpSynchronizationSource.h; sourceTree = "<group>"; };
415E1BB7215015300022DA96 /* RTCRtpSynchronizationSource.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RTCRtpSynchronizationSource.idl; sourceTree = "<group>"; };
- 416049312743B0E700A86FA0 /* VideoSampleMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoSampleMetadata.h; sourceTree = "<group>"; };
+ 416049312743B0E700A86FA0 /* VideoFrameTimeMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoFrameTimeMetadata.h; sourceTree = "<group>"; };
41614A761DA64236004AD06F /* HTTPHeaderValues.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTTPHeaderValues.cpp; sourceTree = "<group>"; };
41614A771DA64236004AD06F /* HTTPHeaderValues.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPHeaderValues.h; sourceTree = "<group>"; };
4162A44D101145AE00DFF3ED /* DedicatedWorkerGlobalScope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DedicatedWorkerGlobalScope.cpp; sourceTree = "<group>"; };
@@ -30253,7 +30253,7 @@
7B5A3DAB27ABF8C4006C6F97 /* VideoFrame.cpp */,
7B5A3DAD27ABF8C4006C6F97 /* VideoFrame.h */,
41DEEFB42719BA1900CB8D74 /* VideoFrameMetadata.h */,
- 416049312743B0E700A86FA0 /* VideoSampleMetadata.h */,
+ 416049312743B0E700A86FA0 /* VideoFrameTimeMetadata.h */,
515F79511CFCA3C700CCED93 /* WebCoreCrossThreadCopier.cpp */,
515F79521CFCA3C700CCED93 /* WebCoreCrossThreadCopier.h */,
839A2F2B1E204A6D0039057E /* WebGLStateTracker.cpp */,
@@ -37965,7 +37965,7 @@
CDE83DB2183C44060031EAA3 /* VideoPlaybackQuality.h in Headers */,
075033A8252BD36800F70CE3 /* VideoPlaybackQualityMetrics.h in Headers */,
0757B13E214AE79900794B0D /* VideoPreset.h in Headers */,
- 416049332743B0E800A86FA0 /* VideoSampleMetadata.h in Headers */,
+ 416049332743B0E800A86FA0 /* VideoFrameTimeMetadata.h in Headers */,
CDC939A81E9BDFB100BB768D /* VideoToolboxSoftLink.h in Headers */,
BE88E0DF1715D2A200658D98 /* VideoTrack.h in Headers */,
CD1F9B1827023A2A00617EB6 /* VideoTrackClient.h in Headers */,
Copied: trunk/Source/WebCore/platform/VideoFrameTimeMetadata.h (from rev 291268, trunk/Source/WebCore/platform/VideoSampleMetadata.h) (0 => 291269)
--- trunk/Source/WebCore/platform/VideoFrameTimeMetadata.h (rev 0)
+++ trunk/Source/WebCore/platform/VideoFrameTimeMetadata.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <optional>
+#include <wtf/Seconds.h>
+
+namespace WebCore {
+
+struct VideoFrameTimeMetadata {
+ std::optional<double> processingDuration;
+
+ std::optional<Seconds> captureTime;
+ std::optional<Seconds> receiveTime;
+ std::optional<unsigned> rtpTimestamp;
+
+ template<class Encoder> void encode(Encoder&) const;
+ template<class Decoder> static std::optional<VideoFrameTimeMetadata> decode(Decoder&);
+};
+
+template<class Encoder>
+inline void VideoFrameTimeMetadata::encode(Encoder& encoder) const
+{
+ encoder << processingDuration << captureTime << receiveTime << rtpTimestamp;
+}
+
+template<class Decoder>
+inline std::optional<VideoFrameTimeMetadata> VideoFrameTimeMetadata::decode(Decoder& decoder)
+{
+ std::optional<std::optional<double>> processingDuration;
+ decoder >> processingDuration;
+ if (!processingDuration)
+ return std::nullopt;
+
+ std::optional<std::optional<Seconds>> captureTime;
+ decoder >> captureTime;
+ if (!captureTime)
+ return std::nullopt;
+
+ std::optional<std::optional<Seconds>> receiveTime;
+ decoder >> receiveTime;
+ if (!receiveTime)
+ return std::nullopt;
+
+ std::optional<std::optional<unsigned>> rtpTimestamp;
+ decoder >> rtpTimestamp;
+ if (!rtpTimestamp)
+ return std::nullopt;
+
+ return VideoFrameTimeMetadata { *processingDuration, *captureTime, *receiveTime, *rtpTimestamp };
+}
+
+}
Deleted: trunk/Source/WebCore/platform/VideoSampleMetadata.h (291268 => 291269)
--- trunk/Source/WebCore/platform/VideoSampleMetadata.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/VideoSampleMetadata.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2021 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <optional>
-#include <wtf/Seconds.h>
-
-namespace WebCore {
-
-struct VideoSampleMetadata {
- std::optional<double> processingDuration;
-
- std::optional<Seconds> captureTime;
- std::optional<Seconds> receiveTime;
- std::optional<unsigned> rtpTimestamp;
-
- template<class Encoder> void encode(Encoder&) const;
- template<class Decoder> static std::optional<VideoSampleMetadata> decode(Decoder&);
-};
-
-template<class Encoder>
-inline void VideoSampleMetadata::encode(Encoder& encoder) const
-{
- encoder << processingDuration << captureTime << receiveTime << rtpTimestamp;
-}
-
-template<class Decoder>
-inline std::optional<VideoSampleMetadata> VideoSampleMetadata::decode(Decoder& decoder)
-{
- std::optional<std::optional<double>> processingDuration;
- decoder >> processingDuration;
- if (!processingDuration)
- return std::nullopt;
-
- std::optional<std::optional<Seconds>> captureTime;
- decoder >> captureTime;
- if (!captureTime)
- return std::nullopt;
-
- std::optional<std::optional<Seconds>> receiveTime;
- decoder >> receiveTime;
- if (!receiveTime)
- return std::nullopt;
-
- std::optional<std::optional<unsigned>> rtpTimestamp;
- decoder >> rtpTimestamp;
- if (!rtpTimestamp)
- return std::nullopt;
-
- return VideoSampleMetadata { *processingDuration, *captureTime, *receiveTime, *rtpTimestamp };
-}
-
-}
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h (291268 => 291269)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -136,7 +136,7 @@
void flushRenderers();
- void processNewVideoSample(MediaSample&, VideoSampleMetadata, Seconds);
+ void processNewVideoSample(MediaSample&, VideoFrameTimeMetadata, Seconds);
void enqueueVideoSample(MediaSample&);
void reenqueueCurrentVideoSampleIfNeeded();
void requestNotificationWhenReadyForVideoData();
@@ -212,7 +212,7 @@
void readyStateChanged(MediaStreamTrackPrivate&) override;
// RealtimeMediaSouce::VideoSampleObserver
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
RetainPtr<PlatformLayer> createVideoFullscreenLayer() override;
void setVideoFullscreenLayer(PlatformLayer*, Function<void()>&& completionHandler) override;
@@ -288,7 +288,7 @@
uint64_t m_lastVideoFrameMetadataSampleCount { 0 };
Seconds m_presentationTime { 0 };
FloatSize m_videoFrameSize;
- VideoSampleMetadata m_sampleMetadata;
+ VideoFrameTimeMetadata m_sampleMetadata;
};
}
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm (291268 => 291269)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm 2022-03-15 07:52:24 UTC (rev 291269)
@@ -244,7 +244,7 @@
return videoTransform;
}
-void MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable(MediaSample& sample, VideoSampleMetadata metadata)
+void MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata metadata)
{
auto presentationTime = MonotonicTime::now().secondsSinceEpoch();
processNewVideoSample(sample, metadata, presentationTime);
@@ -289,7 +289,7 @@
enqueueVideoSample(m_currentVideoSample ? *m_currentVideoSample : *m_imagePainter.mediaSample);
}
-void MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample(MediaSample& sample, VideoSampleMetadata metadata, Seconds presentationTime)
+void MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample(MediaSample& sample, VideoFrameTimeMetadata metadata, Seconds presentationTime)
{
if (!isMainThread()) {
{
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -33,7 +33,7 @@
namespace WebCore {
-MediaSampleGStreamer::MediaSampleGStreamer(GRefPtr<GstSample>&& sample, const FloatSize& presentationSize, const AtomString& trackId, VideoRotation videoRotation, bool videoMirrored, std::optional<VideoSampleMetadata>&& metadata)
+MediaSampleGStreamer::MediaSampleGStreamer(GRefPtr<GstSample>&& sample, const FloatSize& presentationSize, const AtomString& trackId, VideoRotation videoRotation, bool videoMirrored, std::optional<VideoFrameTimeMetadata>&& metadata)
: m_pts(MediaTime::zeroTime())
, m_dts(MediaTime::zeroTime())
, m_duration(MediaTime::zeroTime())
@@ -47,7 +47,7 @@
RELEASE_ASSERT(buffer);
if (metadata)
- buffer = webkitGstBufferSetVideoSampleMetadata(buffer, WTFMove(metadata));
+ buffer = webkitGstBufferSetVideoFrameTimeMetadata(buffer, WTFMove(metadata));
m_sample = sample;
initializeFromBuffer();
@@ -79,7 +79,7 @@
return adoptRef(*gstreamerMediaSample);
}
-Ref<MediaSampleGStreamer> MediaSampleGStreamer::createImageSample(PixelBuffer&& pixelBuffer, const IntSize& destinationSize, double frameRate, VideoRotation videoRotation, bool videoMirrored, std::optional<VideoSampleMetadata>&& metadata)
+Ref<MediaSampleGStreamer> MediaSampleGStreamer::createImageSample(PixelBuffer&& pixelBuffer, const IntSize& destinationSize, double frameRate, VideoRotation videoRotation, bool videoMirrored, std::optional<VideoFrameTimeMetadata>&& metadata)
{
ensureGStreamerInitialized();
@@ -99,7 +99,7 @@
gst_buffer_add_video_meta(buffer.get(), GST_VIDEO_FRAME_FLAG_NONE, GST_VIDEO_FORMAT_BGRA, width, height);
if (metadata)
- webkitGstBufferSetVideoSampleMetadata(buffer.get(), *metadata);
+ webkitGstBufferSetVideoFrameTimeMetadata(buffer.get(), *metadata);
int frameRateNumerator, frameRateDenominator;
gst_util_double_to_fraction(frameRate, &frameRateNumerator, &frameRateDenominator);
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h (291268 => 291269)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -26,7 +26,7 @@
#include "FloatSize.h"
#include "GStreamerCommon.h"
#include "MediaSample.h"
-#include "VideoSampleMetadata.h"
+#include "VideoFrameTimeMetadata.h"
#include <wtf/text/AtomString.h>
namespace WebCore {
@@ -35,7 +35,7 @@
class MediaSampleGStreamer : public MediaSample {
public:
- static Ref<MediaSampleGStreamer> create(GRefPtr<GstSample>&& sample, const FloatSize& presentationSize, const AtomString& trackId, VideoRotation videoRotation = VideoRotation::None, bool videoMirrored = false, std::optional<VideoSampleMetadata>&& metadata = std::nullopt)
+ static Ref<MediaSampleGStreamer> create(GRefPtr<GstSample>&& sample, const FloatSize& presentationSize, const AtomString& trackId, VideoRotation videoRotation = VideoRotation::None, bool videoMirrored = false, std::optional<VideoFrameTimeMetadata>&& metadata = std::nullopt)
{
return adoptRef(*new MediaSampleGStreamer(WTFMove(sample), presentationSize, trackId, videoRotation, videoMirrored, WTFMove(metadata)));
}
@@ -46,7 +46,7 @@
}
static Ref<MediaSampleGStreamer> createFakeSample(GstCaps*, MediaTime pts, MediaTime dts, MediaTime duration, const FloatSize& presentationSize, const AtomString& trackId);
- static Ref<MediaSampleGStreamer> createImageSample(PixelBuffer&&, const IntSize& destinationSize = { }, double frameRate = 1, VideoRotation videoRotation = VideoRotation::None, bool videoMirrored = false, std::optional<VideoSampleMetadata>&& metadata = std::nullopt);
+ static Ref<MediaSampleGStreamer> createImageSample(PixelBuffer&&, const IntSize& destinationSize = { }, double frameRate = 1, VideoRotation videoRotation = VideoRotation::None, bool videoMirrored = false, std::optional<VideoFrameTimeMetadata>&& metadata = std::nullopt);
void extendToTheBeginning();
MediaTime presentationTime() const override { return m_pts; }
@@ -67,7 +67,7 @@
bool videoMirrored() const override { return m_videoMirrored; }
protected:
- MediaSampleGStreamer(GRefPtr<GstSample>&&, const FloatSize& presentationSize, const AtomString& trackId, VideoRotation = VideoRotation::None, bool videoMirrored = false, std::optional<VideoSampleMetadata>&& = std::nullopt);
+ MediaSampleGStreamer(GRefPtr<GstSample>&&, const FloatSize& presentationSize, const AtomString& trackId, VideoRotation = VideoRotation::None, bool videoMirrored = false, std::optional<VideoFrameTimeMetadata>&& = std::nullopt);
MediaSampleGStreamer(const GRefPtr<GstSample>&, VideoRotation = VideoRotation::None);
virtual ~MediaSampleGStreamer() = default;
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -32,7 +32,7 @@
using namespace WebCore;
struct VideoFrameMetadataPrivate {
- std::optional<VideoSampleMetadata> videoSampleMetadata;
+ std::optional<VideoFrameTimeMetadata> videoSampleMetadata;
HashMap<String, std::pair<GstClockTime, GstClockTime>> processingTimes;
};
@@ -99,7 +99,7 @@
return metaInfo;
}
-GstBuffer* webkitGstBufferSetVideoSampleMetadata(GstBuffer* buffer, std::optional<VideoSampleMetadata>&& metadata)
+GstBuffer* webkitGstBufferSetVideoFrameTimeMetadata(GstBuffer* buffer, std::optional<VideoFrameTimeMetadata>&& metadata)
{
if (!GST_IS_BUFFER(buffer))
return nullptr;
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h (291268 => 291269)
--- trunk/Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -22,11 +22,11 @@
#if ENABLE(VIDEO) && USE(GSTREAMER)
#include "VideoFrameMetadata.h"
-#include "VideoSampleMetadata.h"
+#include "VideoFrameTimeMetadata.h"
#include <gst/gst.h>
-GstBuffer* webkitGstBufferSetVideoSampleMetadata(GstBuffer*, std::optional<WebCore::VideoSampleMetadata>&&);
+GstBuffer* webkitGstBufferSetVideoFrameTimeMetadata(GstBuffer*, std::optional<WebCore::VideoFrameTimeMetadata>&&);
void webkitGstTraceProcessingTimeForElement(GstElement*);
WebCore::VideoFrameMetadata webkitGstBufferGetVideoFrameMetadata(GstBuffer*);
Modified: trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -83,7 +83,7 @@
callback(String(m_writer->mimeType()), m_writer->audioBitRate(), m_writer->videoBitRate());
}
-void MediaRecorderPrivateAVFImpl::videoSampleAvailable(MediaSample& sampleBuffer, VideoSampleMetadata)
+void MediaRecorderPrivateAVFImpl::videoSampleAvailable(MediaSample& sampleBuffer, VideoFrameTimeMetadata)
{
if (shouldMuteVideo()) {
if (!m_blackFrame) {
Modified: trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -49,7 +49,7 @@
explicit MediaRecorderPrivateAVFImpl(Ref<MediaRecorderPrivateWriter>&&);
// MediaRecorderPrivate
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
void fetchData(FetchDataCallback&&) final;
void audioSamplesAvailable(const MediaTime&, const PlatformAudioData&, const AudioStreamDescription&, size_t) final;
void startRecording(StartRecordingCallback&&) final;
Modified: trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -51,7 +51,7 @@
bool preparePipeline();
private:
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final { };
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final { };
void audioSamplesAvailable(const WTF::MediaTime&, const PlatformAudioData&, const AudioStreamDescription&, size_t) final { };
void fetchData(FetchDataCallback&&) final;
Modified: trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -67,7 +67,7 @@
completionHandler();
}
-void MediaRecorderPrivateMock::videoSampleAvailable(MediaSample&, VideoSampleMetadata)
+void MediaRecorderPrivateMock::videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata)
{
Locker locker { m_bufferLock };
m_buffer.append("Video Track ID: ");
Modified: trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -42,7 +42,7 @@
private:
// MediaRecorderPrivate
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
void fetchData(FetchDataCallback&&) final;
void audioSamplesAvailable(const MediaTime&, const PlatformAudioData&, const AudioStreamDescription&, size_t) final;
void stopRecording(CompletionHandler<void()>&&) final;
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -104,9 +104,9 @@
m_currentSettings = std::nullopt;
}
-VideoSampleMetadata RealtimeIncomingVideoSource::metadataFromVideoFrame(const webrtc::VideoFrame& frame)
+VideoFrameTimeMetadata RealtimeIncomingVideoSource::metadataFromVideoFrame(const webrtc::VideoFrame& frame)
{
- VideoSampleMetadata metadata;
+ VideoFrameTimeMetadata metadata;
if (frame.ntp_time_ms() > 0)
metadata.captureTime = Seconds::fromMilliseconds(frame.ntp_time_ms());
if (isInBounds<uint32_t>(frame.timestamp()))
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -63,7 +63,7 @@
const char* logClassName() const final { return "RealtimeIncomingVideoSource"; }
#endif
- static VideoSampleMetadata metadataFromVideoFrame(const webrtc::VideoFrame&);
+ static VideoFrameTimeMetadata metadataFromVideoFrame(const webrtc::VideoFrame&);
private:
// RealtimeMediaSource API
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -192,7 +192,7 @@
});
}
-void RealtimeMediaSource::videoSampleAvailable(MediaSample& mediaSample, VideoSampleMetadata metadata)
+void RealtimeMediaSource::videoSampleAvailable(MediaSample& mediaSample, VideoFrameTimeMetadata metadata)
{
#if !RELEASE_LOG_DISABLED
++m_frameCount;
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -42,7 +42,7 @@
#include "PlatformLayer.h"
#include "RealtimeMediaSourceCapabilities.h"
#include "RealtimeMediaSourceFactory.h"
-#include "VideoSampleMetadata.h"
+#include "VideoFrameTimeMetadata.h"
#include <wtf/CompletionHandler.h>
#include <wtf/Lock.h>
#include <wtf/LoggerHelper.h>
@@ -103,7 +103,7 @@
virtual ~VideoSampleObserver() = default;
// May be called on a background thread.
- virtual void videoSampleAvailable(MediaSample&, VideoSampleMetadata) = 0;
+ virtual void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) = 0;
};
virtual ~RealtimeMediaSource() = default;
@@ -250,7 +250,7 @@
void initializeSampleRate(int sampleRate) { m_sampleRate = sampleRate; }
void initializeEchoCancellation(bool echoCancellation) { m_echoCancellation = echoCancellation; }
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata);
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata);
void audioSamplesAvailable(const MediaTime&, const PlatformAudioData&, const AudioStreamDescription&, size_t);
void forEachObserver(const Function<void(Observer&)>&);
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -135,7 +135,7 @@
void trackEnded(MediaStreamTrackPrivate&) final { }
// RealtimeMediaSource::VideoSampleObserver API
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) override { }
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) override { }
Ref<MediaStreamTrackPrivate> m_videoSource;
Timer m_blackFrameTimer;
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -365,7 +365,7 @@
setFrameRate(match->requestedFrameRate);
}
-void RealtimeVideoCaptureSource::dispatchMediaSampleToObservers(MediaSample& sample, WebCore::VideoSampleMetadata metadata)
+void RealtimeVideoCaptureSource::dispatchMediaSampleToObservers(MediaSample& sample, WebCore::VideoFrameTimeMetadata metadata)
{
MediaTime sampleTime = sample.presentationTime();
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -73,7 +73,7 @@
void updateCapabilities(RealtimeMediaSourceCapabilities&);
- void dispatchMediaSampleToObservers(MediaSample&, WebCore::VideoSampleMetadata);
+ void dispatchMediaSampleToObservers(MediaSample&, WebCore::VideoFrameTimeMetadata);
static Span<const IntSize> standardVideoSizes();
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -196,7 +196,7 @@
}
#endif
-void RealtimeVideoSource::videoSampleAvailable(MediaSample& sample, VideoSampleMetadata metadata)
+void RealtimeVideoSource::videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata metadata)
{
if (m_frameDecimation > 1 && ++m_frameDecimationCounter % m_frameDecimation)
return;
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -72,7 +72,7 @@
bool preventSourceFromStopping() final;
// RealtimeMediaSource::VideoSampleObserver
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
#if PLATFORM(COCOA)
RefPtr<MediaSample> adaptVideoSample(MediaSample&);
Modified: trunk/Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -319,7 +319,7 @@
return;
}
- VideoSampleMetadata metadata;
+ VideoFrameTimeMetadata metadata;
metadata.captureTime = MonotonicTime::now().secondsSinceEpoch();
videoSampleAvailable(*sample.get(), metadata);
}
Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -105,10 +105,10 @@
auto srcPad = adoptGRef(gst_element_get_static_pad(m_src.get(), "src"));
if (m_deviceType == CaptureDevice::DeviceType::Camera) {
gst_pad_add_probe(srcPad.get(), static_cast<GstPadProbeType>(GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_BUFFER), [](GstPad*, GstPadProbeInfo* info, gpointer) -> GstPadProbeReturn {
- VideoSampleMetadata metadata;
+ VideoFrameTimeMetadata metadata;
metadata.captureTime = MonotonicTime::now().secondsSinceEpoch();
auto* buffer = GST_PAD_PROBE_INFO_BUFFER(info);
- auto* modifiedBuffer = webkitGstBufferSetVideoSampleMetadata(buffer, metadata);
+ auto* modifiedBuffer = webkitGstBufferSetVideoFrameTimeMetadata(buffer, metadata);
gst_buffer_replace(&buffer, modifiedBuffer);
return GST_PAD_PROBE_OK;
}, nullptr, nullptr);
Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -266,7 +266,7 @@
}
}
- void videoSampleAvailable(MediaSample& sample, VideoSampleMetadata) final
+ void videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata) final
{
if (!m_parent || !m_isObserving)
return;
@@ -356,9 +356,9 @@
void pushBlackFrame()
{
GST_TRACE_OBJECT(m_src.get(), "Pushing black video frame");
- VideoSampleMetadata metadata;
+ VideoFrameTimeMetadata metadata;
metadata.captureTime = MonotonicTime::now().secondsSinceEpoch();
- auto* buffer = webkitGstBufferSetVideoSampleMetadata(gst_sample_get_buffer(m_blackFrame.get()), metadata);
+ auto* buffer = webkitGstBufferSetVideoFrameTimeMetadata(gst_sample_get_buffer(m_blackFrame.get()), metadata);
// TODO: Use gst_sample_set_buffer() after bumping GStreamer dependency to 1.16.
auto* caps = gst_sample_get_caps(m_blackFrame.get());
m_blackFrame = adoptGRef(gst_sample_new(buffer, caps, nullptr, nullptr));
Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -96,7 +96,7 @@
m_source->setMuted(isMuted);
}
-void MockDisplayCaptureSourceGStreamer::videoSampleAvailable(MediaSample& sample, VideoSampleMetadata metadata)
+void MockDisplayCaptureSourceGStreamer::videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata metadata)
{
RealtimeMediaSource::videoSampleAvailable(sample, metadata);
}
@@ -162,7 +162,7 @@
if (!pixelBuffer)
return;
- std::optional<VideoSampleMetadata> metadata;
+ std::optional<VideoFrameTimeMetadata> metadata;
metadata->captureTime = MonotonicTime::now().secondsSinceEpoch();
auto sample = MediaSampleGStreamer::createImageSample(WTFMove(*pixelBuffer), size(), frameRate(), sampleRotation(), false, WTFMove(metadata));
sample->offsetTimestampsBy(MediaTime::createWithDouble((elapsedTime() + 100_ms).seconds()));
Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -50,7 +50,7 @@
protected:
// RealtimeMediaSource::VideoSampleObserver
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
private:
MockDisplayCaptureSourceGStreamer(RealtimeMediaSource::Type, Ref<MockRealtimeVideoSourceGStreamer>&&, String&&, CaptureDevice::DeviceType);
Modified: trunk/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -50,7 +50,7 @@
{
}
-void RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable(MediaSample& sample, VideoSampleMetadata)
+void RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata)
{
switch (sample.videoRotation()) {
case MediaSample::VideoRotation::None:
Modified: trunk/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -42,7 +42,7 @@
rtc::scoped_refptr<webrtc::VideoFrameBuffer> createBlackFrame(size_t, size_t) final;
// RealtimeMediaSource::VideoSampleObserver API
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm 2022-03-15 07:52:24 UTC (rev 291269)
@@ -563,7 +563,7 @@
auto sample = MediaSampleAVFObjC::create(sampleBuffer, m_sampleRotation, [captureConnection isVideoMirrored]);
m_buffer = &sample.get();
setIntrinsicSize(expandedIntSize(sample->presentationSize()));
- VideoSampleMetadata metadata;
+ VideoFrameTimeMetadata metadata;
metadata.captureTime = MonotonicTime::now().secondsSinceEpoch();
dispatchMediaSampleToObservers(WTFMove(sample), metadata);
}
Modified: trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm 2022-03-15 07:52:24 UTC (rev 291269)
@@ -101,7 +101,7 @@
auto captureTime = MonotonicTime::now().secondsSinceEpoch();
m_workQueue->dispatch([this, protectedThis = Ref { *this }, sampleBuffer = WTFMove(sampleBuffer), captureTime]() mutable {
- VideoSampleMetadata metadata;
+ VideoFrameTimeMetadata metadata;
metadata.captureTime = captureTime;
dispatchMediaSampleToObservers(*sampleBuffer, metadata);
});
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -63,7 +63,7 @@
{
}
-void RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable(MediaSample& sample, VideoSampleMetadata)
+void RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata)
{
#if !RELEASE_LOG_DISABLED
if (!(++m_numberOfFrames % 60))
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h (291268 => 291269)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -45,7 +45,7 @@
rtc::scoped_refptr<webrtc::VideoFrameBuffer> createBlackFrame(size_t width, size_t height) final;
// RealtimeMediaSource::VideoSampleObserver API
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
RetainPtr<CVPixelBufferRef> convertToYUV(CVPixelBufferRef);
RetainPtr<CVPixelBufferRef> rotatePixelBuffer(CVPixelBufferRef, webrtc::VideoRotation);
Modified: trunk/Source/WebCore/testing/Internals.cpp (291268 => 291269)
--- trunk/Source/WebCore/testing/Internals.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/testing/Internals.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -5545,7 +5545,7 @@
promise.resolve(m_trackVideoRotation);
}
-void Internals::videoSampleAvailable(MediaSample& sample, VideoSampleMetadata)
+void Internals::videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata)
{
callOnMainThread([this, weakThis = WeakPtr { *this }, sample = Ref { sample }] {
if (!weakThis)
Modified: trunk/Source/WebCore/testing/Internals.h (291268 => 291269)
--- trunk/Source/WebCore/testing/Internals.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebCore/testing/Internals.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -1294,7 +1294,7 @@
#if ENABLE(MEDIA_STREAM)
// RealtimeMediaSource::Observer API
- void videoSampleAvailable(MediaSample&, VideoSampleMetadata) final;
+ void videoSampleAvailable(MediaSample&, VideoFrameTimeMetadata) final;
// RealtimeMediaSource::AudioSampleObserver API
void audioSamplesAvailable(const MediaTime&, const PlatformAudioData&, const AudioStreamDescription&, size_t) final { m_trackAudioSampleCount++; }
Modified: trunk/Source/WebKit/ChangeLog (291268 => 291269)
--- trunk/Source/WebKit/ChangeLog 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/ChangeLog 2022-03-15 07:52:24 UTC (rev 291269)
@@ -1,3 +1,25 @@
+2022-03-15 Youenn Fablet <you...@apple.com>
+
+ Rename VideoSampleMetadata to VideoFrameTimeMetadata
+ https://bugs.webkit.org/show_bug.cgi?id=237593
+
+ Reviewed by Eric Carlson.
+
+ * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
+ * WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
+ (WebKit::MediaRecorderPrivate::videoSampleAvailable):
+ * WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
+ * WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
+ (WebKit::RemoteCaptureSampleManager::videoFrameAvailable):
+ (WebKit::RemoteCaptureSampleManager::videoFrameAvailableCV):
+ (WebKit::RemoteCaptureSampleManager::RemoteVideo::videoFrameAvailable):
+ * WebProcess/cocoa/RemoteCaptureSampleManager.h:
+ * WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
+ * WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
+ * WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
+ (WebKit::RemoteRealtimeVideoSource::videoSampleAvailable):
+ * WebProcess/cocoa/RemoteRealtimeVideoSource.h:
+
2022-03-14 Wenson Hsieh <wenson_hs...@apple.com>
[Mail Compose] Spelling and grammar context menu items need custom identifiers
Modified: trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp (291268 => 291269)
--- trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -187,7 +187,7 @@
return &sample;
}
- void videoSampleAvailable(MediaSample& frame, VideoSampleMetadata metadata) final
+ void videoSampleAvailable(MediaSample& frame, VideoFrameTimeMetadata metadata) final
{
auto videoFrame = rotateVideoFrameIfNeeded(frame);
if (!videoFrame)
Modified: trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp (291268 => 291269)
--- trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -92,7 +92,7 @@
WebProcess::singleton().ensureGPUProcessConnection().removeClient(*this);
}
-void MediaRecorderPrivate::videoSampleAvailable(MediaSample& sample, VideoSampleMetadata)
+void MediaRecorderPrivate::videoSampleAvailable(MediaSample& sample, VideoFrameTimeMetadata)
{
if (shouldMuteVideo()) {
if (!m_blackFrameSize) {
Modified: trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.h (291268 => 291269)
--- trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -56,7 +56,7 @@
private:
// WebCore::MediaRecorderPrivate
- void videoSampleAvailable(WebCore::MediaSample&, WebCore::VideoSampleMetadata) final;
+ void videoSampleAvailable(WebCore::MediaSample&, WebCore::VideoFrameTimeMetadata) final;
void fetchData(CompletionHandler<void(RefPtr<WebCore::FragmentedSharedBuffer>&&, const String& mimeType, double)>&&) final;
void stopRecording(CompletionHandler<void()>&&) final;
void startRecording(StartRecordingCallback&&) final;
Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp (291268 => 291269)
--- trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp 2022-03-15 07:52:24 UTC (rev 291269)
@@ -145,7 +145,7 @@
iterator->value->setStorage(ipcHandle.handle, description, numberOfFrames, WTFMove(semaphore), mediaTime, frameChunkSize);
}
-void RemoteCaptureSampleManager::videoFrameAvailable(RealtimeMediaSourceIdentifier identifier, RemoteVideoFrameProxy::Properties&& properties, VideoSampleMetadata metadata)
+void RemoteCaptureSampleManager::videoFrameAvailable(RealtimeMediaSourceIdentifier identifier, RemoteVideoFrameProxy::Properties&& properties, VideoFrameTimeMetadata metadata)
{
ASSERT(!WTF::isMainRunLoop());
// Create videoFrame before early outs so that the reference in `properties` is adopted.
@@ -163,7 +163,7 @@
iterator->value->videoFrameAvailable(WTFMove(videoFrame), videoFrameSize, metadata);
}
-void RemoteCaptureSampleManager::videoFrameAvailableCV(RealtimeMediaSourceIdentifier identifier, RetainPtr<CVPixelBufferRef>&& pixelBuffer, WebCore::MediaSample::VideoRotation rotation, bool mirrored, MediaTime presentationTime, WebCore::VideoSampleMetadata metadata)
+void RemoteCaptureSampleManager::videoFrameAvailableCV(RealtimeMediaSourceIdentifier identifier, RetainPtr<CVPixelBufferRef>&& pixelBuffer, WebCore::MediaSample::VideoRotation rotation, bool mirrored, MediaTime presentationTime, WebCore::VideoFrameTimeMetadata metadata)
{
ASSERT(!WTF::isMainRunLoop());
auto iterator = m_videoSources.find(identifier);
Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h (291268 => 291269)
--- trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -72,9 +72,9 @@
// Messages
void audioStorageChanged(WebCore::RealtimeMediaSourceIdentifier, const SharedMemory::IPCHandle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames, IPC::Semaphore&&, const MediaTime&, size_t frameSampleSize);
void audioSamplesAvailable(WebCore::RealtimeMediaSourceIdentifier, MediaTime, uint64_t numberOfFrames);
- void videoFrameAvailable(WebCore::RealtimeMediaSourceIdentifier, RemoteVideoFrameProxy::Properties&&, WebCore::VideoSampleMetadata);
+ void videoFrameAvailable(WebCore::RealtimeMediaSourceIdentifier, RemoteVideoFrameProxy::Properties&&, WebCore::VideoFrameTimeMetadata);
// FIXME: Will be removed once RemoteVideoFrameProxy providers are the only ones sending data.
- void videoFrameAvailableCV(WebCore::RealtimeMediaSourceIdentifier, RetainPtr<CVPixelBufferRef>&&, WebCore::MediaSample::VideoRotation, bool mirrored, MediaTime, WebCore::VideoSampleMetadata);
+ void videoFrameAvailableCV(WebCore::RealtimeMediaSourceIdentifier, RetainPtr<CVPixelBufferRef>&&, WebCore::MediaSample::VideoRotation, bool mirrored, MediaTime, WebCore::VideoFrameTimeMetadata);
void setConnection(IPC::Connection*);
Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.messages.in (291268 => 291269)
--- trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.messages.in 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.messages.in 2022-03-15 07:52:24 UTC (rev 291269)
@@ -25,8 +25,8 @@
messages -> RemoteCaptureSampleManager NotRefCounted {
AudioStorageChanged(WebCore::RealtimeMediaSourceIdentifier id, WebKit::SharedMemory::IPCHandle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames, IPC::Semaphore captureSemaphore, MediaTime mediaTime, size_t frameChunkSize);
- VideoFrameAvailable(WebCore::RealtimeMediaSourceIdentifier id, WebKit::RemoteVideoFrameProxy::Properties sample, struct WebCore::VideoSampleMetadata metadata)
- VideoFrameAvailableCV(WebCore::RealtimeMediaSourceIdentifier id, RetainPtr<CVPixelBufferRef> pixelBuffer, WebCore::MediaSample::VideoRotation rotation, bool mirrored, MediaTime presentationTime, struct WebCore::VideoSampleMetadata metadata)
+ VideoFrameAvailable(WebCore::RealtimeMediaSourceIdentifier id, WebKit::RemoteVideoFrameProxy::Properties sample, struct WebCore::VideoFrameTimeMetadata metadata)
+ VideoFrameAvailableCV(WebCore::RealtimeMediaSourceIdentifier id, RetainPtr<CVPixelBufferRef> pixelBuffer, WebCore::MediaSample::VideoRotation rotation, bool mirrored, MediaTime presentationTime, struct WebCore::VideoFrameTimeMetadata metadata)
}
Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.h (291268 => 291269)
--- trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.h 2022-03-15 07:28:45 UTC (rev 291268)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.h 2022-03-15 07:52:24 UTC (rev 291269)
@@ -58,7 +58,7 @@
void captureStopped(bool didFail);
- void videoFrameAvailable(WebCore::VideoFrame& frame, WebCore::IntSize, WebCore::VideoSampleMetadata metadata) { videoSampleAvailable(frame, metadata); }
+ void videoFrameAvailable(WebCore::VideoFrame& frame, WebCore::IntSize, WebCore::VideoFrameTimeMetadata metadata) { videoSampleAvailable(frame, metadata); }
void sourceMutedChanged(bool value, bool interrupted);
void applyConstraintsSucceeded(WebCore::RealtimeMediaSourceSettings&&);