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.