gst/gstquery.h
authorAndy Wingo <wingo@pobox.com>
Fri, 6 May 2005 21:41:22 +0000 (21:41 +0000)
committerAndy Wingo <wingo@pobox.com>
Fri, 6 May 2005 21:41:22 +0000 (21:41 +0000)
commit8970bda4baa0d1bad389c84853066c6458ed7c22
treed7e064f054c5120d38b7ace4ffce126587a29c73
parent1185aabed9d893b8eaa6b566ee1d50ce8fa6bebb
gst/gstquery.h

Original commit message from CVS:
2005-05-06  Andy Wingo  <wingo@pobox.com>

* gst/gstquery.h
* gst/gstquery.c (_gst_query_initialize): Extend GstQuery from
GstData, init a memchunk.
(standard_definitions): Add a few query types, deprecate a few.
(gst_query_get_type): New proc.
(_gst_query_copy, _gst_query_free, gst_query_new): GstData
implementation.
(gst_query_new_application, gst_query_get_structure): New public
procs.

* docs/design/draft-query.txt: Removed LINKS from the query types,
because all the rest can be dispatched to other pads -- seemed
ugly to have a query that couldn't be dispatched. internal_links
is fine as a pad method.

* gst/gstpad.h: Add query2 as a pad method, add the new functions
in gstpad.c, but maintain binary compatibility for the moment.
Will fix before 0.9 is out.

* gst/gstqueryutils.c:
* gst/gstqueryutils.h: New files, implement 3 methods for each
query type: parse_query, parse_response, and set. Probably need an
allocator as well.

* gst/gst.h: Add gstquery.h and gstqueryutils.h to the list.

* gst/elements/gstfilesink.c (gst_filesink_query2):
* gst/base/gstbasesrc.c (gst_basesrc_query2): Replace old query,
query_types, and formats methods.

* gst/gstpad.c (gst_pad_query2, gst_pad_query2_default)
(gst_pad_set_query2_function): New functions.
(gst_real_pad_init): Set query2_default as the default query2
function. Basically just dispatches to internally linked pads.

Needs review!

* gst/gstdata_private.h (_GST_DATA_INIT): Set data->refcount to 1
without using the atomic operations. Only one thread can possibly
be accessing the data at this point. Changed so as to avoid
gst_atomic operations.
16 files changed:
ChangeLog
docs/design/draft-query.txt
docs/gst/tmpl/gstquery.sgml
gst/base/gstbasesrc.c
gst/elements/gstfilesink.c
gst/gst.c
gst/gst.h
gst/gstdata_private.h
gst/gstpad.c
gst/gstpad.h
gst/gstquery.c
gst/gstquery.h
gst/gstqueryutils.c [new file with mode: 0644]
gst/gstqueryutils.h [new file with mode: 0644]
libs/gst/base/gstbasesrc.c
plugins/elements/gstfilesink.c