Transform elements
------------------

Transform elements transform input buffers to output buffers based
on the sink and source caps.

typical transform elements include:

 - audio convertors (audioconvert, ...)
 - video convertors (colorspace, videoscale, audioconvert, ...)
 - filters (capfilter, colorbalance, 

The implementation of the transform element has to take care of
the following things:

 - efficient negotiation both up and downstream
 - efficient buffer alloc and other buffer management

Some transform elements can operate in different modes:

 - passthrough (no changes to buffers)
 - in-place (changes made to incomming buffer)
 - metadata changes only 
 
Depending on the mode of operation the buffer allocation strategy might change.


Negotiation
-----------

The transform element is configured to perform a specific transform in these
two situations:

 - new caps are received on the sink pad.
 - new caps are received on the source pad when allocating an output buffer and
   we can transform to these caps with the current input buffer.


