Title: [147278] trunk/Source/WebCore
Revision
147278
Author
[email protected]
Date
2013-03-30 03:41:17 -0700 (Sat, 30 Mar 2013)

Log Message

g_slist_reverse() may not be required in webKitWebAudioSrcLoop
https://bugs.webkit.org/show_bug.cgi?id=113568

Patch by Praveen R Jadhav <[email protected]> on 2013-03-30
Reviewed by Philippe Normand.

Decremental 'for' loop logic implemented to avoid using g_slist_reverse().

Original code            - 2.025230 micro seconds per loop
Original code + patch    - 1.964759 micro seconds per loop

This patch is covered by existing webaudio tests.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (147277 => 147278)


--- trunk/Source/WebCore/ChangeLog	2013-03-30 08:59:54 UTC (rev 147277)
+++ trunk/Source/WebCore/ChangeLog	2013-03-30 10:41:17 UTC (rev 147278)
@@ -1,3 +1,20 @@
+2013-03-30  Praveen R Jadhav  <[email protected]>
+
+        g_slist_reverse() may not be required in webKitWebAudioSrcLoop
+        https://bugs.webkit.org/show_bug.cgi?id=113568
+
+        Reviewed by Philippe Normand.
+
+        Decremental 'for' loop logic implemented to avoid using g_slist_reverse().
+
+        Original code            - 2.025230 micro seconds per loop
+        Original code + patch    - 1.964759 micro seconds per loop
+
+        This patch is covered by existing webaudio tests.
+
+        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
+        (webKitWebAudioSrcLoop):
+
 2013-03-30  Alexei Filippov  <[email protected]>
 
         Web Inspector: Fonts refactoring

Modified: trunk/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp (147277 => 147278)


--- trunk/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp	2013-03-30 08:59:54 UTC (rev 147277)
+++ trunk/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp	2013-03-30 10:41:17 UTC (rev 147278)
@@ -355,7 +355,7 @@
 
     GSList* channelBufferList = 0;
     unsigned bufferSize = priv->framesToPull * sizeof(float);
-    for (unsigned i = 0; i < g_slist_length(priv->pads); i++) {
+    for (int i = g_slist_length(priv->pads) - 1; i >= 0; i--) {
         GstBuffer* channelBuffer = gst_buffer_new_and_alloc(bufferSize);
         ASSERT(channelBuffer);
         channelBufferList = g_slist_prepend(channelBufferList, channelBuffer);
@@ -368,12 +368,11 @@
         priv->bus->setChannelMemory(i, reinterpret_cast<float*>(GST_BUFFER_DATA(channelBuffer)), priv->framesToPull);
 #endif
     }
-    channelBufferList = g_slist_reverse(channelBufferList);
 
     // FIXME: Add support for local/live audio input.
     priv->provider->render(0, priv->bus, priv->framesToPull);
 
-    for (unsigned i = 0; i < g_slist_length(priv->pads); i++) {
+    for (int i = g_slist_length(priv->pads) - 1; i >= 0; i--) {
         GstPad* pad = static_cast<GstPad*>(g_slist_nth_data(priv->pads, i));
         GstBuffer* channelBuffer = static_cast<GstBuffer*>(g_slist_nth_data(channelBufferList, i));
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to