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.
This commit is contained in:
Nicolas Dufresne 2014-05-24 23:49:19 -04:00
parent 66519d08b0
commit ffb7a78798

View file

@ -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);