From ffb7a787989b5c3cb58ba678017a2be6eebaa0c0 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Sat, 24 May 2014 23:49:19 -0400 Subject: [PATCH] v4l2object: Simply read back the config to update the query It's easy to get the min/max outdate when hacking decide allocation. In order to avoid this, simply read back the choosen value from the config. --- sys/v4l2/gstv4l2object.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index a311f49bc2..7ab1dc17d4 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -3264,10 +3264,6 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query) * driver and 1 more, so we don't endup up with everything downstream or * held by the decoder. */ own_min = min + obj->min_buffers_for_capture + 1; - - /* Update min/max so the base class does not reset our settings */ - min = own_min; - max = 0; } else { /* In this case we'll have to configure two buffer pool. For our buffer * pool, we'll need what the driver one, and one more, so we can dequeu */ @@ -3361,6 +3357,12 @@ setup_other_pool: } } + /* For simplicity, simply read back the active configuration, so our base + * class get the right information */ + config = gst_buffer_pool_get_config (pool); + gst_buffer_pool_config_get_params (config, NULL, &size, &min, &max); + gst_structure_free (config); + done: if (update) gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);