rfbsrc: Fix decide_allocation to support NULL pool
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 25 Apr 2018 19:05:38 +0000 (15:05 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 25 Apr 2018 19:07:23 +0000 (15:07 -0400)
We were assuming that NULL pool meant that downstream didn't reply.
Update the pool index 0 instead of adding at the end. Otherwise we ended
up letting basesrc decide, which would pick the blocksize as a size
(4096) instead of the image size.

https://bugzilla.gnome.org/show_bug.cgi?id=795327

gst/librfb/gstrfbsrc.c

index 786d32d4cd1648c79958c8c422a46ab01ef311ae..9c9b5ab0d6f18a56b642ab34dd3a4fae597c4869 100644 (file)
@@ -372,7 +372,11 @@ gst_rfb_src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
     size = info.size;
     min = 1;
     max = 0;
-    gst_query_add_allocation_pool (query, pool, size, min, max);
+
+    if (gst_query_get_n_allocation_pools (query) > 0)
+      gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
+    else
+      gst_query_add_allocation_pool (query, pool, size, min, max);
   }
 
   config = gst_buffer_pool_get_config (pool);