design: gstghostpad: various formatting fixes

- Add missing markup
- Drop manual padding on some figures

Also fix some minor grammar issues.
This commit is contained in:
Reynaldo H. Verdejo Pinochet 2016-12-21 23:51:46 -08:00
parent 1a5ab06a74
commit 3f89c720e1

View File

@ -6,65 +6,67 @@ element.
## Some design requirements ## Some design requirements
- Must look like a real GstPad on both sides. - Must look like a real `GstPad` on both sides.
- target of Ghostpad must be changeable - target of Ghostpad must be changeable
- target can be initially NULL - target can be initially NULL
- a GhostPad is implemented using a private GstProxyPad class: - a GhostPad is implemented using a private `GstProxyPad` class:
``` ```
GstProxyPad GstProxyPad
(------------------) (------------------)
| GstPad | | GstPad |
|------------------| |------------------|
| GstPad *target | | GstPad *target |
(------------------) (------------------)
| GstPad *internal | | GstPad *internal |
(------------------) (------------------)
GstGhostPad GstGhostPad
(------------------) -\ (------------------) -\
| GstPad | | | GstPad | |
|------------------| | |------------------| |
| GstPad *target | > GstProxyPad | GstPad *target | > GstProxyPad
|------------------| | |------------------| |
| GstPad *internal | | | GstPad *internal | |
|------------------| -/ |------------------| -/
| <private data> | | <private data> |
(------------------) (------------------)
``` ```
A GstGhostPad (X) is _always_ created together with a GstProxyPad (Y). A `GstGhostPad` (X) is _always_ created together with a `GstProxyPad` (Y).
The internal pad pointers are set to point to the eachother. The The internal pad pointers are set to point to eachother. The
GstProxyPad pairs have opposite directions, the GstGhostPad has the same `GstProxyPad` pairs have opposite directions, the `GstGhostPad` has the same
direction as the (future) ghosted pad (target). direction as the (future) ghosted pad (target).
(- X --------) ```
| | (- X --------)
| target * | | |
|------------| | target * |
| internal *----+ |------------|
(------------) | | internal *----+
^ V (------------) |
| (- Y --------) ^ V
| | | | (- Y --------)
| | target * | | | |
| |------------| | | target * |
+----* internal | | |------------|
(------------) +----* internal |
(------------)
Which we will abbreviate to: Which we will abbreviate to:
(- X --------) (- X --------)
| | | |
| target *--------->// | target *--------->//
(------------)
|
(- Y --------)
| target *----->//
(------------) (------------)
| ```
(- Y --------)
| target *----->//
(------------)
The GstGhostPad (X) is also set as the parent of the GstProxyPad (Y). The `GstGhostPad` (X) is also set as the parent of the `GstProxyPad` (Y).
The target is a pointer to the internal pads peer. It is an optimisation to The target is a pointer to the internal pads peer. It is an optimisation to
quickly get to the peer of a ghostpad without having to dereference the quickly get to the peer of a ghostpad without having to dereference the
@ -75,7 +77,9 @@ is modified.
## Creating a ghostpad with a target: ## Creating a ghostpad with a target:
gst_ghost_pad_new (char *name, GstPad *target) ```
gst_ghost_pad_new (char *name, GstPad *target)
```
1) create new GstGhostPad X + GstProxyPad Y 1) create new GstGhostPad X + GstProxyPad Y
2) X name set to @name 2) X name set to @name
@ -129,14 +133,14 @@ gst_ghost_pad_new_no_target (char *name, GstPadDirection dir)
``` ```
gst_ghost_pad_set_target (char *name, GstPad *newtarget) gst_ghost_pad_set_target (char *name, GstPad *newtarget)
(- X --------) (- X --------)
| | | |
| target *--------->// | target *--------->//
(------------)
|
(- Y --------)
| target *----->//
(------------) (------------)
|
(- Y --------)
| target *----->//
(------------)
``` ```
1) assert direction of newtarget == X direction 1) assert direction of newtarget == X direction
@ -209,7 +213,7 @@ gst_ghost_pad_set_target (char *name, GstPad *newtarget)
-------) -------)
``` ```
X is a sink GstGhostPad without a target. The internal GstProxyPad Y has X is a sink `GstGhostPad` without a target. The internal `GstProxyPad` Y has
the same direction as the src pad (peer). the same direction as the src pad (peer).
1) link function is called 1) link function is called