gstreamer/tests/registry.c
Wim Taymans d78215be9d More Caps changes, this change introduces the padfactory. the GstPadFactory will be used to describe the pads that an...
Original commit message from CVS:
More Caps changes, this change introduces the padfactory. the GstPadFactory
will be used to describe the pads that an element will contain during
its lifetime.
mpg123 and mp3parse serve as an example.
More XML changes to incorporate the padfactories.
2000-12-12 19:29:43 +00:00

121 lines
2.2 KiB
C

#include <gst/gst.h>
static void
dump_plugins (void)
{
GList *plugins;
plugins = gst_plugin_get_list ();
while (plugins) {
GstPlugin *plugin = (GstPlugin *)plugins->data;
g_print ("plugin: %s, loaded %d\n", plugin->name, plugin->loaded);
plugins = g_list_next (plugins);
}
}
static void
dump_factories (void)
{
GList *factories;
factories = gst_elementfactory_get_list ();
while (factories) {
GstElementFactory *factory = (GstElementFactory *)factories->data;
g_print ("factory: %s\n", factory->name);
factories = g_list_next (factories);
}
}
static void
dump_types (void)
{
GList *types;
types = gst_type_get_list ();
while (types) {
GstType *factory = (GstType *)types->data;
g_print ("type: %s %d\n", factory->mime, factory->id);
types = g_list_next (types);
}
}
static void
load_something (gchar *name)
{
GstElementFactory *factory;
GstElement *element;
factory = gst_elementfactory_find ("foo");
g_print ("factory \"foo\" %s\n", (factory?"found":"not found"));
factory = gst_elementfactory_find (name);
g_print ("factory \"%s\" %s\n", name, (factory?"found":"not found"));
element = gst_elementfactory_create (factory, "test");
g_print ("element \"%s\" %s\n", name, (element?"found":"not found"));
}
static void
print_some_providers (gchar *mime)
{
guint16 type;
GList *srcs, *sinks;
type = gst_type_find_by_mime (mime);
srcs = gst_type_get_srcs (type);
while (srcs) {
GstElementFactory *factory;
factory = (GstElementFactory *) srcs->data;
g_print ("factory src: \"%s\"\n", factory->name);
srcs = g_list_next (srcs);
}
sinks = gst_type_get_sinks (type);
while (sinks) {
GstElementFactory *factory;
factory = (GstElementFactory *) sinks->data;
g_print ("factory sink: \"%s\"\n", factory->name);
sinks = g_list_next (sinks);
}
}
int main(int argc,char *argv[])
{
gst_init(&argc,&argv);
dump_plugins ();
dump_factories ();
dump_types ();
gst_type_dump ();
print_some_providers ("audio/mp3");
load_something ("mpg123");
print_some_providers ("audio/mp3");
gst_type_dump ();
load_something ("mpg123");
dump_plugins ();
dump_factories ();
dump_types ();
gst_type_dump ();
}