nleoperation

A NleOperation performs a transformation or mixing operation on the data from one or more NleSource, which is used to implement filters or effects.

Time Effects

An nleoperation that wraps a GstElement that transforms seek and segment times is considered a time effect. Nle only tries to support time effect's whose overall seek transformation:

  • Maps the time 0 to 0. So initial time-shifting effects are excluded (the inpoint can sometimes be used instead).
  • Is monotonically increasing. So reversing effects, and effects that jump backwards in the stream are excluded.
  • Can handle a reasonable GstClockTime, relative to the project. So this would exclude a time effect with an extremely large speed-up that would cause the converted GstClockTime seeks to overflow.
  • Is 'continuously reversible'. This essentially means that for every seek position found on the sink pad of the element, we can, to 'good enough' accuracy, calculate the corresponding seek position that was received on the source pad. Moreover, this calculation should correspond to how the element transforms its GstSegment time field. This is needed so that a seek can result in an accurate segment.

Note that a constant-rate-change effect that is not extremely fast or slow would satisfy these conditions.

For such a time effect, they should be configured in nle such that:

  • Their inpoint is 0. Otherwise this will introduce seeking problems in its nlecomposition.
  • They must share the same start and duration as all nleobjects of lower priority in its nlecomposition. Otherwise this will introduce jumps in playback.

Note that, at the moment, nle only converts the GstSegment time field which means the other fields, such as start and stop, can end up with non-meaningful values when time effects are involved. Moreover, it does not convert GstBuffer times either, which can result in them having non-meaningful values. In particular, this means that GstControlBinding-s will not work well with nlecomposition-s when they include time effects.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBin
                    ╰──NleObject
                        ╰──nleoperation

Factory details

Authors: – Wim Taymans , Edward Hervey

Classification:Filter/Editor

Rank – none

Plugin – gstnle

Package – GStreamer Editing Services

Pad Templates

sink%d

ANY

Presencerequest

Directionsink

Object typeGstPad


src

ANY

Presencealways

Directionsrc

Object typeGstPad


Signals

commit

gboolean
commit_callback (GstElement * param_0,
                 gboolean arg0,
                 gpointer udata)
def commit_callback (param_0, arg0, udata):
    #python callback for the 'commit' signal
function commit_callback(param_0: GstElement * param_0, arg0: gboolean arg0, udata: gpointer udata): {
    // javascript callback for the 'commit' signal
}

Parameters:

param_0
No description available
arg0
No description available
udata
No description available
Returns ( gboolean ) –
No description available

Flags: Run Last / Action


input-priority-changed

input_priority_changed_callback (GstElement * param_0,
                                 GstPad * arg0,
                                 guint arg1,
                                 gpointer udata)
def input_priority_changed_callback (param_0, arg0, arg1, udata):
    #python callback for the 'input-priority-changed' signal
function input_priority_changed_callback(param_0: GstElement * param_0, arg0: GstPad * arg0, arg1: guint arg1, udata: gpointer udata): {
    // javascript callback for the 'input-priority-changed' signal
}

Parameters:

param_0
No description available
arg0
No description available
arg1
No description available
udata
No description available

Flags: Run Last


Properties

active

“active” gboolean

Use this object in the NleComposition

Flags : Read / Write

Default value : true


async-handling

“async-handling” gboolean

The bin will handle Asynchronous state changes

Flags : Read / Write

Default value : false


caps

“caps” GstCaps *

Caps used to filter/choose the output stream

Flags : Read / Write

Default value :

ANY

duration

“duration” gint64

Outgoing duration (in nanoseconds)

Flags : Read / Write

Default value : 0


expandable

“expandable” gboolean

Expand to the full duration of the container composition

Flags : Read / Write

Default value : false


inpoint

“inpoint” guint64

The media start position (in nanoseconds)

Flags : Read / Write

Default value : 18446744073709551615


media-duration-factor

“media-duration-factor” gdouble

The relative rate caused by this object

Flags : Read / Write

Default value : 1


message-forward

“message-forward” gboolean

Forwards all children messages

Flags : Read / Write

Default value : false


priority

“priority” guint

The priority of the object (0 = highest priority)

Flags : Read / Write

Default value : 0


sinks

“sinks” gint

Specifies the number of sink pads the operation should provide. If the sinks property is -1 (the default) pads are only created as demanded via get_request_pad() calls on the element.

Flags : Read / Write

Default value : 1


start

“start” guint64

The start position relative to the parent (in nanoseconds)

Flags : Read / Write

Default value : 0


stop

“stop” guint64

The stop position relative to the parent (in nanoseconds)

Flags : Read

Default value : 0


The results of the search are