Title: [219230] trunk/Source/WebCore
Revision
219230
Author
commit-qu...@webkit.org
Date
2017-07-06 18:56:42 -0700 (Thu, 06 Jul 2017)

Log Message

Rendering of WebRTC audio in AudioSampleDataSource may trigger crackles
https://bugs.webkit.org/show_bug.cgi?id=174223

Patch by Youenn Fablet <you...@apple.com> on 2017-07-06
Reviewed by Eric Carlson.

We try reading too quickly and need to back off a little bit if we do not enough data.
This only affects real audio and not web audio, hence validated through manual testing only.

* platform/audio/mac/AudioSampleDataSource.mm:
(WebCore::AudioSampleDataSource::pullSamplesInternal):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (219229 => 219230)


--- trunk/Source/WebCore/ChangeLog	2017-07-07 01:16:06 UTC (rev 219229)
+++ trunk/Source/WebCore/ChangeLog	2017-07-07 01:56:42 UTC (rev 219230)
@@ -1,3 +1,16 @@
+2017-07-06  Youenn Fablet  <you...@apple.com>
+
+        Rendering of WebRTC audio in AudioSampleDataSource may trigger crackles
+        https://bugs.webkit.org/show_bug.cgi?id=174223
+
+        Reviewed by Eric Carlson.
+
+        We try reading too quickly and need to back off a little bit if we do not enough data.
+        This only affects real audio and not web audio, hence validated through manual testing only.
+
+        * platform/audio/mac/AudioSampleDataSource.mm:
+        (WebCore::AudioSampleDataSource::pullSamplesInternal):
+
 2017-07-06  Sam Weinig  <s...@webkit.org>
 
         [WebIDL] Remove custom bindings for WebGL code dealing with WebGL extensions

Modified: trunk/Source/WebCore/platform/audio/mac/AudioSampleDataSource.mm (219229 => 219230)


--- trunk/Source/WebCore/platform/audio/mac/AudioSampleDataSource.mm	2017-07-07 01:16:06 UTC (rev 219229)
+++ trunk/Source/WebCore/platform/audio/mac/AudioSampleDataSource.mm	2017-07-07 01:56:42 UTC (rev 219230)
@@ -269,12 +269,7 @@
 #endif
 
         if (framesAvailable < sampleCount) {
-            int64_t delta = static_cast<int64_t>(timeStamp) - static_cast<int64_t>(endFrame);
-            if (delta > 0)
-                m_outputSampleOffset -= std::min<int64_t>(delta, sampleCount);
-        }
-
-        if (!framesAvailable) {
+            m_outputSampleOffset -= sampleCount - framesAvailable;
             AudioSampleBufferList::zeroABL(buffer, byteCount);
             return false;
         }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to