summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-10-20 01:58:43 +0300
committerUoti Urpala <uau@mplayer2.org>2011-10-20 02:16:35 +0300
commit3595dcc0896c6e3d117510b3361d75568cfa5f8e (patch)
tree3df8fad5fb02dc9cc3a57b4640f6e11d0d45e471 /libmpcodecs
parent49b2bc59477395370065a22ecbe05a36c246bc73 (diff)
downloadmpv-3595dcc0896c6e3d117510b3361d75568cfa5f8e.tar.bz2
mpv-3595dcc0896c6e3d117510b3361d75568cfa5f8e.tar.xz
audio/video: delete buggy "dynamic plugin" code
Codec selection for audio and video decoding had a "dynamic plugin" feature that tried to load a shared library for any codec that had not been enabled at compilation (disabled by default, but could be enabled with --enable-dynamic-plugins configure switch; for unknown reasons some distro packages have enabled it). The implementation was buggy and could cause normal codec selection fallback to fail if the feature was enabled. I'm not aware of any real uses of such dynamic plugins and the feature seems questionable anyway (there are no ABI guarantees that would make it safe to use). Remove the buggy feature.
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/dec_audio.c44
-rw-r--r--libmpcodecs/dec_video.c44
2 files changed, 0 insertions, 88 deletions
diff --git a/libmpcodecs/dec_audio.c b/libmpcodecs/dec_audio.c
index 0541947f60..2445649075 100644
--- a/libmpcodecs/dec_audio.c
+++ b/libmpcodecs/dec_audio.c
@@ -37,10 +37,6 @@
#include "libaf/af.h"
-#ifdef CONFIG_DYNAMIC_PLUGINS
-#include <dlfcn.h>
-#endif
-
#ifdef CONFIG_FAKE_MONO
int fakemono = 0;
#endif
@@ -177,42 +173,6 @@ static int init_audio(sh_audio_t *sh_audio, char *codecname, char *afm,
sh_audio->codec->drv))
break;
mpadec = mpcodecs_ad_drivers[i];
-#ifdef CONFIG_DYNAMIC_PLUGINS
- if (!mpadec) {
- /* try to open shared decoder plugin */
- int buf_len;
- char *buf;
- ad_functions_t *funcs_sym;
- ad_info_t *info_sym;
-
- buf_len =
- strlen(MPLAYER_LIBDIR) + strlen(sh_audio->codec->drv) + 16;
- buf = malloc(buf_len);
- if (!buf)
- break;
- snprintf(buf, buf_len, "%s/mplayer/ad_%s.so", MPLAYER_LIBDIR,
- sh_audio->codec->drv);
- mp_msg(MSGT_DECAUDIO, MSGL_DBG2,
- "Trying to open external plugin: %s\n", buf);
- sh_audio->dec_handle = dlopen(buf, RTLD_LAZY);
- if (!sh_audio->dec_handle)
- break;
- snprintf(buf, buf_len, "mpcodecs_ad_%s", sh_audio->codec->drv);
- funcs_sym = dlsym(sh_audio->dec_handle, buf);
- if (!funcs_sym || !funcs_sym->info || !funcs_sym->preinit
- || !funcs_sym->init || !funcs_sym->uninit
- || !funcs_sym->control || !funcs_sym->decode_audio)
- break;
- info_sym = funcs_sym->info;
- if (strcmp(info_sym->short_name, sh_audio->codec->drv))
- break;
- free(buf);
- mpadec = funcs_sym;
- mp_msg(MSGT_DECAUDIO, MSGL_V,
- "Using external decoder plugin (%s/mplayer/ad_%s.so)!\n",
- MPLAYER_LIBDIR, sh_audio->codec->drv);
- }
-#endif
if (!mpadec) { // driver not available (==compiled in)
mp_tmsg(MSGT_DECAUDIO, MSGL_ERR,
"Requested audio codec family [%s] (afm=%s) not available.\nEnable it at compilation.\n",
@@ -308,10 +268,6 @@ void uninit_audio(sh_audio_t *sh_audio)
mp_tmsg(MSGT_DECAUDIO, MSGL_V, "Uninit audio: %s\n",
sh_audio->codec->drv);
sh_audio->ad_driver->uninit(sh_audio);
-#ifdef CONFIG_DYNAMIC_PLUGINS
- if (sh_audio->dec_handle)
- dlclose(sh_audio->dec_handle);
-#endif
sh_audio->initialized = 0;
}
av_freep(&sh_audio->a_buffer);
diff --git a/libmpcodecs/dec_video.c b/libmpcodecs/dec_video.c
index b41e4fb768..91b255114a 100644
--- a/libmpcodecs/dec_video.c
+++ b/libmpcodecs/dec_video.c
@@ -44,10 +44,6 @@
#include "dec_video.h"
-#ifdef CONFIG_DYNAMIC_PLUGINS
-#include <dlfcn.h>
-#endif
-
// ===================================================================
extern double video_time_usage;
@@ -233,10 +229,6 @@ void uninit_video(sh_video_t *sh_video)
return;
mp_tmsg(MSGT_DECVIDEO, MSGL_V, "Uninit video: %s\n", sh_video->codec->drv);
sh_video->vd_driver->uninit(sh_video);
-#ifdef CONFIG_DYNAMIC_PLUGINS
- if (sh_video->dec_handle)
- dlclose(sh_video->dec_handle);
-#endif
vf_uninit_filter_chain(sh_video->vfilter);
sh_video->initialized = 0;
}
@@ -296,42 +288,6 @@ static int init_video(sh_video_t *sh_video, char *codecname, char *vfm,
sh_video->codec->drv))
break;
sh_video->vd_driver = mpcodecs_vd_drivers[i];
-#ifdef CONFIG_DYNAMIC_PLUGINS
- if (!sh_video->vd_driver) {
- /* try to open shared decoder plugin */
- int buf_len;
- char *buf;
- vd_functions_t *funcs_sym;
- vd_info_t *info_sym;
-
- buf_len =
- strlen(MPLAYER_LIBDIR) + strlen(sh_video->codec->drv) + 16;
- buf = malloc(buf_len);
- if (!buf)
- break;
- snprintf(buf, buf_len, "%s/mplayer/vd_%s.so", MPLAYER_LIBDIR,
- sh_video->codec->drv);
- mp_msg(MSGT_DECVIDEO, MSGL_DBG2,
- "Trying to open external plugin: %s\n", buf);
- sh_video->dec_handle = dlopen(buf, RTLD_LAZY);
- if (!sh_video->dec_handle)
- break;
- snprintf(buf, buf_len, "mpcodecs_vd_%s", sh_video->codec->drv);
- funcs_sym = dlsym(sh_video->dec_handle, buf);
- if (!funcs_sym || !funcs_sym->info || !funcs_sym->init
- || !funcs_sym->uninit || !funcs_sym->control
- || !funcs_sym->decode)
- break;
- info_sym = funcs_sym->info;
- if (strcmp(info_sym->short_name, sh_video->codec->drv))
- break;
- free(buf);
- sh_video->vd_driver = funcs_sym;
- mp_msg(MSGT_DECVIDEO, MSGL_V,
- "Using external decoder plugin (%s/mplayer/vd_%s.so)!\n",
- MPLAYER_LIBDIR, sh_video->codec->drv);
- }
-#endif
if (!sh_video->vd_driver) { // driver not available (==compiled in)
mp_tmsg(MSGT_DECVIDEO, MSGL_WARN,
_("Requested video codec family [%s] (vfm=%s) not available.\nEnable it at compilation.\n"),