diff -Nur audacious-2.2-orig/src/audacious/playback.c audacious-2.2-fedora/src/audacious/playback.c
--- audacious-2.2-orig/src/audacious/playback.c 2009-11-22 23:43:47.000000000 +0100
+++ audacious-2.2-fedora/src/audacious/playback.c 2009-12-31 14:36:28.000000000 +0100
@@ -448,7 +448,7 @@
return FALSE;
}
- if (decoder == NULL)
+ if (decoder == NULL || !decoder->enabled)
{
ProbeResult * pr = input_check_file (filename);
diff -Nur audacious-2.2-orig/src/audacious/playlist-utils.c audacious-2.2-fedora/src/audacious/playlist-utils.c
--- audacious-2.2-orig/src/audacious/playlist-utils.c 2009-11-22 23:43:47.000000000 +0100
+++ audacious-2.2-fedora/src/audacious/playlist-utils.c 2009-12-31 14:35:14.000000000 +0100
@@ -288,7 +288,7 @@
InputPlugin * decoder = NULL;
gchar * temp = g_strdup (filename);
gchar * temp2;
- GList * * index;
+ GList **list_hdr, *node;
decoder = uri_get_plugin (temp);
@@ -308,11 +308,17 @@
temp2 = g_ascii_strdown (temp2 + 1, -1);
g_free (temp);
temp = temp2;
+ list_hdr = g_hash_table_lookup (ext_hash, temp);
- index = g_hash_table_lookup (ext_hash, temp);
-
- if (index != NULL)
- decoder = (* index)->data;
+ if (list_hdr != NULL) {
+ for (node = *list_hdr; node != NULL; node = g_list_next(node)) {
+ decoder = INPUT_PLUGIN(node->data);
+ if (decoder->enabled) {
+ break;
+ }
+ decoder = NULL;
+ }
+ }
DONE:
g_free (temp);