[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