[FFmpeg-devel] [PATCH][RFC] ffprobe: Consider the chosen separator when doing CSV escaping

Alexander Strasser eclipse7 at gmx.net
Thu Sep 20 21:22:49 CEST 2012


Hi Stefano,

Stefano Sabatini wrote:
> On date Tuesday 2012-09-18 23:26:42 +0200, Alexander Strasser encoded:
> > Signed-off-by: Alexander Strasser <eclipse7 at gmx.net>
> > ---
> > 
> 
> >   Just a first step. More stuff like escaping key fields and checking the
> > separator does not collide with other meta characters would be the ones I
> > can think ATM.
> 
> which other meta characters?

  I think the output will be broken if the separator character is equal to
the end-of-record or quote character. I do not yet know much of the ffprobe
code so please forgive if I am ignorant.

> >   But I wanted comments on this ideas first. As the discussion might lead
> > to develop things in a different direction.
> > 
> >   Also I am curious if the code will work with all compilers we currently
> > support. AFAICT non-const aggregate initialization is not allowed by C89.
> > But it is trivial to rewrite anyway.
> > 
> >  ffprobe.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/ffprobe.c b/ffprobe.c
> > index aad5d90..09be445 100644
> > --- a/ffprobe.c
> > +++ b/ffprobe.c
> > @@ -566,7 +566,8 @@ static const char *c_escape_str(AVBPrint *dst, const char *src, const char sep,
> >   */
> >  static const char *csv_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
> >  {
> > -    int needs_quoting = !!src[strcspn(src, "\",\n\r")];
> > +    char meta_chars[] = { sep, '"', '\n', '\r', '\0' };
> > +    int needs_quoting = !!src[strcspn(src, meta_chars)];
> 
> Should be good if tested, thanks.

  I tested it and will push soon if I hear no more comments. Especially
if someone wants to compile-test: now would be the time. Else I will 
monitor what we have on FATE.

  Alexander


More information about the ffmpeg-devel mailing list