From 0b44c713a7681c604effffae79714d23dbbdb6b2 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Mon, 27 Jun 2005 14:40:09 +0000 Subject: [PATCH] adding basetransform and iterator docs Original commit message from CVS: adding basetransform and iterator docs --- ChangeLog | 17 +++ docs/gst/gstreamer-docs.sgml | 10 +- docs/gst/gstreamer-sections.txt | 65 ++++++++++ docs/gst/gstreamer.types | 2 + docs/gst/tmpl/gstbasesink.sgml | 31 +++++ docs/gst/tmpl/gstbasesrc.sgml | 34 +++++ docs/gst/tmpl/gstbasetransform.sgml | 34 +++++ docs/gst/tmpl/gstelement.sgml | 9 ++ docs/gst/tmpl/gstiterator.sgml | 245 ++++++++++++++++++++++++++++++++++++ gst/base/gstbasesrc.c | 2 +- gst/base/gstbasesrc.h | 17 +-- gst/base/gstbasetransform.h | 24 ++-- gst/gstelement.c | 2 +- gst/gstiterator.h | 46 +++---- libs/gst/base/gstbasesrc.c | 2 +- libs/gst/base/gstbasesrc.h | 17 +-- libs/gst/base/gstbasetransform.h | 24 ++-- 17 files changed, 523 insertions(+), 58 deletions(-) create mode 100644 docs/gst/tmpl/gstbasetransform.sgml create mode 100644 docs/gst/tmpl/gstiterator.sgml diff --git a/ChangeLog b/ChangeLog index a044ded..2959246 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2005-06-27 Thomas Vander Stichele + + * docs/gst/gstreamer-docs.sgml: + * docs/gst/gstreamer-sections.txt: + * docs/gst/gstreamer.types: + * docs/gst/tmpl/gstbasesink.sgml: + * docs/gst/tmpl/gstbasesrc.sgml: + * docs/gst/tmpl/gstbasetransform.sgml: + * docs/gst/tmpl/gstelement.sgml: + * docs/gst/tmpl/gstiterator.sgml: + * gst/base/gstbasesrc.c: + * gst/base/gstbasesrc.h: + * gst/base/gstbasetransform.h: + * gst/gstelement.c: + * gst/gstiterator.h: + adding basetransform and iterator docs + 2005-06-27 Andy Wingo * docs/design/part-activation.txt: Notes on how activation should diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml index cc3d044..e69d89e 100644 --- a/docs/gst/gstreamer-docs.sgml +++ b/docs/gst/gstreamer-docs.sgml @@ -8,7 +8,9 @@ + @@ -22,6 +24,7 @@ + @@ -34,7 +37,6 @@ - @@ -57,6 +59,7 @@ + @@ -112,6 +115,7 @@ &GstIndex; &GstIndexFactory; &GstInfo; + &GstIterator; &GstObject; &GstPad; &GstPadTemplate; @@ -122,7 +126,6 @@ &GstProbe; &GstQuery; &GstQueue; - &GstRealPad; &GstRegistry; &GstRegistryPool; &GstScheduler; @@ -154,6 +157,7 @@ + GStreamer Core Elements @@ -204,6 +209,7 @@ &GstBaseSrc; &GstBaseSink; + &GstBaseTransform; diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 99e395a..374e701 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -323,6 +323,7 @@ gst_element_get_state gst_element_set_state gst_element_state_get_name gst_element_get_factory +gst_element_get_manager gst_element_no_more_pads GST_ELEMENT @@ -700,6 +701,43 @@ gst_implements_interface_get_type
+gstiterator +GstIterator +GstIterator + +GstIteratorItem +GstIteratorResult + +GstIteratorDisposeFunction +GstIteratorNextFunction +GstIteratorItemFunction +GstIteratorResyncFunction +GstIteratorFreeFunction +GstIteratorFoldFunction + +GST_ITERATOR +GST_ITERATOR_LOCK +GST_ITERATOR_COOKIE +GST_ITERATOR_ORIG_COOKIE + +gst_iterator_new +gst_iterator_new_list + +gst_iterator_next +gst_iterator_resync +gst_iterator_free +gst_iterator_push +gst_iterator_filter +gst_iterator_fold +gst_iterator_foreach +gst_iterator_find_custom + + + + +
+ +
gstmacros GstMacros @@ -1693,12 +1731,19 @@ gst_filesink_get_type GstBaseSrc GstBaseSrc GstBaseSrcClass +GstBaseSrcFlags + +gst_basesrc_is_live +gst_basesrc_set_live + +GST_BASESRC_PAD GST_BASESRC GST_IS_BASESRC GST_TYPE_BASESRC GST_BASESRC_CLASS GST_IS_BASESRC_CLASS +GST_BASESRC_GET_CLASS gst_basesrc_get_type
@@ -1708,6 +1753,10 @@ gst_basesrc_get_type gstbasesink GstBaseSink GstBaseSink +GstBaseSinkClass + +GST_BASESINK_CLOCK +GST_BASESINK_PAD GstBaseSinkClass @@ -1720,3 +1769,19 @@ GST_BASESINK_GET_CLASS gst_basesink_get_type + +
+gstbasetransform +GstBaseTransform +GstBaseTransform +GstBaseTransformClass + +GST_BASETRANSFORM +GST_IS_BASETRANSFORM +GST_TYPE_BASETRANSFORM +GST_BASETRANSFORM_CLASS +GST_IS_BASETRANSFORM_CLASS +GST_BASETRANSFORM_GET_CLASS + +gst_basetransform_get_type +
diff --git a/docs/gst/gstreamer.types b/docs/gst/gstreamer.types index 252209b..a47a631 100644 --- a/docs/gst/gstreamer.types +++ b/docs/gst/gstreamer.types @@ -33,9 +33,11 @@ gst_xml_get_type #include #include +#include gst_basesrc_get_type gst_basesink_get_type +gst_base_transform_get_type % elements diff --git a/docs/gst/tmpl/gstbasesink.sgml b/docs/gst/tmpl/gstbasesink.sgml index 1c1cf46..65b2f63 100644 --- a/docs/gst/tmpl/gstbasesink.sgml +++ b/docs/gst/tmpl/gstbasesink.sgml @@ -35,3 +35,34 @@ GstBaseSink + + + + + +@parent_class: +@get_caps: +@set_caps: +@buffer_alloc: +@get_times: +@unlock: +@event: +@preroll: +@render: + + + + + + +@obj: + + + + + + + +@obj: + + diff --git a/docs/gst/tmpl/gstbasesrc.sgml b/docs/gst/tmpl/gstbasesrc.sgml index b388bf6..82b5451 100644 --- a/docs/gst/tmpl/gstbasesrc.sgml +++ b/docs/gst/tmpl/gstbasesrc.sgml @@ -68,3 +68,37 @@ GstBaseSrc @event: @create: + + + + + +@GST_BASESRC_STARTED: +@GST_BASESRC_FLAG_LAST: + + + + + + +@src: +@Returns: + + + + + + + +@src: +@live: + + + + + + + +@obj: + + diff --git a/docs/gst/tmpl/gstbasetransform.sgml b/docs/gst/tmpl/gstbasetransform.sgml new file mode 100644 index 0000000..ce816ed --- /dev/null +++ b/docs/gst/tmpl/gstbasetransform.sgml @@ -0,0 +1,34 @@ + +GstBaseTransform + + + + + + + + + + + + + + + + + + + + + + + + + +@parent_class: +@set_caps: +@start: +@stop: +@event: +@transform: + diff --git a/docs/gst/tmpl/gstelement.sgml b/docs/gst/tmpl/gstelement.sgml index 9c33422..3c20fa5 100644 --- a/docs/gst/tmpl/gstelement.sgml +++ b/docs/gst/tmpl/gstelement.sgml @@ -711,6 +711,15 @@ Sets the parent of an element. @Returns: + + + + + +@element: +@Returns: + + diff --git a/docs/gst/tmpl/gstiterator.sgml b/docs/gst/tmpl/gstiterator.sgml new file mode 100644 index 0000000..307d499 --- /dev/null +++ b/docs/gst/tmpl/gstiterator.sgml @@ -0,0 +1,245 @@ + +GstIterator + + + + + + + + + + + + + + + + + + + +@next: +@item: +@resync: +@free: +@pushed: +@lock: +@cookie: +@master_cookie: + + + + + + +@GST_ITERATOR_ITEM_SKIP: +@GST_ITERATOR_ITEM_PASS: +@GST_ITERATOR_ITEM_END: + + + + + + +@GST_ITERATOR_DONE: +@GST_ITERATOR_OK: +@GST_ITERATOR_RESYNC: +@GST_ITERATOR_ERROR: + + + + + + +@owner: + + + + + + + +@it: +@result: +@Returns: + + + + + + + +@it: +@item: +@Returns: + + + + + + + +@it: + + + + + + + +@it: + + + + + + + +@item: +@ret: +@user_data: +@Returns: + + + + + + + +@it: + + + + + + + +@it: + + + + + + + +@it: + + + + + + + +@it: + + + + + + + +@size: +@lock: +@master_cookie: +@next: +@item: +@resync: +@free: +@Returns: + + + + + + + +@lock: +@master_cookie: +@list: +@owner: +@item: +@free: +@Returns: + + + + + + + +@it: +@result: +@Returns: + + + + + + + +@it: + + + + + + + +@it: + + + + + + + +@it: +@other: + + + + + + + +@it: +@func: +@user_data: +@Returns: + + + + + + + +@iter: +@func: +@ret: +@user_data: +@Returns: + + + + + + + +@iter: +@func: +@user_data: +@Returns: + + + + + + + +@it: +@func: +@user_data: +@Returns: + + diff --git a/gst/base/gstbasesrc.c b/gst/base/gstbasesrc.c index 70b58bb..6600ade 100644 --- a/gst/base/gstbasesrc.c +++ b/gst/base/gstbasesrc.c @@ -2,7 +2,7 @@ * Copyright (C) 1999,2000 Erik Walthinsen * 2000,2005 Wim Taymans * - * gstbasesrc.c: + * gstbasesrc.c: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public diff --git a/gst/base/gstbasesrc.h b/gst/base/gstbasesrc.h index 30c8046..76a1370 100644 --- a/gst/base/gstbasesrc.h +++ b/gst/base/gstbasesrc.h @@ -28,12 +28,12 @@ G_BEGIN_DECLS -#define GST_TYPE_BASESRC (gst_basesrc_get_type()) -#define GST_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASESRC,GstBaseSrc)) -#define GST_BASESRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASESRC,GstBaseSrcClass)) +#define GST_TYPE_BASESRC (gst_basesrc_get_type()) +#define GST_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASESRC,GstBaseSrc)) +#define GST_BASESRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASESRC,GstBaseSrcClass)) #define GST_BASESRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BASESRC, GstBaseSrcClass)) -#define GST_IS_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASESRC)) -#define GST_IS_BASESRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASESRC)) +#define GST_IS_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASESRC)) +#define GST_IS_BASESRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASESRC)) typedef enum { GST_BASESRC_STARTED = GST_ELEMENT_FLAG_LAST, @@ -52,7 +52,7 @@ typedef enum { typedef struct _GstBaseSrc GstBaseSrc; typedef struct _GstBaseSrcClass GstBaseSrcClass; -#define GST_BASESRC_PAD(obj) (GST_BASESRC (obj)->srcpad) +#define GST_BASESRC_PAD(obj) (GST_BASESRC (obj)->srcpad) #define GST_LIVE_GET_LOCK(elem) (GST_BASESRC(elem)->live_lock) #define GST_LIVE_LOCK(elem) g_mutex_lock(GST_LIVE_GET_LOCK(elem)) @@ -70,7 +70,8 @@ struct _GstBaseSrc { GstElement element; GstPad *srcpad; - /* only for subclass implementations */ + /*< public >*/ + /* available to subclass implementations */ /* MT-protected (with LIVE_LOCK) */ GMutex *live_lock; GCond *live_cond; @@ -105,6 +106,8 @@ struct _GstBaseSrcClass { GstElementClass parent_class; /*< public >*/ + /* virtual methods for subclasses */ + /* get caps from subclass */ GstCaps* (*get_caps) (GstBaseSrc *src); /* notify the subclass of new caps */ diff --git a/gst/base/gstbasetransform.h b/gst/base/gstbasetransform.h index b110d8e..66b4176 100644 --- a/gst/base/gstbasetransform.h +++ b/gst/base/gstbasetransform.h @@ -2,7 +2,7 @@ * Copyright (C) 1999,2000 Erik Walthinsen * 2005 Wim Taymans * - * gstbasetransform.h: + * gstbasetransform.h: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -28,12 +28,12 @@ G_BEGIN_DECLS -#define GST_TYPE_BASE_TRANSFORM (gst_base_transform_get_type()) -#define GST_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_TRANSFORM,GstBaseTransform)) +#define GST_TYPE_BASE_TRANSFORM (gst_base_transform_get_type()) +#define GST_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_TRANSFORM,GstBaseTransform)) #define GST_BASE_TRANSFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASE_TRANSFORM,GstBaseTransformClass)) #define GST_BASE_TRANSFORM_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj),GST_TYPE_BASE_TRANSFORM,GstBaseTransformClass)) -#define GST_IS_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_TRANSFORM)) +#define GST_IS_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_TRANSFORM)) #define GST_IS_BASE_TRANSFORM_CLASS(obj)(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_TRANSFORM)) /* the names of the templates for the sink and source pads */ @@ -44,26 +44,34 @@ typedef struct _GstBaseTransform GstBaseTransform; typedef struct _GstBaseTransformClass GstBaseTransformClass; struct _GstBaseTransform { - GstElement element; + GstElement element; /* source and sink pads */ - GstPad *sinkpad; - GstPad *srcpad; + GstPad *sinkpad; + GstPad *srcpad; }; struct _GstBaseTransformClass { GstElementClass parent_class; + /*< public >*/ + /* virtual methods for subclasses */ + + + /* notify the subclass of new caps */ gboolean (*set_caps) (GstBaseTransform *trans, GstCaps *caps); + /* start and stop processing, ideal for opening/closing the resource */ gboolean (*start) (GstBaseTransform *trans); gboolean (*stop) (GstBaseTransform *trans); gboolean (*event) (GstBaseTransform *trans, GstEvent *event); + + /* transform one incoming buffer to one outgoing buffer */ GstFlowReturn (*transform) (GstBaseTransform *trans, GstBuffer *inbuf, GstBuffer **outbuf); }; -GType gst_base_transform_get_type(void); +GType gst_base_transform_get_type (void); G_END_DECLS diff --git a/gst/gstelement.c b/gst/gstelement.c index f9351a3..77ef5f2 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -2230,7 +2230,7 @@ gst_element_set_manager (GstElement * element, GstPipeline * manager) * gst_element_get_manager: * @element: a #GstElement to get the manager of. * - * Returns the manager of the element. + * Returns the manager of the element. * * Returns: the element's #GstPipeline. unref after usage. * diff --git a/gst/gstiterator.h b/gst/gstiterator.h index 69c2c75..cd3e3fe 100644 --- a/gst/gstiterator.h +++ b/gst/gstiterator.h @@ -28,18 +28,18 @@ G_BEGIN_DECLS typedef enum { - GST_ITERATOR_DONE = 0, /* no more items in the iterator */ - GST_ITERATOR_OK = 1, /* item retrieved */ - GST_ITERATOR_RESYNC = 2, /* datastructures changed while iterating */ - GST_ITERATOR_ERROR = 3, /* some error happened */ + GST_ITERATOR_DONE = 0, /* no more items in the iterator */ + GST_ITERATOR_OK = 1, /* item retrieved */ + GST_ITERATOR_RESYNC = 2, /* datastructures changed while iterating */ + GST_ITERATOR_ERROR = 3, /* some error happened */ } GstIteratorResult; typedef struct _GstIterator GstIterator; typedef enum { - GST_ITERATOR_ITEM_SKIP = 0, /* skip item */ - GST_ITERATOR_ITEM_PASS = 1, /* return item */ - GST_ITERATOR_ITEM_END = 2, /* stop after this item */ + GST_ITERATOR_ITEM_SKIP = 0, /* skip item */ + GST_ITERATOR_ITEM_PASS = 1, /* return item */ + GST_ITERATOR_ITEM_END = 2, /* stop after this item */ } GstIteratorItem; typedef void (*GstIteratorDisposeFunction) (gpointer owner); @@ -51,10 +51,10 @@ typedef void (*GstIteratorFreeFunction) (GstIterator *it); typedef gboolean (*GstIteratorFoldFunction) (gpointer item, GValue *ret, gpointer user_data); -#define GST_ITERATOR(it) ((GstIterator*)(it)) -#define GST_ITERATOR_LOCK(it) (GST_ITERATOR(it)->lock) -#define GST_ITERATOR_COOKIE(it) (GST_ITERATOR(it)->cookie) -#define GST_ITERATOR_ORIG_COOKIE(it) (GST_ITERATOR(it)->master_cookie) +#define GST_ITERATOR(it) ((GstIterator*)(it)) +#define GST_ITERATOR_LOCK(it) (GST_ITERATOR(it)->lock) +#define GST_ITERATOR_COOKIE(it) (GST_ITERATOR(it)->cookie) +#define GST_ITERATOR_ORIG_COOKIE(it) (GST_ITERATOR(it)->master_cookie) struct _GstIterator { GstIteratorNextFunction next; @@ -64,27 +64,27 @@ struct _GstIterator { GstIterator *pushed; /* pushed iterator */ - GMutex *lock; + GMutex *lock; guint32 cookie; /* cookie of the iterator */ guint32 *master_cookie; /* pointer to guint32 holding the cookie when this iterator was created */ }; - + /* creating iterators */ -GstIterator* gst_iterator_new (guint size, - GMutex *lock, +GstIterator* gst_iterator_new (guint size, + GMutex *lock, guint32 *master_cookie, - GstIteratorNextFunction next, - GstIteratorItemFunction item, - GstIteratorResyncFunction resync, - GstIteratorFreeFunction free); + GstIteratorNextFunction next, + GstIteratorItemFunction item, + GstIteratorResyncFunction resync, + GstIteratorFreeFunction free); -GstIterator* gst_iterator_new_list (GMutex *lock, +GstIterator* gst_iterator_new_list (GMutex *lock, guint32 *master_cookie, GList **list, gpointer owner, - GstIteratorItemFunction item, - GstIteratorDisposeFunction free); + GstIteratorItemFunction item, + GstIteratorDisposeFunction free); /* using iterators */ GstIteratorResult gst_iterator_next (GstIterator *it, gpointer *result); @@ -101,7 +101,7 @@ GstIteratorResult gst_iterator_fold (GstIterator *iter, GValue *ret, gpointer user_data); GstIteratorResult gst_iterator_foreach (GstIterator *iter, GFunc func, gpointer user_data); -gpointer gst_iterator_find_custom (GstIterator *it, GCompareFunc func, +gpointer gst_iterator_find_custom (GstIterator *it, GCompareFunc func, gpointer user_data); G_END_DECLS diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index 70b58bb..6600ade 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -2,7 +2,7 @@ * Copyright (C) 1999,2000 Erik Walthinsen * 2000,2005 Wim Taymans * - * gstbasesrc.c: + * gstbasesrc.c: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public diff --git a/libs/gst/base/gstbasesrc.h b/libs/gst/base/gstbasesrc.h index 30c8046..76a1370 100644 --- a/libs/gst/base/gstbasesrc.h +++ b/libs/gst/base/gstbasesrc.h @@ -28,12 +28,12 @@ G_BEGIN_DECLS -#define GST_TYPE_BASESRC (gst_basesrc_get_type()) -#define GST_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASESRC,GstBaseSrc)) -#define GST_BASESRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASESRC,GstBaseSrcClass)) +#define GST_TYPE_BASESRC (gst_basesrc_get_type()) +#define GST_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASESRC,GstBaseSrc)) +#define GST_BASESRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASESRC,GstBaseSrcClass)) #define GST_BASESRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BASESRC, GstBaseSrcClass)) -#define GST_IS_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASESRC)) -#define GST_IS_BASESRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASESRC)) +#define GST_IS_BASESRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASESRC)) +#define GST_IS_BASESRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASESRC)) typedef enum { GST_BASESRC_STARTED = GST_ELEMENT_FLAG_LAST, @@ -52,7 +52,7 @@ typedef enum { typedef struct _GstBaseSrc GstBaseSrc; typedef struct _GstBaseSrcClass GstBaseSrcClass; -#define GST_BASESRC_PAD(obj) (GST_BASESRC (obj)->srcpad) +#define GST_BASESRC_PAD(obj) (GST_BASESRC (obj)->srcpad) #define GST_LIVE_GET_LOCK(elem) (GST_BASESRC(elem)->live_lock) #define GST_LIVE_LOCK(elem) g_mutex_lock(GST_LIVE_GET_LOCK(elem)) @@ -70,7 +70,8 @@ struct _GstBaseSrc { GstElement element; GstPad *srcpad; - /* only for subclass implementations */ + /*< public >*/ + /* available to subclass implementations */ /* MT-protected (with LIVE_LOCK) */ GMutex *live_lock; GCond *live_cond; @@ -105,6 +106,8 @@ struct _GstBaseSrcClass { GstElementClass parent_class; /*< public >*/ + /* virtual methods for subclasses */ + /* get caps from subclass */ GstCaps* (*get_caps) (GstBaseSrc *src); /* notify the subclass of new caps */ diff --git a/libs/gst/base/gstbasetransform.h b/libs/gst/base/gstbasetransform.h index b110d8e..66b4176 100644 --- a/libs/gst/base/gstbasetransform.h +++ b/libs/gst/base/gstbasetransform.h @@ -2,7 +2,7 @@ * Copyright (C) 1999,2000 Erik Walthinsen * 2005 Wim Taymans * - * gstbasetransform.h: + * gstbasetransform.h: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -28,12 +28,12 @@ G_BEGIN_DECLS -#define GST_TYPE_BASE_TRANSFORM (gst_base_transform_get_type()) -#define GST_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_TRANSFORM,GstBaseTransform)) +#define GST_TYPE_BASE_TRANSFORM (gst_base_transform_get_type()) +#define GST_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_TRANSFORM,GstBaseTransform)) #define GST_BASE_TRANSFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASE_TRANSFORM,GstBaseTransformClass)) #define GST_BASE_TRANSFORM_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj),GST_TYPE_BASE_TRANSFORM,GstBaseTransformClass)) -#define GST_IS_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_TRANSFORM)) +#define GST_IS_BASE_TRANSFORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_TRANSFORM)) #define GST_IS_BASE_TRANSFORM_CLASS(obj)(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_TRANSFORM)) /* the names of the templates for the sink and source pads */ @@ -44,26 +44,34 @@ typedef struct _GstBaseTransform GstBaseTransform; typedef struct _GstBaseTransformClass GstBaseTransformClass; struct _GstBaseTransform { - GstElement element; + GstElement element; /* source and sink pads */ - GstPad *sinkpad; - GstPad *srcpad; + GstPad *sinkpad; + GstPad *srcpad; }; struct _GstBaseTransformClass { GstElementClass parent_class; + /*< public >*/ + /* virtual methods for subclasses */ + + + /* notify the subclass of new caps */ gboolean (*set_caps) (GstBaseTransform *trans, GstCaps *caps); + /* start and stop processing, ideal for opening/closing the resource */ gboolean (*start) (GstBaseTransform *trans); gboolean (*stop) (GstBaseTransform *trans); gboolean (*event) (GstBaseTransform *trans, GstEvent *event); + + /* transform one incoming buffer to one outgoing buffer */ GstFlowReturn (*transform) (GstBaseTransform *trans, GstBuffer *inbuf, GstBuffer **outbuf); }; -GType gst_base_transform_get_type(void); +GType gst_base_transform_get_type (void); G_END_DECLS -- 2.7.4