diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-05-14 09:45:12 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-05-14 09:45:12 +0200 |
commit | 5c8bb90262f0af596a71f2a7749a1b382817d523 (patch) | |
tree | 9a51eefd7ac224d4360b2a8ce0f84b9d604e5070 /gst/deinterlace | |
parent | 30c00f4fb78b173e99787a2b85cf7db267ea505b (diff) | |
download | gstreamer-plugins-good-5c8bb90262f0af596a71f2a7749a1b382817d523.tar.gz |
deinterlace: Improve handling of min/max buffer numbers of the buffer pool
Diffstat (limited to 'gst/deinterlace')
-rw-r--r-- | gst/deinterlace/gstdeinterlace.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index 6bc752674..b93b5b719 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -2359,7 +2359,11 @@ gst_deinterlace_do_bufferpool (GstDeinterlace * self, GstCaps * outcaps) gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max); else { pool = NULL; - size = GST_VIDEO_INFO_SIZE (&self->vinfo), min = max = 0; + size = GST_VIDEO_INFO_SIZE (&self->vinfo); + min = + MAX ((gst_deinterlace_method_get_fields_required (self->method) + + 1) / 2 + 1, 4); + max = 0; } if (pool == NULL) { @@ -2620,7 +2624,9 @@ gst_deinterlace_propose_allocation (GstDeinterlace * self, GstQuery * query) gst_query_add_allocation_pool (query, pool, size, 0, 0); config = gst_buffer_pool_get_config (pool); - gst_buffer_pool_config_set_params (config, caps, size, 0, 0); + gst_buffer_pool_config_set_params (config, caps, size, + (gst_deinterlace_method_get_fields_required (self->method) + 1) / 2 + 1, + 0); gst_buffer_pool_set_config (pool, config); gst_object_unref (pool); |