Mercurial > mplayer.hg
changeset 10101:f3f3e25f8149
use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
author | alex |
---|---|
date | Mon, 12 May 2003 15:50:40 +0000 |
parents | 00c091706a73 |
children | 0f59b1e9ad97 |
files | libmpcodecs/ad_realaud.c |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/ad_realaud.c Mon May 12 14:39:40 2003 +0000 +++ b/libmpcodecs/ad_realaud.c Mon May 12 15:50:40 2003 +0000 @@ -211,8 +211,10 @@ unsigned int result; int len=0; void* prop; - char path[4096]; + char *path; + path = malloc(strlen(REALCODEC_PATH)+strlen(sh->codec->dll)+2); + if (!path) return 0; sprintf(path, REALCODEC_PATH "/%s", sh->codec->dll); /* first try to load linux dlls, if failed and we're supporting win32 dlls, @@ -226,6 +228,7 @@ { mp_msg(MSGT_DECVIDEO, MSGL_ERR, MSGTR_MissingDLLcodec, sh->codec->dll); mp_msg(MSGT_DECVIDEO, MSGL_HINT, "Read the RealAudio section of the DOCS!\n"); + free(path); return 0; } @@ -234,7 +237,9 @@ #else if(raSetDLLAccessPath){ #endif + int i; // used by 'SIPR' + path = realloc(path, strlen(REALCODEC_PATH) + 12); sprintf(path, "DT_Codecs=" REALCODEC_PATH); if(path[strlen(path)-1]!='/'){ path[strlen(path)+1]=0; @@ -243,7 +248,11 @@ path[strlen(path)+1]=0; #ifdef USE_WIN32DLL if (dll_type == 1) + { + for (i=0; i < strlen(path); i++) + if (path[i] == '/') path[i] = '\\'; wraSetDLLAccessPath(path); + } else #endif raSetDLLAccessPath(path); @@ -266,6 +275,7 @@ return 0; } // printf("opencodec ok (result: %x)\n", result); + free(path); /* after this it isn't used anymore */ sh->samplerate=sh->wf->nSamplesPerSec; sh->samplesize=sh->wf->wBitsPerSample/8;