gstreamer/docs/design/part-element-transform.txt

39 lines
1 KiB
Text
Raw Normal View History

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.