X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tools%2Fgst-inspect.c;h=9642ea9d4fd7957455405b365aaeb6e124d81e01;hb=066b515985897495cae32fca5b7eeeec260c40c9;hp=fe5b98d8d462b3cd0738438f8ff3ad347a32b4a0;hpb=92de0b6143c20a549eda3c47251d2361cd90b6a5;p=platform%2Fupstream%2Fgstreamer.git diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c index fe5b98d..9642ea9 100644 --- a/tools/gst-inspect.c +++ b/tools/gst-inspect.c @@ -181,31 +181,29 @@ get_rank_name (char *s, gint rank) return s; } -static gboolean -print_factory_details_metadata (GQuark field_id, const GValue * value, - gpointer user_data) -{ - gchar *val = g_strdup_value_contents (value); - gchar *key = g_strdup (g_quark_to_string (field_id)); - - key[0] = g_ascii_toupper (key[0]); - n_print (" %s:\t\t%s\n", key, val); - g_free (val); - g_free (key); - return TRUE; -} - static void print_factory_details_info (GstElementFactory * factory) { + gchar **keys, **k; + GstRank rank; char s[20]; + rank = gst_plugin_feature_get_rank (GST_PLUGIN_FEATURE (factory)); n_print ("Factory Details:\n"); - n_print (" Rank:\t\t%s (%d)\n", - get_rank_name (s, GST_PLUGIN_FEATURE (factory)->rank), - GST_PLUGIN_FEATURE (factory)->rank); - gst_structure_foreach ((GstStructure *) factory->metadata, - print_factory_details_metadata, NULL); + n_print (" Rank:\t\t%s (%d)\n", get_rank_name (s, rank), rank); + + keys = gst_element_factory_get_metadata_keys (factory); + if (keys != NULL) { + for (k = keys; *k != NULL; ++k) { + const gchar *val; + gchar *key = *k; + + val = gst_element_factory_get_metadata (factory, key); + key[0] = g_ascii_toupper (key[0]); + n_print (" %s:\t\t%s\n", key, val); + } + g_strfreev (keys); + } n_print ("\n"); } @@ -591,14 +589,14 @@ print_pad_templates_info (GstElement * element, GstElementFactory * factory) GstStaticPadTemplate *padtemplate; n_print ("Pad Templates:\n"); - if (!factory->numpadtemplates) { + if (gst_element_factory_get_num_pad_templates (factory) == 0) { n_print (" none\n"); return; } gstelement_class = GST_ELEMENT_CLASS (G_OBJECT_GET_CLASS (element)); - pads = factory->staticpadtemplates; + pads = gst_element_factory_get_static_pad_templates (factory); while (pads) { padtemplate = (GstStaticPadTemplate *) (pads->data); pads = g_list_next (pads); @@ -900,24 +898,22 @@ print_signal_info (GstElement * element) g_type_name (query->return_type), g_type_name (type)); for (j = 0; j < query->n_params; j++) { - if (_name) - g_print ("%s", _name); + g_print (",\n"); if (G_TYPE_IS_FUNDAMENTAL (query->param_types[j])) { - g_print (",\n%s%s arg%d", indent, + n_print ("%s%s arg%d", indent, g_type_name (query->param_types[j]), j); } else if (G_TYPE_IS_ENUM (query->param_types[j])) { - g_print (",\n%s%s arg%d", indent, + n_print ("%s%s arg%d", indent, g_type_name (query->param_types[j]), j); } else { - g_print (",\n%s%s* arg%d", indent, + n_print ("%s%s* arg%d", indent, g_type_name (query->param_types[j]), j); } } if (k == 0) { - if (_name) - g_print ("%s", _name); - g_print (",\n%sgpointer user_data);\n", indent); + g_print (",\n"); + n_print ("%sgpointer user_data);\n", indent); } else g_print (");\n"); @@ -942,7 +938,7 @@ print_children_info (GstElement * element) children = (GList *) GST_BIN (element)->children; if (children) { n_print ("\n"); - g_print ("Children:\n"); + n_print ("Children:\n"); } while (children) { @@ -962,8 +958,8 @@ print_blacklist (void) plugins = gst_registry_get_plugin_list (gst_registry_get ()); for (cur = plugins; cur != NULL; cur = g_list_next (cur)) { GstPlugin *plugin = (GstPlugin *) (cur->data); - if (plugin->flags & GST_PLUGIN_FLAG_BLACKLISTED) { - g_print (" %s\n", plugin->desc.name); + if (GST_OBJECT_FLAG_IS_SET (plugin, GST_PLUGIN_FLAG_BLACKLISTED)) { + g_print (" %s\n", gst_plugin_get_name (plugin)); count++; } } @@ -991,14 +987,14 @@ print_element_list (gboolean print_all) plugins = g_list_next (plugins); plugincount++; - if (plugin->flags & GST_PLUGIN_FLAG_BLACKLISTED) { + if (GST_OBJECT_FLAG_IS_SET (plugin, GST_PLUGIN_FLAG_BLACKLISTED)) { blacklistcount++; continue; } orig_features = features = gst_registry_get_feature_list_by_plugin (gst_registry_get (), - plugin->desc.name); + gst_plugin_get_name (plugin)); while (features) { GstPluginFeature *feature; @@ -1014,7 +1010,7 @@ print_element_list (gboolean print_all) if (print_all) print_element_info (factory, TRUE); else - g_print ("%s: %s: %s\n", plugin->desc.name, + g_print ("%s: %s: %s\n", gst_plugin_get_name (plugin), GST_OBJECT_NAME (factory), gst_element_factory_get_longname (factory)); #if 0 @@ -1028,17 +1024,20 @@ print_element_list (gboolean print_all) #endif } else if (GST_IS_TYPE_FIND_FACTORY (feature)) { GstTypeFindFactory *factory; + const gchar *const *extensions; factory = GST_TYPE_FIND_FACTORY (feature); if (!print_all) - g_print ("%s: %s: ", plugin->desc.name, + g_print ("%s: %s: ", gst_plugin_get_name (plugin), gst_plugin_feature_get_name (feature)); - if (factory->extensions) { + + extensions = gst_type_find_factory_get_extensions (factory); + if (extensions != NULL) { guint i = 0; - while (factory->extensions[i]) { + while (extensions[i]) { if (!print_all) - g_print ("%s%s", i > 0 ? ", " : "", factory->extensions[i]); + g_print ("%s%s", i > 0 ? ", " : "", extensions[i]); i++; } if (!print_all) @@ -1049,7 +1048,7 @@ print_element_list (gboolean print_all) } } else { if (!print_all) - n_print ("%s: %s (%s)\n", plugin->desc.name, + n_print ("%s: %s (%s)\n", gst_plugin_get_name (plugin), GST_OBJECT_NAME (feature), g_type_name (G_OBJECT_TYPE (feature))); } @@ -1088,7 +1087,7 @@ print_all_uri_handlers (void) features = gst_registry_get_feature_list_by_plugin (gst_registry_get (), - plugin->desc.name); + gst_plugin_get_name (plugin)); for (f = features; f; f = f->next) { GstPluginFeature *feature = GST_PLUGIN_FEATURE (f->data); @@ -1099,7 +1098,8 @@ print_all_uri_handlers (void) factory = GST_ELEMENT_FACTORY (gst_plugin_feature_load (feature)); if (!factory) { - g_print ("element plugin %s couldn't be loaded\n", plugin->desc.name); + g_print ("element plugin %s couldn't be loaded\n", + gst_plugin_get_name (plugin)); continue; } @@ -1154,21 +1154,24 @@ print_all_uri_handlers (void) static void print_plugin_info (GstPlugin * plugin) { + const gchar *release_date = gst_plugin_get_release_date_string (plugin); + const gchar *filename = gst_plugin_get_filename (plugin); + n_print ("Plugin Details:\n"); - n_print (" Name:\t\t\t%s\n", plugin->desc.name); - n_print (" Description:\t\t%s\n", plugin->desc.description); - n_print (" Filename:\t\t%s\n", - plugin->filename ? plugin->filename : "(null)"); - n_print (" Version:\t\t%s\n", plugin->desc.version); - n_print (" License:\t\t%s\n", plugin->desc.license); - n_print (" Source module:\t%s\n", plugin->desc.source); - if (plugin->desc.release_datetime != NULL) { + n_print (" Name:\t\t\t%s\n", gst_plugin_get_name (plugin)); + n_print (" Description:\t\t%s\n", gst_plugin_get_description (plugin)); + n_print (" Filename:\t\t%s\n", (filename != NULL) ? filename : "(null)"); + n_print (" Version:\t\t%s\n", gst_plugin_get_version (plugin)); + n_print (" License:\t\t%s\n", gst_plugin_get_license (plugin)); + n_print (" Source module:\t%s\n", gst_plugin_get_source (plugin)); + + if (release_date != NULL) { const gchar *tz = "(UTC)"; gchar *str, *sep; /* may be: YYYY-MM-DD or YYYY-MM-DDTHH:MMZ */ /* YYYY-MM-DDTHH:MMZ => YYYY-MM-DD HH:MM (UTC) */ - str = g_strdup (plugin->desc.release_datetime); + str = g_strdup (release_date); sep = strstr (str, "T"); if (sep != NULL) { *sep = ' '; @@ -1181,8 +1184,8 @@ print_plugin_info (GstPlugin * plugin) n_print (" Source release date:\t%s%s\n", str, tz); g_free (str); } - n_print (" Binary package:\t%s\n", plugin->desc.package); - n_print (" Origin URL:\t\t%s\n", plugin->desc.origin); + n_print (" Binary package:\t%s\n", gst_plugin_get_package (plugin)); + n_print (" Origin URL:\t\t%s\n", gst_plugin_get_origin (plugin)); n_print ("\n"); } @@ -1198,7 +1201,7 @@ print_plugin_features (GstPlugin * plugin) origlist = features = gst_registry_get_feature_list_by_plugin (gst_registry_get (), - plugin->desc.name); + gst_plugin_get_name (plugin)); while (features) { GstPluginFeature *feature; @@ -1222,20 +1225,22 @@ print_plugin_features (GstPlugin * plugin) #endif } else if (GST_IS_TYPE_FIND_FACTORY (feature)) { GstTypeFindFactory *factory; + const gchar *const *extensions; factory = GST_TYPE_FIND_FACTORY (feature); - if (factory->extensions) { + extensions = gst_type_find_factory_get_extensions (factory); + if (extensions) { guint i = 0; - g_print ("%s: %s: ", plugin->desc.name, + g_print ("%s: %s: ", gst_plugin_get_name (plugin), gst_plugin_feature_get_name (feature)); - while (factory->extensions[i]) { - g_print ("%s%s", i > 0 ? ", " : "", factory->extensions[i]); + while (extensions[i]) { + g_print ("%s%s", i > 0 ? ", " : "", extensions[i]); i++; } g_print ("\n"); } else - g_print ("%s: %s: no extensions\n", plugin->desc.name, + g_print ("%s: %s: no extensions\n", gst_plugin_get_name (plugin), gst_plugin_feature_get_name (feature)); num_typefinders++; @@ -1292,6 +1297,7 @@ static int print_element_info (GstElementFactory * factory, gboolean print_names) { GstElement *element; + GstPlugin *plugin; gint maxlevel = 0; factory = @@ -1316,14 +1322,11 @@ print_element_info (GstElementFactory * factory, gboolean print_names) _name = NULL; print_factory_details_info (factory); - if (GST_PLUGIN_FEATURE (factory)->plugin_name) { - GstPlugin *plugin; - plugin = gst_registry_find_plugin (gst_registry_get (), - GST_PLUGIN_FEATURE (factory)->plugin_name); - if (plugin) { - print_plugin_info (plugin); - } + plugin = gst_plugin_feature_get_plugin (GST_PLUGIN_FEATURE (factory)); + if (plugin) { + print_plugin_info (plugin); + gst_object_unref (plugin); } print_hierarchy (G_OBJECT_TYPE (element), 0, &maxlevel); @@ -1446,22 +1449,21 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory) static void print_plugin_automatic_install_info (GstPlugin * plugin) { - const gchar *plugin_name; GList *features, *l; - plugin_name = gst_plugin_get_name (plugin); - /* not interested in typefind factories, only element factories */ features = gst_registry_get_feature_list (gst_registry_get (), GST_TYPE_ELEMENT_FACTORY); for (l = features; l != NULL; l = l->next) { GstPluginFeature *feature; + GstPlugin *feature_plugin; feature = GST_PLUGIN_FEATURE (l->data); /* only interested in the ones that are in the plugin we just loaded */ - if (g_str_equal (plugin_name, feature->plugin_name)) { + feature_plugin = gst_plugin_feature_get_plugin (feature); + if (feature_plugin == plugin) { GstElementFactory *factory; g_print ("element-%s\n", gst_plugin_feature_get_name (feature)); @@ -1470,6 +1472,8 @@ print_plugin_automatic_install_info (GstPlugin * plugin) print_plugin_automatic_install_info_protocols (factory); print_plugin_automatic_install_info_codecs (factory); } + if (feature_plugin) + gst_object_unref (feature_plugin); } g_list_foreach (features, (GFunc) gst_object_unref, NULL);