OUTDATED -------- typedef gpointer GstCapsFactoryEntry; typedef GstCapsFactoryEntry GstCapsFactory[]; typedef GstCapsFactory *GstCapsListFactory[]; typedef gpointer GstPadFactoryEntry; typedef GstPadFactoryEntry GstPadFactory[]; typedef GstPadFactory *GstPadListFactory[]; #define GST_PADFACTORY_SRC GINT_TO_POINTER (GST_PAD_SRC) #define GST_PADFACTORY_ALWAYS GINT_TO_POINTER (GST_PAD_ALWAYS) typedef struct GstPadTemplate { gchar *name_template; gint direction; gint presence; GList *caps; }; GstPadFactory mpg123_src_padfactory = { "src" GST_PADFACTORY_SRC, GST_PADFACTORY_ALWAYS, "audio/raw" "samplerate", GST_PROPS_INT (44100), . . . NULL }; static GstPadTemplate *srcpadtemplate; mpg123_new(GstMpg123 *mpg123) { mpg123->srcpad = gst_pad_new_template("src", srcpadtemplate); . . . } plugin_init() { GstElementFactory *factory; factory = gst_elementfactory_new("mpg123",. . .); srcpadtemplate = gst_padfactory_new(mpg123_src_padfactory); get_elementfactory_add_padtemplate (srcpadtemplate); }