vaapipluginbase: Update the pool if there was no pool in the downstream reply
authorOlivier Crete <olivier.crete@collabora.com>
Mon, 27 Apr 2015 23:21:12 +0000 (19:21 -0400)
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Wed, 29 Apr 2015 10:05:07 +0000 (12:05 +0200)
Fix regression introduced by bd866479, the query after decide_allocation()
always needs a pool in the first slot.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
https://bugzilla.gnome.org/show_bug.cgi?id=748559

gst/vaapi/gstvaapipluginbase.c

index e8079d0..23c14a6 100644 (file)
@@ -607,7 +607,7 @@ gst_vaapi_plugin_base_decide_allocation (GstVaapiPluginBase * plugin,
   GstStructure *config;
   GstVideoInfo vi;
   guint size, min, max;
-  gboolean need_pool, update_pool;
+  gboolean need_pool, update_pool = FALSE;
   gboolean has_video_meta = FALSE;
   gboolean has_video_alignment = FALSE;
 #if (USE_GLX || USE_EGL)
@@ -670,9 +670,9 @@ gst_vaapi_plugin_base_decide_allocation (GstVaapiPluginBase * plugin,
 
   if (gst_query_get_n_allocation_pools (query) > 0) {
     gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
+    update_pool = (pool != NULL);
     if (pool) {
       size = MAX (size, vi.size);
-      update_pool = TRUE;
 
       /* Check whether downstream element proposed a bufferpool but did
          not provide a correct propose_allocation() implementation */
@@ -683,7 +683,6 @@ gst_vaapi_plugin_base_decide_allocation (GstVaapiPluginBase * plugin,
     pool = NULL;
     size = vi.size;
     min = max = 0;
-    update_pool = FALSE;
   }
 
   /* GstVaapiVideoMeta is mandatory, and this implies VA surface memory */