2010-08-03 18:20:45 +02:00
|
|
|
diff -ur xine-lib-1.1.18.orig/src/xine-engine/load_plugins.c xine-lib-1.1.18/src/xine-engine/load_plugins.c
|
|
|
|
--- xine-lib-1.1.18.orig/src/xine-engine/load_plugins.c 2010-01-14 23:17:56.000000000 +0100
|
|
|
|
+++ xine-lib-1.1.18/src/xine-engine/load_plugins.c 2010-02-24 21:54:02.396132130 +0100
|
2010-04-01 03:28:37 +02:00
|
|
|
@@ -2508,9 +2508,18 @@
|
2008-07-25 17:37:42 +02:00
|
|
|
|
|
|
|
plugin_catalog_t *catalog = self->plugin_catalog;
|
|
|
|
int list_id;
|
2008-01-31 14:59:26 +01:00
|
|
|
+ int havempgdecoder = 0;
|
|
|
|
+ const char * const * p;
|
|
|
|
|
|
|
|
pthread_mutex_lock (&catalog->lock);
|
|
|
|
|
|
|
|
+ _build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_AUDIO_DECODER - 1]);
|
|
|
|
+ for (p = catalog->ids; p && *p; p++) {
|
|
|
|
+ if (strcmp (*p, "mad") == 0 || strcmp (*p, "ffmpegaudio") == 0) {
|
|
|
|
+ havempgdecoder = 1;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
2008-07-25 17:37:42 +02:00
|
|
|
/* calc length of output string and create an array of strings to
|
|
|
|
concatenate */
|
|
|
|
size_t len = 0;
|
2010-04-01 03:28:37 +02:00
|
|
|
@@ -2522,7 +2531,13 @@
|
2008-07-25 17:37:42 +02:00
|
|
|
if (node->plugin_class || _load_plugin_class(self, node, NULL)) {
|
|
|
|
demux_class_t *const cls = (demux_class_t *)node->plugin_class;
|
|
|
|
if( (extensions[list_id] = cls->get_extensions(cls)) != NULL )
|
|
|
|
- len += strlen(extensions[list_id]) +1;
|
|
|
|
+ {
|
|
|
|
+ if(havempgdecoder || !strstr(extensions[list_id], "mp3")) {
|
|
|
|
+ len += strlen(extensions[list_id]) +1;
|
|
|
|
+ } else {
|
|
|
|
+ extensions[list_id] = NULL;
|
|
|
|
+ }
|
|
|
|
+ }
|
2008-01-31 14:59:26 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|