Jump to content

GstInterpipe: Difference between revisions

2,747 bytes added ,  28 April 2016
no edit summary
No edit summary
Line 150: Line 150:
| '''Name''' || colspan="2" | name
| '''Name''' || colspan="2" | name
|-
|-
| '''Description''' || colspan="2" | The name of the node
| '''Description''' || colspan="2" | The name of the node. It can only be set during construction.
|-
|-
| '''Special Values''' || colspan="2"|
| '''Special Values''' || colspan="2"|
Line 186: Line 186:
|-
|-
| '''Description''' || colspan="2" | Allow the interpipesrc to renegotiate caps when attached to an interpipesink with different caps.
| '''Description''' || colspan="2" | Allow the interpipesrc to renegotiate caps when attached to an interpipesink with different caps.
|-
| '''Special Values''' || colspan="2"|
|}
The switch can be disabled entirely by setting the ''block-switch'' property.
{| class="wikitable" style="margin:auto;"
|-
! colspan="3" | Property
|-
| '''Element''' || colspan="2" | interpipesrc
|-
| '''Name''' || colspan="2" | block-switch
|-
| '''Description''' || colspan="2" | Allow changing the node a listener is currently listening to.
|-
|-
| '''Special Values''' || colspan="2"|
| '''Special Values''' || colspan="2"|
Line 213: Line 227:


=== Event Forwarding ===
=== Event Forwarding ===
As with buffers, events can be transferred from the nodes to the listeners (and viceversa). GStreamer handles three types of events:
* '''Upstream Events''': events that travel contrary to the buffer flow
* '''Downstream Out-Of-Bounds Events''': events traveling in the same direction as the buffer flow, but sent immediately.
* '''Downstream In-Bounds Events''': events traveling in the same direction as the buffer flow, but sent serialised with the buffers.
GstInterpipe supports the three types of events, each one under different considerations. Additionally, the EOS is treated with special care, hence controlled by independent properties. The following sections describe these scenarios
==== Upstream Events ====
Upstream events are sent from the listeners to the node. Upstream events are only transferred if the event emitter is the only listener connected to the node. This was designed this way in order to avoid changing the node state to the other listeners. The following image describes this situations:
[[File:Events_upstream.png|600px|framed|center|Upstream events transfer]]
==== Downstream Out-Of-Bounds Events ====
Out-Of-Bounds downstream events are sent from the node to the listeners. These events are sent to all of the listeners as soon as they are received. By setting the ''forward-events'', the node can be configured to avoid sending events. By setting the ''accept-events'', individual listeners can be configured to avoid receiving events. The following tables summarise these properties:
{| class="wikitable" style="margin:auto;"
|-
! colspan="3" | Property
|-
| '''Element''' || colspan="2" | interpipesink
|-
| '''Name''' || colspan="2" | forward-events
|-
| '''Description''' || colspan="2" | Allow the interpipesink to forward any kind of events to the listeners
|-
| '''Special Values''' || colspan="2"|
|}
<br>
{| class="wikitable" style="margin:auto;"
|-
! colspan="3" | Property
|-
| '''Element''' || colspan="2" | interpipesrc
|-
| '''Name''' || colspan="2" | accept-events
|-
| '''Description''' || colspan="2" | Accept events coming from the node
|-
| '''Special Values''' || colspan="2"|
|}
Graphically, the following figure shows different configuration examples.
[[File:Events_downstream_oob.png|600px|framed|center|Downstream out-of-bounds event transfer]]


=== Timestamp Synchronization ===
=== Timestamp Synchronization ===
Cookies help us deliver our services. By using our services, you agree to our use of cookies.