gstreamer/docs/design/part-element-transform.txt
Wim Taymans 3f3536bf73 docs/design/part-element-transform.txt: Added some docs about the design of tranform elements.
Original commit message from CVS:
* docs/design/part-element-transform.txt:
Added some docs about the design of tranform elements.
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_loop), (gst_base_src_change_state):
Mark buffers with the DISCONT flag.
2006-03-08 13:44:55 +00:00

39 lines
1 KiB
Plaintext

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.