X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstpad.h;h=079eac3ac83b48da85eb58d1bdb2dacbd793291b;hb=133511040930ba119ee23cea936dd6a7210f08bb;hp=92bb5e13315e8ddf276519924c6fcb6b5730ec19;hpb=ed7d1b668b3a95c135f232828f820c0480c76332;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstpad.h b/gst/gstpad.h index 92bb5e1..079eac3 100644 --- a/gst/gstpad.h +++ b/gst/gstpad.h @@ -63,6 +63,7 @@ typedef enum { #include +GST_API const gchar * gst_pad_mode_get_name (GstPadMode mode); #include @@ -181,9 +182,14 @@ typedef enum { GST_FLOW_CUSTOM_ERROR_2 = -102 } GstFlowReturn; -const gchar* gst_flow_get_name (GstFlowReturn ret); -GQuark gst_flow_to_quark (GstFlowReturn ret); -const gchar* gst_pad_link_get_name (GstPadLinkReturn ret); +GST_API +const gchar * gst_flow_get_name (GstFlowReturn ret); + +GST_API +GQuark gst_flow_to_quark (GstFlowReturn ret); + +GST_API +const gchar * gst_pad_link_get_name (GstPadLinkReturn ret); /** * GstPadLinkCheck: @@ -532,8 +538,8 @@ typedef enum * @GST_PAD_PROBE_OK: normal probe return value. This leaves the probe in * place, and defers decisions about dropping or passing data to other * probes, if any. If there are no other probes, the default behaviour - * for the probe type applies (%GST_PAD_PROBE_DROP for blocking probes, - * and %GST_PAD_PROBE_PASS for non-blocking probes). + * for the probe type applies ('block' for blocking probes, + * and 'pass' for non-blocking probes). * @GST_PAD_PROBE_DROP: drop data in data probes. For push mode this means that * the data item is not sent downstream. For pull mode, it means that * the data item is not passed upstream. In both cases, no other probes @@ -606,9 +612,16 @@ struct _GstPadProbeInfo #define GST_PAD_PROBE_INFO_OFFSET(d) ((d)->offset) #define GST_PAD_PROBE_INFO_SIZE(d) ((d)->size) +GST_API GstEvent* gst_pad_probe_info_get_event (GstPadProbeInfo * info); + +GST_API GstQuery* gst_pad_probe_info_get_query (GstPadProbeInfo * info); + +GST_API GstBuffer* gst_pad_probe_info_get_buffer (GstPadProbeInfo * info); + +GST_API GstBufferList* gst_pad_probe_info_get_buffer_list (GstPadProbeInfo * info); /** @@ -1260,11 +1273,18 @@ struct _GstPadClass { #define GST_PAD_BLOCK_SIGNAL(pad) (g_cond_signal(GST_PAD_BLOCK_GET_COND (pad))) #define GST_PAD_BLOCK_BROADCAST(pad) (g_cond_broadcast(GST_PAD_BLOCK_GET_COND (pad))) +GST_API GType gst_pad_get_type (void); /* creating pads */ + +GST_API GstPad* gst_pad_new (const gchar *name, GstPadDirection direction); + +GST_API GstPad* gst_pad_new_from_template (GstPadTemplate *templ, const gchar *name); + +GST_API GstPad* gst_pad_new_from_static_template (GstStaticPadTemplate *templ, const gchar *name); @@ -1291,63 +1311,96 @@ GstPad* gst_pad_new_from_static_template (GstStaticPadTemplate *templ, const g */ #define gst_pad_get_parent(pad) gst_object_get_parent (GST_OBJECT_CAST (pad)) +GST_API GstPadDirection gst_pad_get_direction (GstPad *pad); +GST_API gboolean gst_pad_set_active (GstPad *pad, gboolean active); + +GST_API gboolean gst_pad_is_active (GstPad *pad); + +GST_API gboolean gst_pad_activate_mode (GstPad *pad, GstPadMode mode, gboolean active); - +GST_API gulong gst_pad_add_probe (GstPad *pad, GstPadProbeType mask, GstPadProbeCallback callback, gpointer user_data, GDestroyNotify destroy_data); +GST_API void gst_pad_remove_probe (GstPad *pad, gulong id); +GST_API gboolean gst_pad_is_blocked (GstPad *pad); + +GST_API gboolean gst_pad_is_blocking (GstPad *pad); +GST_API void gst_pad_mark_reconfigure (GstPad *pad); + +GST_API gboolean gst_pad_needs_reconfigure (GstPad *pad); + +GST_API gboolean gst_pad_check_reconfigure (GstPad *pad); +GST_API void gst_pad_set_element_private (GstPad *pad, gpointer priv); + +GST_API gpointer gst_pad_get_element_private (GstPad *pad); +GST_API GstPadTemplate* gst_pad_get_pad_template (GstPad *pad); +GST_API GstFlowReturn gst_pad_store_sticky_event (GstPad *pad, GstEvent *event); + +GST_API GstEvent* gst_pad_get_sticky_event (GstPad *pad, GstEventType event_type, guint idx); + +GST_API void gst_pad_sticky_events_foreach (GstPad *pad, GstPadStickyEventsForeachFunction foreach_func, gpointer user_data); /* data passing setup functions */ + +GST_API void gst_pad_set_activate_function_full (GstPad *pad, GstPadActivateFunction activate, gpointer user_data, GDestroyNotify notify); +GST_API void gst_pad_set_activatemode_function_full (GstPad *pad, GstPadActivateModeFunction activatemode, gpointer user_data, GDestroyNotify notify); /* data passing functions */ + +GST_API void gst_pad_set_chain_function_full (GstPad *pad, GstPadChainFunction chain, gpointer user_data, GDestroyNotify notify); +GST_API void gst_pad_set_chain_list_function_full (GstPad *pad, GstPadChainListFunction chainlist, gpointer user_data, GDestroyNotify notify); +GST_API void gst_pad_set_getrange_function_full (GstPad *pad, GstPadGetRangeFunction get, gpointer user_data, GDestroyNotify notify); +GST_API void gst_pad_set_event_function_full (GstPad *pad, GstPadEventFunction event, gpointer user_data, GDestroyNotify notify); +GST_API void gst_pad_set_event_full_function_full (GstPad *pad, GstPadEventFullFunction event, gpointer user_data, @@ -1362,10 +1415,13 @@ void gst_pad_set_event_full_function_full (GstPad *pad, #define gst_pad_set_event_full_function(p,f) gst_pad_set_event_full_function_full((p),(f),NULL,NULL) /* pad links */ + +GST_API void gst_pad_set_link_function_full (GstPad *pad, GstPadLinkFunction link, gpointer user_data, GDestroyNotify notify); +GST_API void gst_pad_set_unlink_function_full (GstPad *pad, GstPadUnlinkFunction unlink, gpointer user_data, @@ -1374,72 +1430,133 @@ void gst_pad_set_unlink_function_full (GstPad *pad, #define gst_pad_set_link_function(p,f) gst_pad_set_link_function_full((p),(f),NULL,NULL) #define gst_pad_set_unlink_function(p,f) gst_pad_set_unlink_function_full((p),(f),NULL,NULL) +GST_API gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad); + +GST_API GstPadLinkReturn gst_pad_link (GstPad *srcpad, GstPad *sinkpad); + +GST_API GstPadLinkReturn gst_pad_link_full (GstPad *srcpad, GstPad *sinkpad, GstPadLinkCheck flags); + +GST_API gboolean gst_pad_unlink (GstPad *srcpad, GstPad *sinkpad); + +GST_API gboolean gst_pad_is_linked (GstPad *pad); +GST_API GstPad* gst_pad_get_peer (GstPad *pad); +GST_API GstCaps* gst_pad_get_pad_template_caps (GstPad *pad); /* capsnego function for linked/unlinked pads */ + +GST_API GstCaps * gst_pad_get_current_caps (GstPad * pad); + +GST_API gboolean gst_pad_has_current_caps (GstPad * pad); /* capsnego for linked pads */ + +GST_API GstCaps * gst_pad_get_allowed_caps (GstPad * pad); /* pad offsets */ + +GST_API gint64 gst_pad_get_offset (GstPad *pad); + +GST_API void gst_pad_set_offset (GstPad *pad, gint64 offset); /* data passing functions to peer */ + +GST_API GstFlowReturn gst_pad_push (GstPad *pad, GstBuffer *buffer); + +GST_API GstFlowReturn gst_pad_push_list (GstPad *pad, GstBufferList *list); + +GST_API GstFlowReturn gst_pad_pull_range (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer); +GST_API gboolean gst_pad_push_event (GstPad *pad, GstEvent *event); + +GST_API gboolean gst_pad_event_default (GstPad *pad, GstObject *parent, GstEvent *event); +GST_API GstFlowReturn gst_pad_get_last_flow_return (GstPad *pad); /* data passing functions on pad */ + +GST_API GstFlowReturn gst_pad_chain (GstPad *pad, GstBuffer *buffer); + +GST_API GstFlowReturn gst_pad_chain_list (GstPad *pad, GstBufferList *list); + +GST_API GstFlowReturn gst_pad_get_range (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer); +GST_API gboolean gst_pad_send_event (GstPad *pad, GstEvent *event); /* pad tasks */ + +GST_API gboolean gst_pad_start_task (GstPad *pad, GstTaskFunction func, gpointer user_data, GDestroyNotify notify); +GST_API gboolean gst_pad_pause_task (GstPad *pad); + +GST_API gboolean gst_pad_stop_task (GstPad *pad); +GST_API +GstTaskState gst_pad_get_task_state (GstPad *pad); + /* internal links */ + +GST_API void gst_pad_set_iterate_internal_links_function_full (GstPad * pad, GstPadIterIntLinkFunction iterintlink, gpointer user_data, GDestroyNotify notify); + +GST_API GstIterator * gst_pad_iterate_internal_links (GstPad * pad); + +GST_API GstIterator * gst_pad_iterate_internal_links_default (GstPad * pad, GstObject *parent); #define gst_pad_set_iterate_internal_links_function(p,f) gst_pad_set_iterate_internal_links_function_full((p),(f),NULL,NULL) /* generic query function */ + +GST_API gboolean gst_pad_query (GstPad *pad, GstQuery *query); + +GST_API gboolean gst_pad_peer_query (GstPad *pad, GstQuery *query); + +GST_API void gst_pad_set_query_function_full (GstPad *pad, GstPadQueryFunction query, gpointer user_data, GDestroyNotify notify); +GST_API gboolean gst_pad_query_default (GstPad *pad, GstObject *parent, GstQuery *query); #define gst_pad_set_query_function(p,f) gst_pad_set_query_function_full((p),(f),NULL,NULL) /* misc helper functions */ + +GST_API gboolean gst_pad_forward (GstPad *pad, GstPadForwardFunction forward, gpointer user_data);