chiark / gitweb /
server/gstdecode.c: Limit the buildup of internal buffers.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 26 Nov 2017 20:30:00 +0000 (20:30 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Wed, 29 Nov 2017 11:47:21 +0000 (11:47 +0000)
Block upstream decoding if we start to build up too many buffers
(presumably because downstream is waiting for real time to pass while it
plays audio at us).

The magic number 16 is plucked from nowhere in particular.  I have no
idea how to choose a number properly.

server/gstdecode.c

index 93cde8500d678da4755e7afb1f5487256d949195..a746a2492ee7ef1fcd445937e89c2785f85fda26 100644 (file)
@@ -366,6 +366,8 @@ static void decode(void)
   g_signal_connect(bus, "message", G_CALLBACK(bus_message), 0);
 
   /* Tell the sink to call us when interesting things happen. */
+  gst_app_sink_set_max_buffers(appsink, 16);
+  gst_app_sink_set_drop(appsink, FALSE);
   gst_app_sink_set_callbacks(appsink, &callbacks, 0, 0);
 
   /* Set the ball rolling. */