diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2014-06-17 14:33:24 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2014-06-17 14:33:24 +0300 |
commit | dd993300ca19e40f1ec4e41bae995f89b8a4f5cd (patch) | |
tree | b8c8d708992fc7271103fa52f022c69a36d9ed39 /src | |
parent | c01baeb8dc7d4c4699f3a49724aaac86f9b23810 (diff) | |
download | xine-lib-dd993300ca19e40f1ec4e41bae995f89b8a4f5cd.tar.gz xine-lib-dd993300ca19e40f1ec4e41bae995f89b8a4f5cd.tar.bz2 |
load_plugins: do not drop audio decoder if open fails because of resources temporarily unavailable.
Identical hack is used with video decoders.
Diffstat (limited to 'src')
-rw-r--r-- | src/xine-engine/load_plugins.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index 3aab54166..c06286d0a 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -2199,7 +2199,13 @@ audio_decoder_t *_x_get_audio_decoder (xine_stream_t *stream, uint8_t stream_typ ad = ((audio_decoder_class_t *)node->plugin_class)->open_plugin(node->plugin_class, stream); - if (ad) { + if (ad == (audio_decoder_t*)1) { + /* HACK: plugin failed to instantiate because required resources are unavailable at that time, + but may be available later, so don't remove this plugin from catalog. */ + xprintf(stream->xine, XINE_VERBOSITY_DEBUG, + "load_plugins: plugin %s failed to instantiate, resources temporarily unavailable.\n", node->info->id); + } + else if (ad) { inc_node_ref(node); ad->node = node; xprintf(stream->xine, XINE_VERBOSITY_DEBUG, |