|
|
@ -117,8 +117,8 @@ static char *consume_string(const char **buf) |
|
|
|
if(*in) in++; |
|
|
|
if(*in) in++; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
case ')': |
|
|
|
case ']': |
|
|
|
case '(': |
|
|
|
case '[': |
|
|
|
case '=': |
|
|
|
case '=': |
|
|
|
case ',': |
|
|
|
case ',': |
|
|
|
*out++= 0; |
|
|
|
*out++= 0; |
|
|
@ -146,7 +146,7 @@ static void parse_link_name(const char **buf, char **name) |
|
|
|
if (!*name[0]) |
|
|
|
if (!*name[0]) |
|
|
|
goto fail; |
|
|
|
goto fail; |
|
|
|
|
|
|
|
|
|
|
|
if (*(*buf)++ != ')') |
|
|
|
if (*(*buf)++ != ']') |
|
|
|
goto fail; |
|
|
|
goto fail; |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
return; |
|
|
@ -211,7 +211,7 @@ static int parse_inouts(const char **buf, AVFilterInOut **inout, int firstpad, |
|
|
|
enum LinkType type, AVFilterContext *filter) |
|
|
|
enum LinkType type, AVFilterContext *filter) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int pad = firstpad; |
|
|
|
int pad = firstpad; |
|
|
|
while (**buf == '(') { |
|
|
|
while (**buf == '[') { |
|
|
|
AVFilterInOut *inoutn = av_malloc(sizeof(AVFilterInOut)); |
|
|
|
AVFilterInOut *inoutn = av_malloc(sizeof(AVFilterInOut)); |
|
|
|
parse_link_name(buf, &inoutn->name); |
|
|
|
parse_link_name(buf, &inoutn->name); |
|
|
|
inoutn->type = type; |
|
|
|
inoutn->type = type; |
|
|
@ -225,8 +225,8 @@ static int parse_inouts(const char **buf, AVFilterInOut **inout, int firstpad, |
|
|
|
|
|
|
|
|
|
|
|
static const char *skip_inouts(const char *buf) |
|
|
|
static const char *skip_inouts(const char *buf) |
|
|
|
{ |
|
|
|
{ |
|
|
|
while (*buf == '(') { |
|
|
|
while (*buf == '[') { |
|
|
|
buf += strcspn(buf, ")"); |
|
|
|
buf += strcspn(buf, "]"); |
|
|
|
buf++; |
|
|
|
buf++; |
|
|
|
} |
|
|
|
} |
|
|
|
return buf; |
|
|
|
return buf; |
|
|
|