summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch')
-rw-r--r--media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch258
1 files changed, 0 insertions, 258 deletions
diff --git a/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch b/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
deleted file mode 100644
index 4c54083..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-From 7f071cf72491a9f60c886f4779c7d14d924bc43d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 May 2010 15:48:09 -0500
-Subject: [PATCH 3/5] add GstQueryBuffers query
-
-This query is used by buffer allocator, for example a video sink element,
-to find out any minimum buffer requirements of upstream elements that uses
-pad_alloc() to allocate buffers. For example, some cameras may have need
-for additional padding/boarder around the frame (for vstab), or some video
-decoders may have requirements for a certain minimum number of buffers (so
-they can hold refs to reference-frames)
----
- gst/gstquark.c | 3 +-
- gst/gstquark.h | 7 ++-
- gst/gstquery.c | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- gst/gstquery.h | 16 ++++++-
- 4 files changed, 164 insertions(+), 3 deletions(-)
-
-diff --git a/gst/gstquark.c b/gst/gstquark.c
-index 4073eb4..58badca 100644
---- a/gst/gstquark.c
-+++ b/gst/gstquark.c
-@@ -49,7 +49,8 @@ static const gchar *_quark_strings[] = {
- "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
- "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
- "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
-- "quality", "processed", "dropped", "buffering-ranges"
-+ "quality", "processed", "dropped", "buffering-ranges", "GstQueryBuffers",
-+ "caps", "count", "width", "height"
- };
-
- GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquark.h b/gst/gstquark.h
-index c95d9cd..f4c8e0f 100644
---- a/gst/gstquark.h
-+++ b/gst/gstquark.h
-@@ -127,8 +127,13 @@ typedef enum _GstQuarkId
- GST_QUARK_PROCESSED = 98,
- GST_QUARK_DROPPED = 99,
- GST_QUARK_BUFFERING_RANGES = 100,
-+ GST_QUARK_QUERY_BUFFERS = 101,
-+ GST_QUARK_CAPS = 102,
-+ GST_QUARK_COUNT = 103,
-+ GST_QUARK_WIDTH = 104,
-+ GST_QUARK_HEIGHT = 105,
-
-- GST_QUARK_MAX = 101
-+ GST_QUARK_MAX = 106
- } GstQuarkId;
-
- extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquery.c b/gst/gstquery.c
-index 9373175..4823ff0 100644
---- a/gst/gstquery.c
-+++ b/gst/gstquery.c
-@@ -96,6 +96,7 @@ static GstQueryTypeDefinition standard_definitions[] = {
- {GST_QUERY_BUFFERING, "buffering", "Buffering status", 0},
- {GST_QUERY_CUSTOM, "custom", "Custom query", 0},
- {GST_QUERY_URI, "uri", "URI of the source or sink", 0},
-+ {GST_QUERY_BUFFERS, "buffers", "Minimum buffer requirements", 0},
- {0, NULL, NULL, 0}
- };
-
-@@ -1480,3 +1481,143 @@ gst_query_parse_uri (GstQuery * query, gchar ** uri)
- *uri = g_value_dup_string (gst_structure_id_get_value (query->structure,
- GST_QUARK (URI)));
- }
-+
-+/**
-+ * gst_query_new_buffers:
-+ * @caps: the #GstCaps for the buffers that are going to be allocated
-+ *
-+ * Constructs a new buffer requirements query object to query buffer
-+ * requirements for a particular caps. Use gst_query_unref() when done
-+ * with it.
-+ *
-+ * Returns: A #GstQuery
-+ */
-+GstQuery *
-+gst_query_new_buffers (GstCaps * caps)
-+{
-+ GstQuery *query;
-+ GstStructure *structure;
-+
-+ /* XXX could add size here, for linear (non YUV/RGB) buffers? But I'm not
-+ * entirely sure what is the use-case for that.. it should be easy enough
-+ * to add more optional reply fields later
-+ */
-+ structure = gst_structure_id_new (GST_QUARK (QUERY_BUFFERS),
-+ GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
-+ GST_QUARK (COUNT), G_TYPE_INT, -1,
-+ GST_QUARK (WIDTH), G_TYPE_INT, -1,
-+ GST_QUARK (HEIGHT), G_TYPE_INT, -1, NULL);
-+
-+ query = gst_query_new (GST_QUERY_BUFFERS, structure);
-+
-+ return query;
-+}
-+
-+/**
-+ * gst_query_set_buffers_count:
-+ * @count: minimum number of buffers required
-+ *
-+ * Answer a buffers query by setting the minimum number of buffers required.
-+ * If there is no minimum buffer count requirement, don't set this field in
-+ * the query.
-+ */
-+void
-+gst_query_set_buffers_count (GstQuery * query, gint count)
-+{
-+ GstStructure *structure;
-+
-+ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+ structure = gst_query_get_structure (query);
-+ gst_structure_id_set (structure, GST_QUARK (COUNT), G_TYPE_INT, count, NULL);
-+}
-+
-+/**
-+ * gst_query_set_buffers_dimensions:
-+ * @width: minimum buffer width
-+ * @height: minimum buffer height
-+ *
-+ * Answer a buffers query by setting the minimum buffer dimensions required.
-+ * If there is no minimum buffer dimensions (beyond the width/height specified
-+ * in the #GstCaps), don't set this field in the query.
-+ */
-+void
-+gst_query_set_buffers_dimensions (GstQuery * query, gint width, gint height)
-+{
-+ GstStructure *structure;
-+
-+ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+ structure = gst_query_get_structure (query);
-+ gst_structure_id_set (structure,
-+ GST_QUARK (WIDTH), G_TYPE_INT, width,
-+ GST_QUARK (HEIGHT), G_TYPE_INT, height, NULL);
-+}
-+
-+/**
-+ * gst_query_parse_buffers_caps:
-+ * @query: a #GstQuery
-+ * @caps: the storage for the #GstCaps pointer, or NULL
-+ *
-+ * Parse a buffers query.
-+ */
-+void
-+gst_query_parse_buffers_caps (GstQuery * query, const GstCaps ** caps)
-+{
-+ GstStructure *structure;
-+
-+ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+ structure = gst_query_get_structure (query);
-+ if (caps)
-+ *caps = gst_value_get_caps (gst_structure_id_get_value (structure,
-+ GST_QUARK (CAPS)));
-+}
-+
-+/**
-+ * gst_query_parse_buffers_count:
-+ * @query: a #GstQuery
-+ * @count: the storage for minimum number of buffers, or NULL
-+ *
-+ * Parse a buffers query answer to see the minimum number of buffers
-+ * required. A returned value of -1 means there is no minimum requirement
-+ */
-+void
-+gst_query_parse_buffers_count (GstQuery * query, gint * count)
-+{
-+ GstStructure *structure;
-+
-+ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+ structure = gst_query_get_structure (query);
-+ if (count)
-+ *count = g_value_get_int (gst_structure_id_get_value (structure,
-+ GST_QUARK (COUNT)));
-+}
-+
-+/**
-+ * gst_query_parse_buffers_dimensions:
-+ * @query: a #GstQuery
-+ * @width: the storage for minimum width, or NULL
-+ * @height: the storage for minimum height, or NULL
-+ *
-+ * Parse a buffers query answer to see the minimum buffer dimensions required.
-+ * A returned value of -1 for either dimension means there is no minimum
-+ * requirement in that axis
-+ */
-+void
-+gst_query_parse_buffers_dimensions (GstQuery * query, gint * width,
-+ gint * height)
-+{
-+ GstStructure *structure;
-+
-+ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+ structure = gst_query_get_structure (query);
-+ if (width)
-+ *width = g_value_get_int (gst_structure_id_get_value (structure,
-+ GST_QUARK (WIDTH)));
-+ if (height)
-+ *height = g_value_get_int (gst_structure_id_get_value (structure,
-+ GST_QUARK (HEIGHT)));
-+}
-diff --git a/gst/gstquery.h b/gst/gstquery.h
-index 09d0225..ae1f5cd 100644
---- a/gst/gstquery.h
-+++ b/gst/gstquery.h
-@@ -31,6 +31,7 @@
- #include <gst/gstminiobject.h>
- #include <gst/gststructure.h>
- #include <gst/gstformat.h>
-+#include <gst/gstcaps.h>
-
- G_BEGIN_DECLS
-
-@@ -51,6 +52,9 @@ G_BEGIN_DECLS
- * @GST_QUERY_CUSTOM: a custom application or element defined query. Since
- * 0.10.22.
- * @GST_QUERY_URI: query the URI of the source or sink. Since 0.10.22.
-+ * @GST_QUERY_BUFFERS: query the upstream users of pad_alloc()'d buffers to
-+ * find any particular requirements about buffer size (padding) or numbers of
-+ * buffers. Since ?.?.?.
- *
- * Standard predefined Query types
- */
-@@ -69,7 +73,8 @@ typedef enum {
- GST_QUERY_FORMATS,
- GST_QUERY_BUFFERING,
- GST_QUERY_CUSTOM,
-- GST_QUERY_URI
-+ GST_QUERY_URI,
-+ GST_QUERY_BUFFERS
- } GstQueryType;
-
- /**
-@@ -336,6 +341,15 @@ GstQuery * gst_query_new_uri (void);
- void gst_query_parse_uri (GstQuery *query, gchar **uri);
- void gst_query_set_uri (GstQuery *query, const gchar *uri);
-
-+/* buffer requirements query */
-+GstQuery * gst_query_new_buffers (GstCaps * caps);
-+void gst_query_set_buffers_count (GstQuery * query, gint count);
-+void gst_query_set_buffers_dimensions (GstQuery * query, gint width, gint height);
-+void gst_query_parse_buffers_caps (GstQuery * query, const GstCaps ** caps);
-+void gst_query_parse_buffers_count (GstQuery * query, gint * count);
-+void gst_query_parse_buffers_dimensions (GstQuery * query, gint * width, gint * height);
-+
-+
- G_END_DECLS
-
- #endif /* __GST_QUERY_H__ */
---
-1.7.1
-