diff options
author | Jan Schmidt <thaytan@noraisin.net> | 2009-01-23 15:47:08 +0000 |
---|---|---|
committer | Jan Schmidt <thaytan@noraisin.net> | 2009-10-06 19:51:42 +0100 |
commit | 38083fb0c80b246145bf94734b60789a009e1aeb (patch) | |
tree | 6671fc1e84445ea65dd2ec3a480bedcdaa50bf56 /gst/gstregistry.c | |
parent | 51675e0c2a1bcf0263e45a74ab0da081469b3236 (diff) |
Plugin loader phase 2
phase 2 - make the plugin loader receive the list of plugins to load and
send back the results asynchronously, so we don't context switch back
and forth so much.
Diffstat (limited to 'gst/gstregistry.c')
-rw-r--r-- | gst/gstregistry.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gst/gstregistry.c b/gst/gstregistry.c index b179fa582e..591e798fcb 100644 --- a/gst/gstregistry.c +++ b/gst/gstregistry.c @@ -878,7 +878,7 @@ clear_scan_context (GstRegistryScanContext * context) static gboolean gst_registry_scan_plugin_file (GstRegistryScanContext * context, - const gchar * filename) + const gchar * filename, off_t file_size, time_t file_mtime) { gboolean changed = FALSE; GstPlugin *newplugin = NULL; @@ -895,7 +895,8 @@ gst_registry_scan_plugin_file (GstRegistryScanContext * context, if (context->helper_state == REGISTRY_SCAN_HELPER_RUNNING) { GST_DEBUG ("Using scan-helper to load plugin %s", filename); - if (!_priv_gst_plugin_loader_funcs.load (context->helper, filename)) { + if (!_priv_gst_plugin_loader_funcs.load (context->helper, + filename, file_size, file_mtime)) { g_warning ("External plugin loader failed..."); context->helper_state = REGISTRY_SCAN_HELPER_DISABLED; } @@ -1027,14 +1028,16 @@ gst_registry_scan_path_level (GstRegistryScanContext * context, (gint64) plugin->file_size, (gint64) file_status.st_size, env_vars_changed, deps_changed); gst_registry_remove_plugin (context->registry, plugin); - changed |= gst_registry_scan_plugin_file (context, filename); + changed |= gst_registry_scan_plugin_file (context, filename, + file_status.st_size, file_status.st_mtime); } gst_object_unref (plugin); } else { GST_DEBUG_OBJECT (context->registry, "file %s not yet in registry", filename); - changed |= gst_registry_scan_plugin_file (context, filename); + changed |= gst_registry_scan_plugin_file (context, filename, + file_status.st_size, file_status.st_mtime); } g_free (filename); |