return NULL;
}
+#define ESCAPE_INIT_BUF_SIZE 256
+
+#define ESCAPE_CHECK_SIZE(src, size, max_size) \
+ if (size > max_size) { \
+ char buf[64]; \
+ snprintf(buf, sizeof(buf), "%s", src); \
+ av_log(log_ctx, AV_LOG_WARNING, \
+ "String '%s...' with is too big\n", buf); \
+ return "FFPROBE_TOO_BIG_STRING"; \
+ }
+
+#define ESCAPE_REALLOC_BUF(dst_size_p, dst_p, src, size) \
+ if (*dst_size_p < size) { \
+ char *q = av_realloc(*dst_p, size); \
+ if (!q) { \
+ char buf[64]; \
+ snprintf(buf, sizeof(buf), "%s", src); \
+ av_log(log_ctx, AV_LOG_WARNING, \
+ "String '%s...' could not be escaped\n", buf); \
+ return "FFPROBE_THIS_STRING_COULD_NOT_BE_ESCAPED"; \
+ } \
+ *dst_size_p = size; \
+ *dst = q; \
+ }
+
/* WRITERS */
/* Default output */
size_t buf_size;
} JSONContext;
-#define ESCAPE_INIT_BUF_SIZE 256
-
static av_cold int json_init(WriterContext *wctx, const char *args, void *opaque)
{
JSONContext *json = wctx->priv;
av_freep(&json->buf);
}
-#define ESCAPE_CHECK_SIZE(src, size, max_size) \
- if (size > max_size) { \
- char buf[64]; \
- snprintf(buf, sizeof(buf), "%s", src); \
- av_log(log_ctx, AV_LOG_WARNING, \
- "String '%s...' with is too big\n", buf); \
- return "FFPROBE_TOO_BIG_STRING"; \
- }
-
-#define ESCAPE_REALLOC_BUF(dst_size_p, dst_p, src, size) \
- if (*dst_size_p < size) { \
- char *q = av_realloc(*dst_p, size); \
- if (!q) { \
- char buf[64]; \
- snprintf(buf, sizeof(buf), "%s", src); \
- av_log(log_ctx, AV_LOG_WARNING, \
- "String '%s...' could not be escaped\n", buf); \
- return "FFPROBE_THIS_STRING_COULD_NOT_BE_ESCAPED"; \
- } \
- *dst_size_p = size; \
- *dst = q; \
- }
-
static const char *json_escape_str(char **dst, size_t *dst_size, const char *src,
void *log_ctx)
{
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;
}
writer_close(&wctx);
end:
- av_free(w_str);
- av_free(w_args);
+ av_freep(&print_format);
return ret;
}