Title: [253368] trunk
Revision
253368
Author
commit-qu...@webkit.org
Date
2019-12-11 06:04:48 -0800 (Wed, 11 Dec 2019)

Log Message

[GStreamer][MediaStream] Fix GStreamer capturer mock
https://bugs.webkit.org/show_bug.cgi?id=205066

- Presets where wrongly generated based on GStreamer capabilities
- Audio capturer was not taking into account echo cancellation

Patch by Thibault Saunier <tsaun...@igalia.com> on 2019-12-11
Reviewed by Philippe Normand.

Source/WebCore:

This fixes a few tests

* platform/mediastream/RealtimeVideoCaptureSource.h:
(WebCore::RealtimeVideoCaptureSource::canResizeVideoFrames const):
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
* platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
(WebCore::WrappedMockRealtimeAudioSource::addHum):
* platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:
(WebCore::WrappedMockRealtimeVideoSource::presets):
(WebCore::MockGStreamerVideoCaptureSource::generatePresets):
* platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h:
* platform/mock/MockRealtimeVideoSource.h:

LayoutTests:

* platform/gtk/TestExpectations: Updated expectations as required
* platform/wpe/TestExpectations: Updated expectations as required

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (253367 => 253368)


--- trunk/LayoutTests/ChangeLog	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/LayoutTests/ChangeLog	2019-12-11 14:04:48 UTC (rev 253368)
@@ -1,3 +1,16 @@
+2019-12-11  Thibault Saunier  <tsaun...@igalia.com>
+
+        [GStreamer][MediaStream] Fix GStreamer capturer mock
+        https://bugs.webkit.org/show_bug.cgi?id=205066
+
+        - Presets where wrongly generated based on GStreamer capabilities
+        - Audio capturer was not taking into account echo cancellation
+
+        Reviewed by Philippe Normand.
+
+        * platform/gtk/TestExpectations: Updated expectations as required
+        * platform/wpe/TestExpectations: Updated expectations as required
+
 2019-12-10  Peng Liu  <peng.l...@apple.com>
 
         Create a TestExpectations file for the GPU process related work

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (253367 => 253368)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-12-11 14:04:48 UTC (rev 253368)
@@ -573,7 +573,9 @@
 webkit.org/b/79203 fast/mediastream/MediaStream-video-element-displays-buffer.html [ Failure ]
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-stats.html [ Timeout Crash ]
 webkit.org/b/79203 fast/mediastream/get-display-media-muted.html [ Timeout ]
+webkit.org/b/79203 fast/mediastream/constraint-intrinsic-size.html [ Skip ]
 webkit.org/b/151344 fast/mediastream/MediaStream-add-ended-tracks.html [ Timeout ]
+webkit.org/b/205057 fast/mediastream/MediaStreamTrack-getSettings.html [ Failure ]
 # Crash is bug #176801
 webkit.org/b/160996 fast/mediastream/MediaStream-video-element-video-tracks-disabled.html [ ImageOnlyFailure Crash ]
 webkit.org/b/173257 fast/mediastream/getUserMedia-grant-persistency3.html [ Pass Failure ]
@@ -2206,6 +2208,7 @@
 
 webkit.org/b/191886 fast/mediastream/MediaStream-video-element-remove-track.html [ Failure ]
 
+
 # Console log lines may appear in a different order so we silence them.
 imported/w3c/web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.w.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/offscreen-canvas/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w.html [ DumpJSConsoleLogInStdErr ]
@@ -3752,7 +3755,6 @@
 webkit.org/b/199001 accessibility/set-selected-text-range-after-newline.html [ Failure ]
 webkit.org/b/199002 compositing/repaint/scroller-with-foreground-layer-repaints.html [ Failure ]
 webkit.org/b/199004 fast/events/fire-mousedown-while-pressing-mouse-button.html [ Failure ]
-webkit.org/b/199006 fast/mediastream/MediaStreamTrack-getCapabilities.html [ Failure ]
 
 webkit.org/b/199009 fast/text/variations/optical-sizing-units.html [ ImageOnlyFailure ]
 
@@ -3762,9 +3764,6 @@
 webkit.org/b/199860 accessibility/datalist.html [ Failure ]
 webkit.org/b/199868 accessibility/gtk/aria-haspopup.html [ Failure ]
 
-webkit.org/b/199440 fast/mediastream/apply-constraints-video.html [ Failure ]
-webkit.org/b/199440 fast/mediastream/getUserMedia-video-rescaling.html [ Failure ]
-
 webkit.org/b/199437 compositing/geometry/limit-layer-bounds-clipping-ancestor.html [ Failure ]
 
 webkit.org/b/199872 http/tests/inspector/network/resource-sizes-network.html [ Failure ]

Modified: trunk/LayoutTests/platform/wpe/TestExpectations (253367 => 253368)


--- trunk/LayoutTests/platform/wpe/TestExpectations	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/LayoutTests/platform/wpe/TestExpectations	2019-12-11 14:04:48 UTC (rev 253368)
@@ -116,6 +116,8 @@
 webkit.org/b/160996 fast/mediastream/MediaStream-video-element-video-tracks-disabled.html [ Timeout ImageOnlyFailure Crash ]
 webkit.org/b/173257 fast/mediastream/getUserMedia-grant-persistency3.html [ Pass Failure ]
 
+webkit.org/b/205057 fast/mediastream/MediaStreamTrack-getSettings.html [ Failure ]
+
 # Canvas captureStream support is not implemented
 webkit.org/b/169811 fast/mediacapturefromelement [ Skip ]
 webkit.org/b/169811 fast/mediastream/captureStream/ [ Failure ]
@@ -1871,7 +1873,15 @@
 webkit.org/b/192883 fast/cookies/local-file-can-set-cookies.html [ Failure ]
 
 webkit.org/b/192886 fast/mediastream/media-stream-renders-first-frame.html [ Failure ]
+webkit.org/b/192888 fast/mediastream/resize-letterbox.html [ Failure ]
+webkit.org/b/192888 fast/mediastream/resize-trim.html [ Failure ]
 
+# No support for screen capture
+webkit.org/b/79203 fast/mediastream/screencapture-user-gesture.html [ Skip ]
+webkit.org/b/79203 fast/mediastream/get-display-media-muted.html [ Skip ]
+webkit.org/b/79203 fast/mediastream/constraint-intrinsic-size.html [ Skip ]
+webkit.org/b/198113 fast/mediastream/media-stream-page-muted.html [ Timeout Pass ]
+
 webkit.org/b/192891 fast/writing-mode/vertical-align-table-baseline.html [ Failure ]
 
 webkit.org/b/192900 imported/w3c/web-platform-tests/eventsource/format-mime-bogus.htm [ Failure ]
@@ -1931,9 +1941,6 @@
 
 webkit.org/b/196199 http/tests/IndexedDB/storage-limit-1.https.html [ Failure ]
 
-webkit.org/b/199440 fast/mediastream/apply-constraints-video.html [ Failure ]
-webkit.org/b/199440 fast/mediastream/getUserMedia-video-rescaling.html [ Failure ]
-
 webkit.org/b/200301 storage/websql/alter-to-info-table.html [ Failure ]
 webkit.org/b/200301 storage/websql/test-authorizer.html [ Failure ]
 

Modified: trunk/Source/WebCore/ChangeLog (253367 => 253368)


--- trunk/Source/WebCore/ChangeLog	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/Source/WebCore/ChangeLog	2019-12-11 14:04:48 UTC (rev 253368)
@@ -1,3 +1,26 @@
+2019-12-11  Thibault Saunier  <tsaun...@igalia.com>
+
+        [GStreamer][MediaStream] Fix GStreamer capturer mock
+        https://bugs.webkit.org/show_bug.cgi?id=205066
+
+        - Presets where wrongly generated based on GStreamer capabilities
+        - Audio capturer was not taking into account echo cancellation
+
+        Reviewed by Philippe Normand.
+
+        This fixes a few tests
+
+        * platform/mediastream/RealtimeVideoCaptureSource.h:
+        (WebCore::RealtimeVideoCaptureSource::canResizeVideoFrames const):
+        * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
+        * platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
+        (WebCore::WrappedMockRealtimeAudioSource::addHum):
+        * platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:
+        (WebCore::WrappedMockRealtimeVideoSource::presets):
+        (WebCore::MockGStreamerVideoCaptureSource::generatePresets):
+        * platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h:
+        * platform/mock/MockRealtimeVideoSource.h:
+
 2019-12-11  Charlie Turner  <ctur...@igalia.com>
 
         [GStreamer] Invalid use of UTF-8 validation in ClearKey key data

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h (253367 => 253368)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h	2019-12-11 14:04:48 UTC (rev 253368)
@@ -49,7 +49,7 @@
     void startProducingData() override;
     void stopProducingData() override;
     bool canResizeVideoFrames() const final { return true; }
-    void generatePresets() final;
+    void generatePresets() override;
 
 
     mutable Optional<RealtimeMediaSourceCapabilities> m_capabilities;

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp (253367 => 253368)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp	2019-12-11 14:04:48 UTC (rev 253368)
@@ -62,6 +62,10 @@
 
     void addHum(float amplitude, float frequency, float sampleRate, uint64_t start, float *p, uint64_t count)
     {
+        if (echoCancellation()) {
+            GST_DEBUG("echo cancel off..., no hum");
+            return;
+        }
         float humPeriod = sampleRate / frequency;
         for (uint64_t i = start, end = start + count; i < end; ++i) {
             float a = amplitude * sin(i * s_Tau / humPeriod);

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp (253367 => 253368)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp	2019-12-11 14:04:48 UTC (rev 253368)
@@ -43,6 +43,13 @@
         return *this;
     }
 
+    const Vector<Ref<VideoPreset>>& presets()
+    {
+        return MockRealtimeVideoSource::presets();
+    }
+
+    bool canResizeVideoFrames() const final { return true; }
+
     void updateSampleBuffer()
     {
         auto imageBuffer = this->imageBuffer();
@@ -141,6 +148,11 @@
     return m_capabilities.value();
 }
 
+void MockGStreamerVideoCaptureSource::generatePresets()
+{
+    setSupportedPresets(m_wrappedSource->presets());
+}
+
 void MockGStreamerVideoCaptureSource::captureFailed()
 {
     stop();

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h (253367 => 253368)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h	2019-12-11 14:04:48 UTC (rev 253368)
@@ -40,6 +40,7 @@
     void applyConstraints(const MediaConstraints&, ApplyConstraintsHandler&&) final;
 
 private:
+    void generatePresets() final;
     void stopProducingData() final;
     void startProducingData() final;
     const RealtimeMediaSourceSettings& settings() final;

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h (253367 => 253368)


--- trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h	2019-12-11 12:10:25 UTC (rev 253367)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h	2019-12-11 14:04:48 UTC (rev 253368)
@@ -62,6 +62,7 @@
     Seconds elapsedTime();
     void settingsDidChange(OptionSet<RealtimeMediaSourceSettings::Flag>) override;
     MediaSample::VideoRotation sampleRotation() const final { return m_deviceOrientation; }
+    void generatePresets() override;
 
 private:
     const RealtimeMediaSourceCapabilities& capabilities() final;
@@ -76,7 +77,6 @@
     void setFrameRateWithPreset(double, RefPtr<VideoPreset>) final;
     IntSize captureSize() const;
 
-    void generatePresets() final;
 
     bool isMockSource() const final { return true; }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to