summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xine-engine/load_plugins.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c
index 993328f37..ed6eb4f85 100644
--- a/src/xine-engine/load_plugins.c
+++ b/src/xine-engine/load_plugins.c
@@ -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: load_plugins.c,v 1.91 2002/09/11 17:41:08 guenter Exp $
+ * $Id: load_plugins.c,v 1.92 2002/09/15 12:28:16 jcdutton Exp $
*
*
* Load input/demux/audio_out/video_out/codec plugins
@@ -920,14 +920,29 @@ spu_decoder_t *get_spu_decoder (xine_t *this, uint8_t stream_type) {
void dispose_plugins (xine_t *this) {
/* FIXME: adapt old code */
-
-#if 0
- for (i = 0; i < this->num_demuxer_plugins; i++)
- this->demuxer_plugins[i]->close (this->demuxer_plugins[i]);
+ plugin_node_t *node;
- for (i = 0; i < this->num_input_plugins; i++)
- this->input_plugins[i]->dispose (this->input_plugins[i]);
+ node = xine_list_first_content (this->plugin_catalog->demux);
+ while (node) {
+ demux_plugin_t *dp = node->plugin;
+
+ if (dp)
+ dp->close (dp);
+
+ node = xine_list_next_content (this->plugin_catalog->demux);
+ }
+ node = xine_list_first_content (this->plugin_catalog->input);
+ while (node) {
+ input_plugin_t *ip = node->plugin;
+
+ if (ip)
+ ip->dispose (ip);
+
+ node = xine_list_next_content (this->plugin_catalog->input);
+ }
+
+#if 0
for (i = 0; i < this->num_audio_decoders_loaded; i++)
this->audio_decoders_loaded[i]->dispose (this->audio_decoders_loaded[i]);