STATUS: pull on srcpads is outdated, they use _get
--------------------------------------------------

0) definitions:

All pads without further specifiers are assumed to belong to the element
in question.  The pad's peer is always denoted with ->peer.  If there's
question, pads will be prefixed with self-> and other-> as necessary.

All elements in this document have at most one source and one sink pad,
called srcpad and sinkpad. Multi-pad cases are supposed to be simple
extrapolations except in a couple strange cases, to be covered elsewhere.


1) loop functions:

A loop function will call gst_pad_pull(sinkpad), do something, and call
gst_pad_push(srcpad).

gst_pad_pull first checks to see if there's a buffer in the pen.  If not,
it calls that pad's pullfunc handler, passing it the peer pad.  When that
finishes, we check again and return the buffer.  If no buffer, we squawk.
The pullfunc handler simply causes a cothread switch to the peer pad's
context;

gst_pad_push places the buffer in the peer pad's pen, and calls the local
pad's pushfunc.  The pushfunc simply causes a switch to the peer pad's
context.


2) chain functions

The loopfunc constructed around a chain function starts by finding all
sink pads.  For each sink pad, it calls gst_pad_pull.  This causes a
switch to the peer pad's context and a buffer to appear, which is
returned.  The pad is the handed off to the chain function, which
presumably does some processing and calls gst_pad_push(), which causes a
context switch to that pad's peer.



3) source

The loopfunc must repeatedly call the srcpad's pull





---------------------------------	---------------------------------
 srcpad				|	| sinkpad
				|	|
 GstPad *peer;			| <-p->	| GstPad *peer;
   pointer to peer pad		|	|   pointer to peer pad
				|	|
 funcptr *pushfunc;		| --s->	| funcptr *pushfunc;
   causes switch to peer ctx	|	|   element uses buffer in pen,
				|	|
 funcptr *pullfunc;		| <-s--	| funcptr *pullfunc;
   element puts buffer in pen,	|	|   causes switch to peer ctx
   calls gst_pad_push()		|	|
				|	|
 funcptr *pullregion func	| <-s--	| funcptr *pullregionfunc;
   element puts region in pen	|	|   causes switch to peer ctx
   calls gst_pad_push()		|	|
---------------------------------	---------------------------------
