[FFmpeg-devel] [PATCH] [2/??] [3/3] Filter graphs - Parser for a graph description

Vitor Sessak vitor1001
Sun Feb 24 21:21:39 CET 2008


Hi

Michael Niedermayer wrote:
> On Sat, Feb 16, 2008 at 12:45:12PM +0100, Vitor Sessak wrote:
>> See $subj.
>>
> 
>> /*
>>  * filter graph descriptions
>>  * copyright (c) 2007 Bobby Bingham
> [...]
>> #include <ctype.h>
>> #include <string.h>
>>
>> #include "avfilter.h"
>> #include "avfiltergraph.h"
>>
>> #define LINESIZE    240             ///< maximum length of an input line
>>
>> /** a comment is a line which is empty, or starts with whitespace, ';' or '#' */
>> static inline int is_line_comment(char *line)
>> {
>>     return line[0] == 0     ||
>>            isspace(line[0]) ||
>>            line[0] == ';'   ||
>>            line[0] == '#';
>> }
> 
> A filter graph description should at least treat all whitespace outside
> quotes equal that is '\n' == ' ' == '  '
> Also it should be terse and it should be useable on the command line, that is
> avoid characters which needs complicated escaping to pass the shell.
> 
> Heres a possible example, this is just a idea after 5min thinking and might
> not be the best ...
> [in]scale=400:300,crop=200:100,[+tmp]picInPic=50:50,rotate=1,split[+out],delay=50[tmp]
> 
> would result in a filter graph like:
> 
> in --> scale --> crop --> picInPic --> rotate --> split --> out
>                              ^                      |
>                              |                      |
>                            delay<-------------------/

This doesn't looks to would work well with

  in --> crop --> picInPic --> rotate --> split --> vflip --> out
                     ^                      |
                     |                      |
                   delay<---- hflip --------/


Maybe something like

(in)crop=400:300,(tmp1)picInPic=50:50,rotate=1,split(tmp2),vflip(out); 
(tmp2)hflip,delay(tmp1)

And for

  in --> crop --> rotate --> vflip --> out

crop=400:300,rotate=1,vflip,split

meaning that when there is no semicolon, the (in) in the beginning and 
the (out) in the end can be omitted. Also, I don't understand the point 
of explicitly putting a "+" in new vertexes...

Finally, I prefer parenthesis instead of brackets... What do you think?

-Vitor




More information about the ffmpeg-devel mailing list