Fix missing command line bug by making the input parameter constant.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25330 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
ulion 2007-12-10 01:43:33 +00:00
parent 3b05fa9631
commit 920a892892
1 changed files with 8 additions and 6 deletions

View File

@ -102,13 +102,14 @@ af_instance_t* af_get(af_stream_t* s, char* name)
/*/ Function for creating a new filter of type name. The name may /*/ Function for creating a new filter of type name. The name may
contain the commandline parameters for the filter */ contain the commandline parameters for the filter */
static af_instance_t* af_create(af_stream_t* s, char* name) static af_instance_t* af_create(af_stream_t* s, const char* name_with_cmd)
{ {
char* name = strdup(name_with_cmd);
char* cmdline = name; char* cmdline = name;
// Allocate space for the new filter and reset all pointers // Allocate space for the new filter and reset all pointers
af_instance_t* new=malloc(sizeof(af_instance_t)); af_instance_t* new=malloc(sizeof(af_instance_t));
if(!new){ if (!name || !new) {
af_msg(AF_MSG_ERROR,"[libaf] Could not allocate memory\n"); af_msg(AF_MSG_ERROR,"[libaf] Could not allocate memory\n");
goto err_out; goto err_out;
} }
@ -137,17 +138,18 @@ static af_instance_t* af_create(af_stream_t* s, char* name)
if(AF_OK == new->info->open(new) && if(AF_OK == new->info->open(new) &&
AF_ERROR < new->control(new,AF_CONTROL_POST_CREATE,&s->cfg)){ AF_ERROR < new->control(new,AF_CONTROL_POST_CREATE,&s->cfg)){
if(cmdline){ if(cmdline){
if(AF_ERROR<new->control(new,AF_CONTROL_COMMAND_LINE,cmdline)) if(!AF_ERROR<new->control(new,AF_CONTROL_COMMAND_LINE,cmdline))
return new; goto err_out;
} }
else free(name);
return new; return new;
} }
err_out: err_out:
free(new); free(new);
af_msg(AF_MSG_ERROR,"[libaf] Couldn't create or open audio filter '%s'\n", af_msg(AF_MSG_ERROR,"[libaf] Couldn't create or open audio filter '%s'\n",
name); name);
free(name);
return NULL; return NULL;
} }