xine-lib/xine-lib-1.1.17-demuxcheckfor_mad_ffmpeg.patch

47 lines
1.6 KiB
Diff

From 8861e0d755127fde4b57d32561491853e49a0edc Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <lnussel@suse.de>
Date: Fri, 25 Jul 2008 15:07:23 +0200
Subject: [PATCH] xine-lib-demuxcheckfor_mad_ffmpeg-LOCAL.diff
===================================================================
---
src/xine-engine/load_plugins.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
--- xine-lib-1.1.16.3.orig/src/xine-engine/load_plugins.c 2009-02-10 18:21:07.000000000 +0100
+++ xine-lib-1.1.16.3/src/xine-engine/load_plugins.c 2009-11-14 11:00:26.719796977 +0100
@@ -2487,9 +2487,18 @@
plugin_catalog_t *catalog = self->plugin_catalog;
int list_id;
+ 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 string and create an array of strings to
concatenate */
size_t len = 0;
@@ -2501,7 +2510,13 @@
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;
+ }
+ }
}
}