summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2014-06-17 14:33:24 +0300
committerPetri Hintukainen <phintuka@users.sourceforge.net>2014-06-17 14:33:24 +0300
commitdd993300ca19e40f1ec4e41bae995f89b8a4f5cd (patch)
treeb8c8d708992fc7271103fa52f022c69a36d9ed39 /src
parentc01baeb8dc7d4c4699f3a49724aaac86f9b23810 (diff)
downloadxine-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.c8
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,