By default in Linux/PulseAudio the sink latency is 200ms, reducing this to 100ms in the WebAudio playback pipeline showed some good improvements. Another small improvement we can have one the webaudiosrc element is to configure the appsrc blocksize property according to the buffer size set on the webaudiosrc element.
Created attachment 273416 [details] patch
Comment on attachment 273416 [details] patch Attachment 273416 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/946579 New failing tests: js/function-apply.html
Created attachment 273420 [details] Archive of layout-test-results from ews117 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews117 Port: mac-yosemite Platform: Mac OS X 10.10.5
False positive :)
Comment on attachment 273416 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=273416&action=review > Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:232 > + g_object_set(appsrc, "max-bytes", static_cast<guint64>(2 * priv->bufferSize), "block", TRUE, Indeed, we always have to cast ints when using g_object_set with anything other than a gint, as the compiler cannot know the right size on its own. This would ideally be committed separately to draw attention to it, since it's a crash fix snuck into a performance improvement commit.
Committed r201077: <http://trac.webkit.org/changeset/201077>