forked from pool/xine-lib
44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
|
diff -urp ../xine-lib-1.1.4.orig/src/xine-engine/load_plugins.c ./src/xine-engine/load_plugins.c
|
||
|
--- ../xine-lib-1.1.4.orig/src/xine-engine/load_plugins.c 2007-01-19 00:30:18.000000000 +0100
|
||
|
+++ ./src/xine-engine/load_plugins.c 2007-01-30 19:04:56.000000000 +0100
|
||
|
@@ -2366,9 +2366,19 @@ char *xine_get_file_extensions (xine_t *
|
||
|
plugin_node_t *node;
|
||
|
char *str;
|
||
|
int list_id, list_size;
|
||
|
+ 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;
|
||
|
+ }
|
||
|
+ }
|
||
|
+
|
||
|
/* calc length of output */
|
||
|
|
||
|
len = 0;
|
||
|
@@ -2382,7 +2392,8 @@ char *xine_get_file_extensions (xine_t *
|
||
|
|
||
|
cls = (demux_class_t *)node->plugin_class;
|
||
|
|
||
|
- if((exts = cls->get_extensions(cls)) && *exts)
|
||
|
+ if((exts = cls->get_extensions(cls)) && *exts &&
|
||
|
+ (havempgdecoder || !strstr (exts, "mp3")))
|
||
|
len += strlen(exts) + 1;
|
||
|
}
|
||
|
}
|
||
|
@@ -2402,7 +2413,8 @@ char *xine_get_file_extensions (xine_t *
|
||
|
|
||
|
cls = (demux_class_t *)node->plugin_class;
|
||
|
|
||
|
- if((e = cls->get_extensions (cls)) && *e) {
|
||
|
+ if((e = cls->get_extensions (cls)) && *e &&
|
||
|
+ (havempgdecoder || !strstr (e, "mp3"))) {
|
||
|
l = strlen(e);
|
||
|
memcpy (&str[pos], e, l);
|
||
|
|