mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-16 05:16:36 +00:00
query: improve allocation parameters query
Use the same parameters as those used for the bufferpool. Make sure we can pass a minimum and maximum amount of buffers needed.
This commit is contained in:
parent
baebf253ad
commit
9d80fbac23
2 changed files with 20 additions and 12 deletions
|
@ -1519,15 +1519,18 @@ gst_query_parse_allocation (GstQuery * query, GstCaps ** caps,
|
||||||
* Set the allocation parameters in @query.
|
* Set the allocation parameters in @query.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gst_query_set_allocation_params (GstQuery * query, guint alignment,
|
gst_query_set_allocation_params (GstQuery * query, guint size,
|
||||||
guint prefix, guint size, GstBufferPool * pool)
|
guint min_buffers, guint max_buffers, guint prefix,
|
||||||
|
guint alignment, GstBufferPool * pool)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
||||||
|
|
||||||
gst_structure_id_set (query->structure,
|
gst_structure_id_set (query->structure,
|
||||||
GST_QUARK (ALIGN), G_TYPE_UINT, alignment,
|
|
||||||
GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
|
|
||||||
GST_QUARK (SIZE), G_TYPE_UINT, size,
|
GST_QUARK (SIZE), G_TYPE_UINT, size,
|
||||||
|
GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
|
||||||
|
GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers,
|
||||||
|
GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
|
||||||
|
GST_QUARK (ALIGN), G_TYPE_UINT, alignment,
|
||||||
GST_QUARK (POOL), GST_TYPE_BUFFER_POOL, pool, NULL);
|
GST_QUARK (POOL), GST_TYPE_BUFFER_POOL, pool, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1542,15 +1545,18 @@ gst_query_set_allocation_params (GstQuery * query, guint alignment,
|
||||||
* Get the allocation parameters in @query.
|
* Get the allocation parameters in @query.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gst_query_parse_allocation_params (GstQuery * query, guint * alignment,
|
gst_query_parse_allocation_params (GstQuery * query, guint * size,
|
||||||
guint * prefix, guint * size, GstBufferPool ** pool)
|
guint * min_buffers, guint * max_buffers, guint * prefix,
|
||||||
|
guint * alignment, GstBufferPool ** pool)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
||||||
|
|
||||||
gst_structure_id_get (query->structure,
|
gst_structure_id_get (query->structure,
|
||||||
GST_QUARK (ALIGN), G_TYPE_UINT, alignment,
|
|
||||||
GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
|
|
||||||
GST_QUARK (SIZE), G_TYPE_UINT, size,
|
GST_QUARK (SIZE), G_TYPE_UINT, size,
|
||||||
|
GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
|
||||||
|
GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers,
|
||||||
|
GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
|
||||||
|
GST_QUARK (ALIGN), G_TYPE_UINT, alignment,
|
||||||
GST_QUARK (POOL), GST_TYPE_BUFFER_POOL, pool, NULL);
|
GST_QUARK (POOL), GST_TYPE_BUFFER_POOL, pool, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -332,10 +332,12 @@ void gst_query_set_uri (GstQuery *query, const gchar
|
||||||
GstQuery * gst_query_new_allocation (GstCaps *caps, gboolean need_pool);
|
GstQuery * gst_query_new_allocation (GstCaps *caps, gboolean need_pool);
|
||||||
void gst_query_parse_allocation (GstQuery *query, GstCaps **caps, gboolean *need_pool);
|
void gst_query_parse_allocation (GstQuery *query, GstCaps **caps, gboolean *need_pool);
|
||||||
|
|
||||||
void gst_query_set_allocation_params (GstQuery *query, guint alignment, guint prefix,
|
void gst_query_set_allocation_params (GstQuery *query, guint size, guint min_buffers,
|
||||||
guint size, GstBufferPool *pool);
|
guint max_buffers, guint prefix, guint alignment,
|
||||||
void gst_query_parse_allocation_params (GstQuery *query, guint *alignment, guint *prefix,
|
GstBufferPool *pool);
|
||||||
guint *size, GstBufferPool **pool);
|
void gst_query_parse_allocation_params (GstQuery *query, guint *size, guint *min_buffers,
|
||||||
|
guint *max_buffers, guint *prefix, guint *alignment,
|
||||||
|
GstBufferPool **pool);
|
||||||
|
|
||||||
void gst_query_add_allocation_meta (GstQuery *query, const gchar *api);
|
void gst_query_add_allocation_meta (GstQuery *query, const gchar *api);
|
||||||
guint gst_query_get_n_allocation_meta (GstQuery *query);
|
guint gst_query_get_n_allocation_meta (GstQuery *query);
|
||||||
|
|
Loading…
Reference in a new issue