X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgsttaskpool.h;h=3b654d99547eece2dcf795a88858079f6b364c53;hb=cc6342d853f4252c5d5cf09fff9d3379ad467fbc;hp=ff5106b68afb7a6ec99ef17ba189a001e6c41e18;hpb=4d326be6cff7b4f193dc166a6599fc320616e04b;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gsttaskpool.h b/gst/gsttaskpool.h index ff5106b..3b654d9 100644 --- a/gst/gsttaskpool.h +++ b/gst/gsttaskpool.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_TASK_POOL_H__ @@ -39,6 +39,14 @@ typedef struct _GstTaskPool GstTaskPool; typedef struct _GstTaskPoolClass GstTaskPoolClass; /** + * GstTaskPoolFunction: + * @user_data: user data for the task function + * + * Task function, see gst_task_pool_push(). + */ +typedef void (*GstTaskPoolFunction) (void *user_data); + +/** * GstTaskPool: * * The #GstTaskPool object. @@ -47,9 +55,6 @@ struct _GstTaskPool { GstObject object; /*< private >*/ - GFunc func; - gpointer user_data; - GThreadPool *pool; gpointer _gst_reserved[GST_PADDING]; @@ -69,32 +74,39 @@ struct _GstTaskPoolClass { GstObjectClass parent_class; /*< public >*/ - void (*prepare) (GstTaskPool *pool, GFunc func, - gpointer user_data, GError **error); + void (*prepare) (GstTaskPool *pool, GError **error); void (*cleanup) (GstTaskPool *pool); - gpointer (*push) (GstTaskPool *pool, gpointer data, GError **error); + gpointer (*push) (GstTaskPool *pool, GstTaskPoolFunction func, + gpointer user_data, GError **error); void (*join) (GstTaskPool *pool, gpointer id); /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; +GST_API GType gst_task_pool_get_type (void); +GST_API GstTaskPool * gst_task_pool_new (void); -void gst_task_pool_set_func (GstTaskPool *pool, - GFunc func, gpointer user_data); - +GST_API void gst_task_pool_prepare (GstTaskPool *pool, GError **error); -gpointer gst_task_pool_push (GstTaskPool *pool, gpointer data, - GError **error); +GST_API +gpointer gst_task_pool_push (GstTaskPool *pool, GstTaskPoolFunction func, + gpointer user_data, GError **error); +GST_API void gst_task_pool_join (GstTaskPool *pool, gpointer id); +GST_API void gst_task_pool_cleanup (GstTaskPool *pool); +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstTaskPool, gst_object_unref) +#endif + G_END_DECLS -#endif /* __GST_TASK_H__ */ +#endif /* __GST_TASK_POOL_H__ */