summaryrefslogtreecommitdiff
path: root/src/xine-engine/plugin_catalog.h
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-12-08 20:53:02 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-12-08 20:53:02 +0000
commit3c919d37ea15fa0d0b1d63203a8ce2f7129a6f55 (patch)
treeb070985aeb45e6c1ce6c11b246b4062e044f372b /src/xine-engine/plugin_catalog.h
parentc8b3320dabcc9737204343f7e1cb135bf9edc336 (diff)
downloadxine-lib-3c919d37ea15fa0d0b1d63203a8ce2f7129a6f55.tar.gz
xine-lib-3c919d37ea15fa0d0b1d63203a8ce2f7129a6f55.tar.bz2
introduce the catalog cache. saves information from plugins with
file size and modification date to ~/.xine/catalog.cache. next time xine starts the first stage loader won't need to open any libraries, reducing the loading time. the difference under gdb can be quite dramatic. note1: xine still have to initialize all input and demuxers on startup. note2: i have not added post plugins to cache yet. CVS patchset: 3464 CVS date: 2002/12/08 20:53:02
Diffstat (limited to 'src/xine-engine/plugin_catalog.h')
-rw-r--r--src/xine-engine/plugin_catalog.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/xine-engine/plugin_catalog.h b/src/xine-engine/plugin_catalog.h
index 0790b410f..1aedd6c70 100644
--- a/src/xine-engine/plugin_catalog.h
+++ b/src/xine-engine/plugin_catalog.h
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: plugin_catalog.h,v 1.7 2002/12/01 15:10:04 mroi Exp $
+ * $Id: plugin_catalog.h,v 1.8 2002/12/08 20:53:02 miguelfreitas Exp $
*
* xine-internal header: Definitions for plugin lists
*
@@ -35,11 +35,16 @@
/* the engine takes this many plugins for one stream type */
#define PLUGINS_PER_TYPE 10
+#define CACHE_CATALOG_VERSION 0
+#define CACHE_CATALOG_FILE ".xine/catalog.cache"
+
typedef struct {
char *filename;
plugin_info_t *info;
void *plugin_class;
int ref; /* count instances created of this plugin */
+ off_t filesize;
+ time_t filemtime;
} plugin_node_t ;
struct plugin_catalog_s {
@@ -51,6 +56,8 @@ struct plugin_catalog_s {
xine_list_t *aout;
xine_list_t *vout;
xine_list_t *post;
+
+ xine_list_t *cache;
plugin_node_t *audio_decoder_map[DECODER_MAX][PLUGINS_PER_TYPE];
plugin_node_t *video_decoder_map[DECODER_MAX][PLUGINS_PER_TYPE];