Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,5 @@ docs/plugins/sgml.stamp
docs/plugins/xml/
docs/version.entities
docs/plugins/inspect-registry.xml

.idea/
2 changes: 1 addition & 1 deletion common
Submodule common updated from dd9d40 to 52adcd
15 changes: 15 additions & 0 deletions gst/interpipe/gstinterpipeilistener.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,21 @@ gst_inter_pipe_ilistener_push_event (GstInterPipeIListener * self,
return iface->push_event (self, event, basetime);
}

gboolean
gst_inter_pipe_ilistener_query (GstInterPipeIListener * self, GstQuery * query)
{
GstInterPipeIListenerInterface *iface;

g_return_val_if_fail (GST_INTER_PIPE_IS_ILISTENER (self), FALSE);
g_return_val_if_fail (query, FALSE);

iface = GST_INTER_PIPE_ILISTENER_GET_IFACE (self);
g_return_val_if_fail (iface->query != NULL, FALSE);

return iface->query (self, query);
}


gboolean
gst_inter_pipe_ilistener_send_eos (GstInterPipeIListener * self)
{
Expand Down
14 changes: 14 additions & 0 deletions gst/interpipe/gstinterpipeilistener.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ struct _GstInterPipeIListenerInterface
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 (* query) (GstInterPipeIListener *iface, GstQuery *query);
gboolean (* send_eos) (GstInterPipeIListener *iface);
};

Expand Down Expand Up @@ -193,6 +194,19 @@ gboolean gst_inter_pipe_ilistener_push_buffer (GstInterPipeIListener *iface,
gboolean gst_inter_pipe_ilistener_push_event (GstInterPipeIListener *iface,
GstEvent *event, guint64 basetime);


/**
* gst_inter_pipe_ilistener_query:
* @iface: (transfer none)(not nullable): The object that should query the #GstQuery downstream.
* @event: (transfer full)(not nullable): The #GstQuery to be pushed downstream.
*
* Ask @query to the downstream element.
*
* Return: True if the query was successful, False otherwise.
*/
gboolean gst_inter_pipe_ilistener_query (GstInterPipeIListener *iface,
GstQuery *query);

/**
* gst_inter_pipe_ilistener_send_eos:
* @iface: (transfer none)(not nullable): The object that should push the #GstEvent downstream.
Expand Down
23 changes: 17 additions & 6 deletions gst/interpipe/gstinterpipeinode.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@
G_DEFINE_INTERFACE (GstInterPipeINode, gst_inter_pipe_inode, G_TYPE_OBJECT);

static void
gst_inter_pipe_inode_default_init (GstInterPipeINodeInterface * iface)
gst_inter_pipe_inode_default_init (GstInterPipeINodeInterface *iface)
{
//NOP
}

gboolean
gst_inter_pipe_inode_add_listener (GstInterPipeINode * self,
GstInterPipeIListener * listener)
gst_inter_pipe_inode_add_listener (GstInterPipeINode *self,
GstInterPipeIListener *listener)
{
GstInterPipeINodeInterface *iface;

Expand All @@ -54,8 +54,8 @@ gst_inter_pipe_inode_add_listener (GstInterPipeINode * self,
}

gboolean
gst_inter_pipe_inode_remove_listener (GstInterPipeINode * self,
GstInterPipeIListener * listener)
gst_inter_pipe_inode_remove_listener (GstInterPipeINode *self,
GstInterPipeIListener *listener)
{
GstInterPipeINodeInterface *iface;

Expand All @@ -68,7 +68,7 @@ gst_inter_pipe_inode_remove_listener (GstInterPipeINode * self,
}

gboolean
gst_inter_pipe_inode_receive_event (GstInterPipeINode * self, GstEvent * event)
gst_inter_pipe_inode_receive_event (GstInterPipeINode *self, GstEvent *event)
{
GstInterPipeINodeInterface *iface;

Expand All @@ -79,3 +79,14 @@ gst_inter_pipe_inode_receive_event (GstInterPipeINode * self, GstEvent * event)

return iface->receive_event (self, event);
}

gboolean
gst_inter_pipe_inode_send_query (GstInterPipeINode *self, GstQuery *query)
{
g_return_val_if_fail (GST_INTER_PIPE_IS_INODE (self), FALSE);
g_return_val_if_fail (GST_IS_QUERY (query), FALSE);

GstInterPipeINodeInterface *iface = GST_INTER_PIPE_INODE_GET_IFACE (self);
g_return_val_if_fail (iface->query != NULL, FALSE);
return iface->query (self, query);
}
3 changes: 3 additions & 0 deletions gst/interpipe/gstinterpipeinode.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ struct _GstInterPipeINodeInterface
gboolean (* add_listener) (GstInterPipeINode *iface, GstInterPipeIListener * listener);
gboolean (* remove_listener) (GstInterPipeINode *iface, GstInterPipeIListener * listener);
gboolean (* receive_event) (GstInterPipeINode *iface, GstEvent *event);
gboolean (* query) (GstInterPipeINode *iface, GstQuery *query);
};

/**
Expand Down Expand Up @@ -106,6 +107,8 @@ gboolean gst_inter_pipe_inode_receive_event (GstInterPipeINode *iface, GstEvent

GType gst_inter_pipe_inode_get_type (void);

gboolean gst_inter_pipe_inode_send_query (GstInterPipeINode *iface, GstQuery *query);

G_END_DECLS

#endif //__GST_INTER_PIPE_INODE_H__
Loading