bufferpool: use quarks for structure fields

This commit is contained in:
Wim Taymans 2011-02-17 17:29:27 +01:00
parent 0caa41e173
commit 2b50d0a2f4
3 changed files with 32 additions and 20 deletions

View file

@ -35,6 +35,7 @@
#include <sys/types.h>
#include "gstinfo.h"
#include "gstquark.h"
#include "gstbufferpool.h"
@ -92,12 +93,13 @@ gst_buffer_pool_init (GstBufferPool * pool)
{
pool->priv = GST_BUFFER_POOL_GET_PRIVATE (pool);
pool->config = gst_structure_new ("GstBufferPoolConfig",
"size", G_TYPE_UINT, 0,
"min-buffers", G_TYPE_UINT, 0,
"max-buffers", G_TYPE_UINT, 0,
"prefix", G_TYPE_UINT, 0,
"postfix", G_TYPE_UINT, 0, "align", G_TYPE_UINT, 1, NULL);
pool->config = gst_structure_id_new (GST_QUARK (BUFFER_POOL_CONFIG),
GST_QUARK (SIZE), G_TYPE_UINT, 0,
GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, 0,
GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, 0,
GST_QUARK (PREFIX), G_TYPE_UINT, 0,
GST_QUARK (POSTFIX), G_TYPE_UINT, 0,
GST_QUARK (ALIGN), G_TYPE_UINT, 1, NULL);
pool->poll = gst_poll_new_timer ();
pool->queue = gst_atomic_queue_new (10);
default_set_flushing (pool, TRUE);
@ -289,12 +291,13 @@ gst_buffer_pool_config_set (GstStructure * config, guint size,
{
g_return_if_fail (config != NULL);
gst_structure_set (config,
"size", G_TYPE_UINT, size,
"min-buffers", G_TYPE_UINT, min_buffers,
"max-buffers", G_TYPE_UINT, max_buffers,
"prefix", G_TYPE_UINT, prefix,
"postfix", G_TYPE_UINT, postfix, "align", G_TYPE_UINT, align, NULL);
gst_structure_id_set (config,
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 (POSTFIX), G_TYPE_UINT, postfix,
GST_QUARK (ALIGN), G_TYPE_UINT, align, NULL);
}
/**
@ -316,12 +319,13 @@ gst_buffer_pool_config_get (GstStructure * config, guint * size,
{
g_return_val_if_fail (config != NULL, FALSE);
return gst_structure_get (config,
"size", G_TYPE_UINT, size,
"min-buffers", G_TYPE_UINT, min_buffers,
"max-buffers", G_TYPE_UINT, max_buffers,
"prefix", G_TYPE_UINT, prefix,
"postfix", G_TYPE_UINT, postfix, "align", G_TYPE_UINT, align, NULL);
return gst_structure_id_get (config,
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 (POSTFIX), G_TYPE_UINT, postfix,
GST_QUARK (ALIGN), G_TYPE_UINT, align, NULL);
}
static GstFlowReturn

View file

@ -50,7 +50,8 @@ static const gchar *_quark_strings[] = {
"intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
"message", "GstMessageQOS", "running-time", "stream-time", "jitter",
"quality", "processed", "dropped", "buffering-ranges", "GstMessageProgress",
"code", "text", "percent", "timeout"
"code", "text", "percent", "timeout", "GstBufferPoolConfig", "size",
"min-buffers", "max-buffers", "prefix", "postfix", "align"
};
GQuark _priv_gst_quark_table[GST_QUARK_MAX];

View file

@ -132,8 +132,15 @@ typedef enum _GstQuarkId
GST_QUARK_TEXT = 103,
GST_QUARK_PERCENT = 104,
GST_QUARK_TIMEOUT = 105,
GST_QUARK_BUFFER_POOL_CONFIG = 106,
GST_QUARK_SIZE = 107,
GST_QUARK_MIN_BUFFERS = 108,
GST_QUARK_MAX_BUFFERS = 109,
GST_QUARK_PREFIX = 110,
GST_QUARK_POSTFIX = 111,
GST_QUARK_ALIGN = 112,
GST_QUARK_MAX = 106
GST_QUARK_MAX = 113
} GstQuarkId;
extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];