diff --git a/docs/design/draft-ghostpads.txt b/docs/design/draft-ghostpads.txt deleted file mode 100644 index 0bde945fea..0000000000 --- a/docs/design/draft-ghostpads.txt +++ /dev/null @@ -1,108 +0,0 @@ -Ghostpads ---------- - -Status: - - DRAFT. DEPRECATED by better current implementation. - - -Purpose: - - To create compound elements that look and behave like real elements - one needs to be able to expose pads on the element that are not - implemented by the element itself but by one of its components. - - ex1: - - Consider an rtp receiver element. It uses 2 UDP input ports to - capture RTP and RTCP messages using UDP. These messages are - then processed by an rtpsession element, which will reorder, make - statistics, and generate the RTP and RTCP messages. - - This element can be build from existing elements as shown in the - figure below. - - +------------------------------------+ - | rtpsrc | - | | - | +--------+ +---------+ | - | | udpsrc | | rtpsess | | - | | port1 --- ---------------- - | +--------+ | | | - | +--------+ | | +---------+ | - | | udpsrc | | | | udpsink | | - | | port2 --- --- port3 | | - | +--------+ +---------+ +---------+ | - +------------------------------------+ - - The element has one output pad that contains the raw RTP data. This - pad will be connected to the next element that will decode the RTP - data. Since this pad is actually from the rtpsession element, there - has to be a way to expose this pad on the rtpsrc element. - - -Current implementation: - - Version 0.8 creates a new GstGhostPad type that extends GstPad and has - a link to the real pad internally. - - Any operation on a pad potentially requires to check if this pad is a - GhostPad and if so, follow the pointer to the real pad to perform the - pad operation. - - -Current problem: - - - following the ghostpad to resolve the real pad adds code. - - operations on pads are not performed on the ghostpad but on the - real pad. This means: - - pads are not linked to a ghostpad but to the real pad. For - compound objects, the link is not really performed to the - pad of the compound element but with some internal pad. - - for state changes, it is hard to follow linked elements upstream - bacause pads enter bins to the real element. - - -Proposal: - - - The pad still has one parent, the element that owns (has sinked) the - pad. the GST_OBJECT_PARENT() is the real parent. - - - The pad receives a GList of ghostparents. Ghostparents are sorted by depth. - - - When a pad is ghostparented to another element, the element is added to - the ghostparent list of the pad. The pad is added to the padlist of the - element. - - - A pad cannot be ghostparented to an element that is not a parent of the - pad parent element. this ensures that all ghostpads do not skip an hierarchy. - - - When a pad is removed from the parent element, it is also removed from all - the ghostparents. This is easy to do as you can follow the ghostparent list of - that pad. - - - When an element is removed from another element, all the elements pads - ghostparented to parents of the element are removed as well. This is easy - to do with the sorted ghostparent list of the pad. - - -Consequences: - - - All pads are Real pads. - - All operations are performed on the real pads. This improves performance - and code simplicity - - more checks can be done. Linking nested elements can be done sanely. - compount elements that expose usable pads must ghostpad them before they - can be linked. - - All linked pads have a common grandparent. - - -Issues: - - - Name of ghostpad cannot be changed and is the name of the element. This could - be solved by temporarily renaming the pad when ghostpadding. This could then - again result in the element being confused about the padnames or the - element having two pads with the same name. - - - diff --git a/docs/design/draft-latency.txt b/docs/design/part-latency.txt similarity index 100% rename from docs/design/draft-latency.txt rename to docs/design/part-latency.txt diff --git a/docs/design/draft-missing-plugins.txt b/docs/design/part-missing-plugins.txt similarity index 100% rename from docs/design/draft-missing-plugins.txt rename to docs/design/part-missing-plugins.txt diff --git a/docs/design/draft-stream-status.txt b/docs/design/part-stream-status.txt similarity index 100% rename from docs/design/draft-stream-status.txt rename to docs/design/part-stream-status.txt