summaryrefslogtreecommitdiff
path: root/src/xine-engine/xine.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-engine/xine.c')
-rw-r--r--src/xine-engine/xine.c40
1 files changed, 11 insertions, 29 deletions
diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c
index 7f0c21a8e..7814fdae6 100644
--- a/src/xine-engine/xine.c
+++ b/src/xine-engine/xine.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: xine.c,v 1.122 2002/04/29 23:32:00 jcdutton Exp $
+ * $Id: xine.c,v 1.123 2002/05/01 19:42:57 guenter Exp $
*
* top-level xine functions
*
@@ -456,7 +456,7 @@ int xine_eject (xine_t *this) {
void xine_exit (xine_t *this) {
- int i, j;
+ int i;
xine_stop(this);
@@ -487,32 +487,14 @@ void xine_exit (xine_t *this) {
for (i = 0; i < this->num_input_plugins; i++)
this->input_plugins[i]->dispose (this->input_plugins[i]);
- for (i = 0; i < DECODER_PLUGIN_MAX; i++) {
- if (this->audio_decoder_plugins[i]) {
- this->audio_decoder_plugins[i]->dispose (this->audio_decoder_plugins[i]);
+ for (i = 0; i < this->num_audio_decoders_loaded; i++)
+ this->audio_decoders_loaded[i]->dispose (this->audio_decoders_loaded[i]);
- for (j = i + 1; j < DECODER_PLUGIN_MAX; j++) {
- if (this->audio_decoder_plugins[j] == this->audio_decoder_plugins[i])
- this->audio_decoder_plugins[j] = NULL;
- }
- }
- if (this->video_decoder_plugins[i]) {
- this->video_decoder_plugins[i]->dispose (this->video_decoder_plugins[i]);
-
- for (j = i + 1; j < DECODER_PLUGIN_MAX; j++) {
- if (this->video_decoder_plugins[j] == this->video_decoder_plugins[i])
- this->video_decoder_plugins[j] = NULL;
- }
- }
- if (this->spu_decoder_plugins[i]) {
- this->spu_decoder_plugins[i]->dispose (this->spu_decoder_plugins[i]);
+ for (i = 0; i < this->num_video_decoders_loaded; i++)
+ this->video_decoders_loaded[i]->dispose (this->video_decoders_loaded[i]);
- for (j = i + 1; j < DECODER_PLUGIN_MAX; j++) {
- if (this->spu_decoder_plugins[j] == this->spu_decoder_plugins[i])
- this->spu_decoder_plugins[j] = NULL;
- }
- }
- }
+ for (i = 0; i < this->num_spu_decoders_loaded; i++)
+ this->spu_decoders_loaded[i]->dispose (this->spu_decoders_loaded[i]);
xine_profiler_print_results ();
@@ -573,13 +555,13 @@ xine_t *xine_init (vo_driver_t *vo,
* load input and demuxer plugins
*/
- load_input_plugins (this, config, INPUT_PLUGIN_IFACE_VERSION);
+ load_input_plugins (this, config);
this->demux_strategy = config->register_enum (config, "misc.demux_strategy", 0,
demux_strategies, "demuxer selection strategy",
NULL, NULL, NULL);
- load_demux_plugins(this, config, DEMUXER_PLUGIN_IFACE_VERSION);
+ load_demux_plugins(this, config);
this->spu_channel_auto = -1;
this->spu_channel_user = -1;
@@ -590,7 +572,7 @@ xine_t *xine_init (vo_driver_t *vo,
* init and start decoder threads
*/
- load_decoder_plugins (this, config, DECODER_PLUGIN_IFACE_VERSION);
+ load_decoder_plugins (this, config);
this->video_out = vo_new_instance (vo, this);
video_decoder_init (this);