Title: [250971] trunk/Source/WebCore
Revision
250971
Author
eric.carl...@apple.com
Date
2019-10-10 08:31:20 -0700 (Thu, 10 Oct 2019)

Log Message

[GTK][WPE] Lots of media related tests crashing or flaky after r250918 - [ Mac WK2 ] Layout Test fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=202784

Unreviewed, fix GTK and WPE test crashes.


* platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
(WebCore::WrappedMockRealtimeAudioSource::render): Reconfigure if necessary.
(WebCore::WrappedMockRealtimeAudioSource::reconfigure): New, setup for rendering.
(WebCore::WrappedMockRealtimeAudioSource::settingsDidChange): Call reconfigure.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (250970 => 250971)


--- trunk/Source/WebCore/ChangeLog	2019-10-10 15:19:46 UTC (rev 250970)
+++ trunk/Source/WebCore/ChangeLog	2019-10-10 15:31:20 UTC (rev 250971)
@@ -1,3 +1,15 @@
+2019-10-10  Eric Carlson  <eric.carl...@apple.com>
+
+        [GTK][WPE] Lots of media related tests crashing or flaky after r250918 - [ Mac WK2 ] Layout Test fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure
+        https://bugs.webkit.org/show_bug.cgi?id=202784
+
+        Unreviewed, fix GTK and WPE test crashes.
+
+        * platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
+        (WebCore::WrappedMockRealtimeAudioSource::render): Reconfigure if necessary.
+        (WebCore::WrappedMockRealtimeAudioSource::reconfigure): New, setup for rendering.
+        (WebCore::WrappedMockRealtimeAudioSource::settingsDidChange): Call reconfigure.
+
 2019-10-10  youenn fablet  <you...@apple.com>
 
         Remove unified plan runtime flag

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


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp	2019-10-10 15:19:46 UTC (rev 250970)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp	2019-10-10 15:31:20 UTC (rev 250971)
@@ -73,6 +73,9 @@
     {
         ASSERT(m_src);
 
+        if (!m_bipBopBuffer.size())
+            reconfigure();
+
         uint32_t totalFrameCount = GST_ROUND_UP_16(static_cast<size_t>(delta.seconds() * sampleRate()));
         uint32_t frameCount = std::min(totalFrameCount, m_maximiumFrameCount);
         while (frameCount) {
@@ -98,31 +101,35 @@
         }
     }
 
-    void settingsDidChange(OptionSet<RealtimeMediaSourceSettings::Flag> settings)
+    void reconfigure()
     {
-        if (settings.contains(RealtimeMediaSourceSettings::Flag::SampleRate)) {
-            GstAudioInfo info;
-            auto rate = sampleRate();
-            size_t sampleCount = 2 * rate;
+        GstAudioInfo info;
+        auto rate = sampleRate();
+        size_t sampleCount = 2 * rate;
 
-            m_maximiumFrameCount = WTF::roundUpToPowerOfTwo(renderInterval().seconds() * sampleRate());
-            gst_audio_info_set_format(&info, GST_AUDIO_FORMAT_F32LE, rate, 1, nullptr);
-            m_streamFormat = GStreamerAudioStreamDescription(info);
+        m_maximiumFrameCount = WTF::roundUpToPowerOfTwo(renderInterval().seconds() * sampleRate());
+        gst_audio_info_set_format(&info, GST_AUDIO_FORMAT_F32LE, rate, 1, nullptr);
+        m_streamFormat = GStreamerAudioStreamDescription(info);
 
-            if (m_src)
-                gst_app_src_set_caps(GST_APP_SRC(m_src.get()), m_streamFormat->caps());
+        if (m_src)
+            gst_app_src_set_caps(GST_APP_SRC(m_src.get()), m_streamFormat->caps());
 
-            m_bipBopBuffer.grow(sampleCount);
-            m_bipBopBuffer.fill(0);
+        m_bipBopBuffer.resize(sampleCount);
+        m_bipBopBuffer.fill(0);
 
-            size_t bipBopSampleCount = ceil(s_BipBopDuration * rate);
-            size_t bipStart = 0;
-            size_t bopStart = rate;
+        size_t bipBopSampleCount = ceil(s_BipBopDuration * rate);
+        size_t bipStart = 0;
+        size_t bopStart = rate;
 
-            addHum(s_BipBopVolume, s_BipFrequency, rate, 0, static_cast<float*>(m_bipBopBuffer.data() + bipStart), bipBopSampleCount);
-            addHum(s_BipBopVolume, s_BopFrequency, rate, 0, static_cast<float*>(m_bipBopBuffer.data() + bopStart), bipBopSampleCount);
-        }
+        addHum(s_BipBopVolume, s_BipFrequency, rate, 0, static_cast<float*>(m_bipBopBuffer.data() + bipStart), bipBopSampleCount);
+        addHum(s_BipBopVolume, s_BopFrequency, rate, 0, static_cast<float*>(m_bipBopBuffer.data() + bopStart), bipBopSampleCount);
+    }
 
+    void settingsDidChange(OptionSet<RealtimeMediaSourceSettings::Flag> settings)
+    {
+        if (settings.contains(RealtimeMediaSourceSettings::Flag::SampleRate))
+            reconfigure();
+
         MockRealtimeAudioSource::settingsDidChange(settings);
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to