From: Hyunjun Ko Date: Thu, 8 Sep 2016 07:16:09 +0000 (+0900) Subject: plugins: set allocator's image size to sinkpad bufferpool X-Git-Tag: 1.19.3~503^2~1261 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=de233c137feefba9a993067d3b2b10a8d2fbbcd3;p=platform%2Fupstream%2Fgstreamer.git plugins: set allocator's image size to sinkpad bufferpool Otherwise the buffer is always ditched by the bufferpool, losing performance. https://bugzilla.gnome.org/show_bug.cgi?id=771035 --- diff --git a/gst/vaapi/gstvaapipluginbase.c b/gst/vaapi/gstvaapipluginbase.c index 7717ec5..7849161 100644 --- a/gst/vaapi/gstvaapipluginbase.c +++ b/gst/vaapi/gstvaapipluginbase.c @@ -625,6 +625,7 @@ ensure_sinkpad_buffer_pool (GstVaapiPluginBase * plugin, GstCaps * caps) { GstBufferPool *pool; GstVideoInfo vi; + guint size; /* video decoders don't use a buffer pool in the sink pad */ if (GST_IS_VIDEO_DECODER (plugin)) @@ -648,13 +649,15 @@ ensure_sinkpad_buffer_pool (GstVaapiPluginBase * plugin, GstCaps * caps) if (!ensure_sinkpad_allocator (plugin, &vi)) goto error_create_allocator; - pool = gst_vaapi_plugin_base_create_pool (plugin, caps, - GST_VIDEO_INFO_SIZE (&vi), 0, 0, + + size = GST_VIDEO_INFO_SIZE (&vi); + gst_allocator_get_vaapi_image_size (plugin->sinkpad_allocator, &size); + pool = gst_vaapi_plugin_base_create_pool (plugin, caps, size, 0, 0, GST_VAAPI_VIDEO_BUFFER_POOL_OPTION_VIDEO_META, plugin->sinkpad_allocator); if (!pool) goto error_create_pool; plugin->sinkpad_buffer_pool = pool; - plugin->sinkpad_buffer_size = GST_VIDEO_INFO_SIZE (&vi); + plugin->sinkpad_buffer_size = size; return TRUE; /* ERRORS */