[GStreamer] Silent WebAudio buffers support
authorphiln@webkit.org <philn@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Apr 2015 10:43:22 +0000 (10:43 +0000)
committerphiln@webkit.org <philn@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Apr 2015 10:43:22 +0000 (10:43 +0000)
https://bugs.webkit.org/show_bug.cgi?id=143869

Reviewed by Carlos Garcia Campos.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop): Set gap flag on silent buffers. The audio
sink can then drop them and avoid un-necessary buffer processing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@182947 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp

index c4a7ee0..0d62f52 100644 (file)
@@ -1,3 +1,14 @@
+2015-04-17  Philippe Normand  <pnormand@igalia.com>
+
+        [GStreamer] Silent WebAudio buffers support
+        https://bugs.webkit.org/show_bug.cgi?id=143869
+
+        Reviewed by Carlos Garcia Campos.
+
+        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
+        (webKitWebAudioSrcLoop): Set gap flag on silent buffers. The audio
+        sink can then drop them and avoid un-necessary buffer processing.
+
 2015-04-17  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         [SOUP] Redirect to non HTTP destination is broken
index 83b574b..6ebb09e 100644 (file)
@@ -371,6 +371,9 @@ static void webKitWebAudioSrcLoop(WebKitWebAudioSrc* src)
         gst_buffer_unmap(channelBuffer, &buffer->info);
         g_free(buffer);
 
+        if (priv->bus->channel(i)->isSilent())
+            GST_BUFFER_FLAG_SET(channelBuffer, GST_BUFFER_FLAG_GAP);
+
         if (ret == GST_FLOW_OK) {
             ret = gst_app_src_push_buffer(GST_APP_SRC(appsrc), channelBuffer);
             if (ret != GST_FLOW_OK) {