gstreamer/gst/base
Andy Wingo 4b908e33e0 gst/gstutils.c: RPAD fixes all around.
Original commit message from CVS:
2005-06-08  Andy Wingo  <wingo@pobox.com>

* gst/gstutils.c: RPAD fixes all around.
(gst_element_link_pads): Refcounting fixes.

* tools/gst-inspect.c:
* tools/gst-xmlinspect.c:
* parse/grammar.y:
* gst/base/gsttypefindhelper.c:
* gst/base/gstbasesink.c:
* gst/gstqueue.c: RPAD fixes.

* gst/gstghostpad.h:
* gst/gstghostpad.c: New ghost pad implementation as full proxy
pads. The tricky thing is they provide both source and sink
interfaces, since they proxy the internal pad for the external
pad, and vice versa. Implement with lower-level ProxyPad objects,
with the interior proxy pad as a child of the exterior ghost pad.
Should write a doc on this.

* gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/.
(gst_pad_set_name, gst_pad_set_parent): Macros removed, use
gst_object API.

* gst/gstpad.c: Big changes. No more stub base GstPad, now all
pads are real pads. No ghost pads in this file. Not documenting
the myriad s/RPAD/PAD/ and REALIZE fixes.
(gst_pad_class_init): Add properties for "direction" and
"template". Both are construct-only, so they can't change during
the life of the pad. Fixes properly deriving from GstPad.
(gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For
derived objects, just set properties when creating the objects via
g_object_new.
(gst_pad_get_parent): Implement as a function, return NULL if the
parent is not an element.
(gst_pad_get_real_parent, gst_pad_add_ghost_pad)
(gst_pad_remove_ghost_pad, gst_pad_realize): Removed.

* gst/gstobject.c (gst_object_class_init): Make name a construct
property. Don't set it in the object init.

* gst/gstelement.c (gst_element_add_pad): Don't allow adding pads
with UNKNOWN direction.
(gst_element_add_ghost_pad): Remove non-orthogonal API. Replace
with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)).
(gst_element_remove_pad): Remove ghost-pad special cases.
(gst_element_pads_activate): Remove rpad cruft.

* gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to
catch the pad's-parent-not-an-element case.

* gst/gst.h: Include gstghostpad.h.

* gst/gst.c (init_post): No more real, ghost pads.

* gst/Makefile.am: Add gstghostpad.[ch].

* check/Makefile.am:
* check/gst/gstbin.c:
* check/gst/gstghostpad.c (test_ghost_pads): Check that linking
into a bin creates ghost pads, and that the refcounts are right.
Partly moved from gstbin.c.
2005-06-08 22:16:27 +00:00
..
gstadapter.c gst/: Implement gst_pad_pause/start/stop_task(), take STREAM lock in task function. 2005-05-25 11:50:11 +00:00
gstadapter.h gst/base/: Ported and added adapter to the base classes. 2005-05-18 09:55:43 +00:00
gstbasesink.c gst/gstutils.c: RPAD fixes all around. 2005-06-08 22:16:27 +00:00
gstbasesink.h gst/: Bufferalloc: return GstFlowReturn to more accuratly report why allocation failed. 2005-06-02 09:42:02 +00:00
gstbasesrc.c gst/elements/gsttypefindelement.c (do_pull_typefind): Query the file size, pass it on to the type find helper. 2005-06-02 11:12:34 +00:00
gstbasesrc.h gst/base/: Added is_seekable to BaseSrc 2005-05-12 10:43:14 +00:00
gstbasetransform.c gst/elements/gstfakesink.c (gst_fakesink_render): Er, emit with 2005-05-11 03:37:10 +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
gstpushsrc.c gst/base/: Added is_seekable to BaseSrc 2005-05-12 10:43:14 +00:00
gstpushsrc.h gst/base/: Added is_seekable to BaseSrc 2005-05-12 10:43:14 +00:00
gsttypefindhelper.c gst/gstutils.c: RPAD fixes all around. 2005-06-08 22:16:27 +00:00
gsttypefindhelper.h Added typefind helper. 2005-04-12 10:52:55 +00:00
Makefile.am gst/base/: Ported and added adapter to the base classes. 2005-05-18 09:55:43 +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