diff --git a/gst/gstbufferpool.c b/gst/gstbufferpool.c index 5d5062998f..5d4796b013 100644 --- a/gst/gstbufferpool.c +++ b/gst/gstbufferpool.c @@ -35,6 +35,7 @@ #include #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 diff --git a/gst/gstquark.c b/gst/gstquark.c index 91a201271d..45ce87b2b1 100644 --- a/gst/gstquark.c +++ b/gst/gstquark.c @@ -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]; diff --git a/gst/gstquark.h b/gst/gstquark.h index 6e16ee5d7c..95f44891bd 100644 --- a/gst/gstquark.h +++ b/gst/gstquark.h @@ -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];