xine-lib  1.2.10
plugin_catalog.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2000-2018 the xine project
3  *
4  * This file is part of xine, a free video player.
5  *
6  * xine is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * xine is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19  *
20  * xine-internal header: Definitions for plugin lists
21  */
22 
23 #ifndef _PLUGIN_CATALOG_H
24 #define _PLUGIN_CATALOG_H
25 
26 #include <xine/xine_plugin.h>
27 #include <xine/xineutils.h>
28 
29 #define DECODER_MAX 128
30 #define PLUGIN_MAX 256
31 
32 /* the engine takes this many plugins for one stream type */
33 #define PLUGINS_PER_TYPE 10
34 
35 typedef struct {
36  char *filename;
37  off_t filesize;
38  time_t filemtime;
39  void *lib_handle;
40  int ref; /* count number of classes */
41  int no_unload; /* set if the file can't be unloaded */
42 } plugin_file_t ;
43 
44 typedef struct plugin_node_s {
47  void *plugin_class;
49  int ref; /* count intances of plugins */
50  int priority;
51 } plugin_node_t ;
52 
55 
58 
62 
63  const char *ids[PLUGIN_MAX];
64 
65  /* memory block for the decoder priority config entry descriptions */
67 
68  pthread_mutex_t lock; /* recursive mutex */
69 
72 
74 };
76 
77 #endif
plugin_file_t::lib_handle
void * lib_handle
Definition: plugin_catalog.h:39
plugin_catalog_s::lock
pthread_mutex_t lock
Definition: plugin_catalog.h:68
xineutils.h
xine_plugin.h
plugin_catalog_s::modules_list
xine_sarray_t * modules_list
Definition: plugin_catalog.h:73
plugin_file_t::filename
char * filename
Definition: plugin_catalog.h:36
plugin_file_t::ref
int ref
Definition: plugin_catalog.h:40
plugin_file_t::filesize
off_t filesize
Definition: plugin_catalog.h:37
plugin_catalog_s::prio_desc
char * prio_desc[128]
Definition: plugin_catalog.h:66
plugin_catalog_s::spu_decoder_map
plugin_node_t * spu_decoder_map[128][10]
Definition: plugin_catalog.h:61
plugin_catalog_s::audio_decoder_map
plugin_node_t * audio_decoder_map[128][10]
Definition: plugin_catalog.h:59
PLUGINS_PER_TYPE
#define PLUGINS_PER_TYPE
Definition: plugin_catalog.h:33
xine_sarray_s
Definition: sorted_array.c:34
plugin_file_t
Definition: plugin_catalog.h:35
plugin_file_t::no_unload
int no_unload
Definition: plugin_catalog.h:41
plugin_catalog_s
Definition: plugin_catalog.h:53
DECODER_MAX
#define DECODER_MAX
Definition: plugin_catalog.h:29
PLUGIN_MAX
#define PLUGIN_MAX
Definition: plugin_catalog.h:30
plugin_catalog_s::decoder_count
int decoder_count
Definition: plugin_catalog.h:71
plugin_node_t
struct plugin_node_s plugin_node_t
xine_list_s
Definition: list.c:51
plugin_node_s::config_entry_list
xine_list_t * config_entry_list
Definition: plugin_catalog.h:48
plugin_catalog_s::file_list
xine_list_t * file_list
Definition: plugin_catalog.h:57
plugin_catalog_s::ids
const char * ids[256]
Definition: plugin_catalog.h:63
plugin_node_s::priority
int priority
Definition: plugin_catalog.h:50
plugin_node_s::info
plugin_info_t * info
Definition: plugin_catalog.h:46
plugin_file_t::filemtime
time_t filemtime
Definition: plugin_catalog.h:38
plugin_node_s::file
plugin_file_t * file
Definition: plugin_catalog.h:45
plugin_node_s
Definition: plugin_catalog.h:44
plugin_catalog_s::plugin_lists
xine_sarray_t * plugin_lists[PLUGIN_TYPE_MAX]
Definition: plugin_catalog.h:54
plugin_catalog_s::video_decoder_map
plugin_node_t * video_decoder_map[128][10]
Definition: plugin_catalog.h:60
plugin_node_s::plugin_class
void * plugin_class
Definition: plugin_catalog.h:47
plugin_node_s::ref
int ref
Definition: plugin_catalog.h:49
plugin_catalog_s::plugin_count
int plugin_count
Definition: plugin_catalog.h:70
plugin_catalog_s::cache_list
xine_sarray_t * cache_list
Definition: plugin_catalog.h:56
PLUGIN_TYPE_MAX
#define PLUGIN_TYPE_MAX
Definition: xine_plugin.h:39
plugin_info_t
Definition: xine_plugin.h:55