[FFmpeg-cvslog] fftools/textformat/avtextformat: Fix races when initializing formatters
Andreas Rheinhardt
git at videolan.org
Mon Jun 2 01:58:29 EEST 2025
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sun Jun 1 04:28:12 2025 +0200| [6f452ad1acadc50abc7d9b1b9d264e940a451ee7] | committer: Andreas Rheinhardt
fftools/textformat/avtextformat: Fix races when initializing formatters
Reviewed-by: softworkz . <softworkz-at-hotmail.com at ffmpeg.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6f452ad1acadc50abc7d9b1b9d264e940a451ee7
---
fftools/textformat/avtextformat.c | 33 ++++++++++++---------------------
1 file changed, 12 insertions(+), 21 deletions(-)
diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
index 0b61d353db..14779e6f0c 100644
--- a/fftools/textformat/avtextformat.c
+++ b/fftools/textformat/avtextformat.c
@@ -681,31 +681,22 @@ fail:
return ret;
}
-static const AVTextFormatter *registered_formatters[9 + 1];
-
-static void formatters_register_all(void)
+static const AVTextFormatter *const registered_formatters[] =
{
- static int initialized;
-
- if (initialized)
- return;
- initialized = 1;
-
- registered_formatters[0] = &avtextformatter_default;
- registered_formatters[1] = &avtextformatter_compact;
- registered_formatters[2] = &avtextformatter_csv;
- registered_formatters[3] = &avtextformatter_flat;
- registered_formatters[4] = &avtextformatter_ini;
- registered_formatters[5] = &avtextformatter_json;
- registered_formatters[6] = &avtextformatter_xml;
- registered_formatters[7] = &avtextformatter_mermaid;
- registered_formatters[8] = &avtextformatter_mermaidhtml;
-}
+ &avtextformatter_default,
+ &avtextformatter_compact,
+ &avtextformatter_csv,
+ &avtextformatter_flat,
+ &avtextformatter_ini,
+ &avtextformatter_json,
+ &avtextformatter_xml,
+ &avtextformatter_mermaid,
+ &avtextformatter_mermaidhtml,
+ NULL
+};
const AVTextFormatter *avtext_get_formatter_by_name(const char *name)
{
- formatters_register_all();
-
for (int i = 0; registered_formatters[i]; i++) {
const char *end;
if (av_strstart(name, registered_formatters[i]->name, &end) &&
More information about the ffmpeg-cvslog
mailing list