From b874e2d0a04603f28bbfe5b87de9e01e7e87bf43 Mon Sep 17 00:00:00 2001
From: Stefano Sabatini <stefasab@gmail.com>
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 e6489225841..d6c7093143a 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 (!w_str)
-        w_str = av_strdup("default");
+    if (!print_format)
+        print_format = av_strdup("default");
+    w_name  = av_strtok(print_format, "=", &buf);
+    w_args = buf;
 
-    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;
 }
-- 
GitLab