GstInterPipeIListener

GstInterPipeIListener

Functions

Types and Values

Object Hierarchy

    GInterface
    ╰── GstInterPipeIListener

Prerequisites

GstInterPipeIListener requires GObject.

Known Implementations

GstInterPipeIListener is implemented by GstInterPipeSrc.

Description

Interface to decouple specific nodes and listeners from the core.

Functions

GST_INTER_PIPE_TYPE_ILISTENER

#define GST_INTER_PIPE_TYPE_ILISTENER (gst_inter_pipe_ilistener_get_type())

gst_inter_pipe_ilistener_get_name ()

const gchar *
gst_inter_pipe_ilistener_get_name (GstInterPipeIListener *iface);

Return the name associated with the object implementing the interface.

Parameters

iface

The object to query the name from.

[transfer none][not nullable]

Returns

The name of the object implementing the interface.

[transfer none]


gst_inter_pipe_ilistener_get_caps ()

GstCaps *
gst_inter_pipe_ilistener_get_caps (GstInterPipeIListener *iface,
                                   gboolean *negotiated);

Return the set of supported caps of the element implementing the interface. This set of caps should consider the supported caps of the downstream elements. If the caps negotiation has already taken place, this caps should be the ones configured in the element and negotiated should be set to true.

Parameters

iface

The object to query the GstCaps from.

[transfer none][not nullable]

negotiated

Whether or not the listener already has the caps negotiated and configured in the element.

[out]

Returns

The GstCaps supported by the listener's pipeline.

[transfer full]


gst_inter_pipe_ilistener_set_caps ()

gboolean
gst_inter_pipe_ilistener_set_caps (GstInterPipeIListener *iface,
                                   const GstCaps *caps);

Set the given GstCaps in the listener. This caps should be forwarded to downstream elements.

Return: True if it was possible to set the given caps, False otherwise.

Parameters

iface

The object to set the GstCaps to.

[transfer none][not nullable]

caps

The GstCaps to set in the element.

[transfer none][not nullable]

gst_inter_pipe_ilistener_node_added ()

gboolean
gst_inter_pipe_ilistener_node_added (GstInterPipeIListener *iface,
                                     const gchar *node_name);

Callback that will be called whenever a new GstInterPipeINode is added. It is responsibility of the listener to decide whether or not it is interested in the newly added GstInterPipeINode.

Return: True always.

Parameters

iface

The object to notify when a new GstInterPipeINode is added.

[transfer none][not nullable]

node_name

The name of the newly connected GstInterPipeINode.

[transfer none][not nullable]

gst_inter_pipe_ilistener_node_removed ()

gboolean
gst_inter_pipe_ilistener_node_removed (GstInterPipeIListener *iface,
                                       const gchar *node_name);

Callback that will be called whenever a GstInterPipeINode is removed. It is responsibility of the listener to decide whether or not it is interested in the event.

Return: True always.

Parameters

iface

The object to notify when a GstInterPipeINode is added.

[transfer none][not nullable]

node_name

The name of the GstInterPipeINode that was removed.

[transfer none][not nullable]

gst_inter_pipe_ilistener_push_buffer ()

gboolean
gst_inter_pipe_ilistener_push_buffer (GstInterPipeIListener *iface,
                                      GstBuffer *buffer,
                                      guint64 basetime);

Push buffer to the downstream element. If required compensate the timestamp using basetime in order to get an equivalent buffer time.

Return: True if the buffer was successfully pushed, False otherwise.

Parameters

iface

The object that should push the GstBuffer downstream.

[transfer none][not nullable]

buffer

The GstBuffer to be pushed downstream.

[transfer full][not nullable]

basetime

The basetime of the node's pipeline. If required, the listener should compensate the buffer's timestamp using the node's base time and its own, in order to get an equivalent buffer time.

 

gst_inter_pipe_ilistener_push_event ()

gboolean
gst_inter_pipe_ilistener_push_event (GstInterPipeIListener *iface,
                                     GstEvent *event,
                                     guint64 basetime);

Push event to the downstream element. If required compensate the timestamp using basetime in order to get an equivalent event time.

Return: True if the event was successfully pushed, False otherwise.

Parameters

iface

The object that should push the GstEvent downstream.

[transfer none][not nullable]

event

The GstEvent to be pushed downstream.

[transfer full][not nullable]

basetime

The basetime of the node's pipeline. If required, the listener should compensate the event's timestamp using the node's base time and its own, in order to get an equivalent event time.

 

gst_inter_pipe_ilistener_send_eos ()

gboolean
gst_inter_pipe_ilistener_send_eos (GstInterPipeIListener *iface);

Push an EOS event to the downstream elements.

Return: True if the event was successfully pushed, False otherwise.

Parameters

iface

The object that should push the GstEvent downstream.

[transfer none][not nullable]

Types and Values

struct GstInterPipeIListenerInterface

struct GstInterPipeIListenerInterface {
  const gchar * (*get_name) (GstInterPipeIListener *iface);
  GstCaps * (*get_caps) (GstInterPipeIListener *iface, gboolean *negotiated);
  gboolean (*set_caps) (GstInterPipeIListener *iface, const GstCaps *caps);
  gboolean (* node_added) (GstInterPipeIListener *iface, const gchar *node_name);
  gboolean (* node_removed) (GstInterPipeIListener *iface, const gchar *node_removed);
  gboolean (* push_buffer) (GstInterPipeIListener *iface, GstBuffer *buffer, guint64 basetime);
  gboolean (* push_event) (GstInterPipeIListener *iface, GstEvent *event, guint64 basetime);
  gboolean (* send_eos) (GstInterPipeIListener *iface);
};

get_name : Return the name of the object implementing the interface. See gst_inter_pipe_ilistener_get_name.

get_caps : Return the set of supported caps. The element implementing the interface should consider it's downstream capabilities. Additionally, it should output through the negotiated variable whether or not caps are already configured in the element. See gst_inter_pipe_ilistener_get_caps.

set_caps : Configure the given caps into the element. This caps should be forwarded to downstream elements. See gst_inter_pipe_ilistener_set_caps.

node_added : Callback function that will be called whenever a new node is connected. It's responsibility of the listener to decide whether or not it is interested in the new node. See gst_inter_pipe_ilistener_node_added.

node_removed : Callback function that will be called whenever a node is disconnected. It's responsibility of the listener to decide whether or not it is interested in the node removal. See gst_inter_pipe_ilistener_node_removed.

push_buffer : Push the given buffer into the listener's pipeline. Furthermore, consider basetime in order to compensate its timestamp if required. See gst_inter_pipe_ilistener_push_buffer.

push_event : Push the given event into the listener's pipeline. Furthermore, consider basetime in order to compensate its timestamp if required. See gst_inter_pipe_ilistener_push_event.

send_eos : Send an EOS event into the listener's pipeline. See gst_inter_pipe_ilistener_send_eos.


GstInterPipeIListener

typedef struct _GstInterPipeIListener GstInterPipeIListener;

See Also

GstInterPipeINode