gstreamer/libs/gst/base
Andy Wingo 8970bda4ba 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.
2005-05-06 21:41:22 +00:00
..
gstbasesink.c gst/base/gstbasesink.c: Actually do something with error codes returned from the push functions. 2005-05-06 16:19:59 +00:00
gstbasesink.h Some more documentation. 2005-05-06 08:25:19 +00:00
gstbasesrc.c gst/gstquery.h 2005-05-06 21:41:22 +00:00
gstbasesrc.h Some more documentation. 2005-05-06 08:25:19 +00:00
gstbasetransform.c gst/: Fix gst_pad_peer_get_caps(), make it return NULL if no peer. 2005-05-06 17:10:49 +00:00
gstbasetransform.h gst/: Added start/stop methods to transform base class so subclasses don't need to deal with state changes even. 2005-03-31 10:10:55 +00:00
gstcollectpads.c gst/: Added object to help in making collect pad based elements. 2005-05-05 09:31:59 +00:00
gstcollectpads.h gst/: Added object to help in making collect pad based elements. 2005-05-05 09:31:59 +00:00
gsttypefindhelper.c gst/: Make gst_caps_replace() work like other _replace() functions. 2005-04-20 09:10:42 +00:00
gsttypefindhelper.h Added typefind helper. 2005-04-12 10:52:55 +00:00
Makefile.am gst/: Added object to help in making collect pad based elements. 2005-05-05 09:31:59 +00:00
README gst/: More work on the generic source base class, implement seeking, query. 2005-04-06 17:30:48 +00:00

Base classes
------------

GstBaseSink
 
  Base class for sink elements.

  - one sinkpad
  - handles state changes
  - does flushing
  - preroll with optional preview
  - pull/push mode
  - EOS handling

  FIXME: not much point making it operate in pull mode as a generic
  base class I guess... 

GstBaseTransform

  Base class for simple tranform filters

  - one sinkpad and one srcpad
  - formats the same on sink and source pad.
  - handles state changes
  - does flushing
  - push mode
  - pull mode if transform can operate on arbitrary data

GstBaseSrc

  Base class for getrange based source elements

  - one sinkpad
  - handles state changes
  - pull/push mode
  - handles seeking/query