summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/ad_realaud.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpcodecs/ad_realaud.c')
-rw-r--r--libmpcodecs/ad_realaud.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/libmpcodecs/ad_realaud.c b/libmpcodecs/ad_realaud.c
index 3fa812b16d..6036e4f760 100644
--- a/libmpcodecs/ad_realaud.c
+++ b/libmpcodecs/ad_realaud.c
@@ -41,7 +41,7 @@ static void* (*raGetFlavorProperty)(void*,unsigned long,unsigned long,in
static unsigned long (*raInitDecoder)(void*, void*);
static unsigned long (*raOpenCodec2)(void*);
static unsigned long (*raSetFlavor)(void*,unsigned long);
-//static void (*raSetDLLAccessPath)(unsigned long);
+static void (*raSetDLLAccessPath)(char*);
static void (*raSetPwd)(char*,char*);
typedef struct {
@@ -77,16 +77,26 @@ static int preinit(sh_audio_t *sh){
raOpenCodec2 = dlsym(handle, "RAOpenCodec2");
raInitDecoder = dlsym(handle, "RAInitDecoder");
raSetFlavor = dlsym(handle, "RASetFlavor");
-// raSetDLLAccessPath = dlsym(handle, "SetDLLAccessPath");
+ raSetDLLAccessPath = dlsym(handle, "SetDLLAccessPath");
raSetPwd = dlsym(handle, "RASetPwd"); // optional, used by SIPR
if(!raCloseCodec || !raDecode || !raFlush || !raFreeDecoder ||
!raGetFlavorProperty || !raOpenCodec2 || !raSetFlavor ||
/*!raSetDLLAccessPath ||*/ !raInitDecoder){
- mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Cannot resolve symbols - incompatible dll\n");
+ mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Cannot resolve symbols - incompatible dll: %s\n",path);
return 0;
}
+ if(raSetDLLAccessPath){
+ sprintf(path, "DT_Codecs=" REALCODEC_PATH);
+ if(path[strlen(path)-1]!='/'){
+ path[strlen(path)+1]=0;
+ path[strlen(path)]='/';
+ }
+ path[strlen(path)+1]=0;
+ raSetDLLAccessPath(path);
+ }
+
result=raOpenCodec2(&sh->context);
if(result){
mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Decoder open failed, error code: 0x%X\n",result);