From b874e2d0a04603f28bbfe5b87de9e01e7e87bf43 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sat, 15 Oct 2011 00:38:29 +0200 Subject: [PATCH] ffprobe: prefer av_strtok() over av_get_token() for parsing print_format string Simplify, and avoid the need for multiple escaping levels. --- ffprobe.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/ffprobe.c b/ffprobe.c index e648922584..d6c7093143 100644 --- a/ffprobe.c +++ b/ffprobe.c @@ -809,26 +809,20 @@ static int probe_file(const char *filename) AVFormatContext *fmt_ctx; int ret; Writer *w; - const char *buf = print_format; - char *w_str = NULL, *w_args = NULL; + char *buf; + char *w_name = NULL, *w_args = NULL; WriterContext *wctx; writer_register_all(); - if (buf) { - w_str = av_get_token(&buf, "="); - if (*buf == '=') { - buf++; - w_args = av_get_token(&buf, ""); - } - } + if (!print_format) + print_format = av_strdup("default"); + w_name = av_strtok(print_format, "=", &buf); + w_args = buf; - if (!w_str) - w_str = av_strdup("default"); - - w = writer_get_by_name(w_str); + w = writer_get_by_name(w_name); if (!w) { - av_log(NULL, AV_LOG_ERROR, "Invalid output format '%s'\n", w_str); + av_log(NULL, AV_LOG_ERROR, "Unknown output format with name '%s'\n", w_name); ret = AVERROR(EINVAL); goto end; } @@ -848,8 +842,7 @@ static int probe_file(const char *filename) writer_close(&wctx); end: - av_free(w_str); - av_free(w_args); + av_free(print_format); return ret; }