X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstpadtemplate.h;h=fb15c40520624a26fd01d1e6ab68f2d111ebc3eb;hb=f34472822c257359d69ebf671b81d85646a40618;hp=7bbbf16fffcf1f5a95c55d0863d8e54051803d8d;hpb=17ddbc3072752c903e6c769e63c0e74b83fdd781;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstpadtemplate.h b/gst/gstpadtemplate.h index 7bbbf16..fb15c40 100644 --- a/gst/gstpadtemplate.h +++ b/gst/gstpadtemplate.h @@ -16,8 +16,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. */ @@ -52,7 +52,7 @@ G_BEGIN_DECLS * @GST_PAD_ALWAYS: the pad is always available * @GST_PAD_SOMETIMES: the pad will become available depending on the media stream * @GST_PAD_REQUEST: the pad is only available on request with - * gst_element_get_request_pad(). + * gst_element_request_pad(). * * Indicates when this pad will become available. */ @@ -95,6 +95,16 @@ typedef enum { #define GST_PAD_TEMPLATE_CAPS(templ) (((GstPadTemplate *)(templ))->caps) /** + * GST_PAD_TEMPLATE_GTYPE: + * @templ: the template to query + * + * Get the #GType of the padtemplate + * + * Since: 1.14 + */ +#define GST_PAD_TEMPLATE_GTYPE(templ) (((GstPadTemplate *)(templ))->ABI.abi.gtype) + +/** * GstPadTemplateFlags: * @GST_PAD_TEMPLATE_FLAG_LAST: first flag that can be used by subclasses. * @@ -126,7 +136,13 @@ struct _GstPadTemplate { GstPadPresence presence; GstCaps *caps; - gpointer _gst_reserved[GST_PADDING]; + /*< private >*/ + union { + gpointer _gst_reserved[GST_PADDING]; + struct { + GType gtype; + } abi; + } ABI; }; struct _GstPadTemplateClass { @@ -135,6 +151,7 @@ struct _GstPadTemplateClass { /* signal callbacks */ void (*pad_created) (GstPadTemplate *templ, GstPad *pad); + /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; @@ -161,8 +178,14 @@ struct _GstStaticPadTemplate { * @pres: the GstPadPresence of the pad * @caps: the GstStaticCaps of the pad * - * Convenience macro to fill the values of a GstStaticPadTemplate + * Convenience macro to fill the values of a #GstStaticPadTemplate * structure. + * Example: + * |[ + * static GstStaticPadTemplate my_src_template = \ + * GST_STATIC_PAD_TEMPLATE("src", GST_PAD_SRC, GST_PAD_ALWAYS, + * GST_STATIC_CAPS_ANY); + * ]| */ #define GST_STATIC_PAD_TEMPLATE(padname, dir, pres, caps) \ { \ @@ -173,19 +196,42 @@ struct _GstStaticPadTemplate { } /* templates and factories */ + +GST_API GType gst_pad_template_get_type (void); + +GST_API GType gst_static_pad_template_get_type (void); +GST_API GstPadTemplate* gst_pad_template_new (const gchar *name_template, GstPadDirection direction, GstPadPresence presence, GstCaps *caps) G_GNUC_MALLOC; - +GST_API +GstPadTemplate* gst_pad_template_new_with_gtype (const gchar *name_template, + GstPadDirection direction, GstPadPresence presence, + GstCaps *caps, GType pad_type) G_GNUC_MALLOC; +GST_API GstPadTemplate * gst_static_pad_template_get (GstStaticPadTemplate *pad_template); + +GST_API +GstPadTemplate * gst_pad_template_new_from_static_pad_template_with_gtype ( + GstStaticPadTemplate * pad_template, + GType pad_type); + +GST_API GstCaps* gst_static_pad_template_get_caps (GstStaticPadTemplate *templ); + +GST_API GstCaps* gst_pad_template_get_caps (GstPadTemplate *templ); +GST_API void gst_pad_template_pad_created (GstPadTemplate * templ, GstPad * pad); +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstPadTemplate, gst_object_unref) +#endif + G_END_DECLS #endif /* __GST_PAD_TEMPLATE_H__ */