[FFmpeg-devel] [PATCH v9 09/15] fftools/textformat: Add flags param to function avtext_print_integer()
softworkz
ffmpegagent at gmail.com
Sat May 3 11:22:39 EEST 2025
From: softworkz <softworkz at hotmail.com>
Make this function work analog to avtext_print_string() which already
has a flags parameter.
Signed-off-by: softworkz <softworkz at hotmail.com>
---
fftools/ffprobe.c | 2 +-
fftools/textformat/avtextformat.c | 24 ++++++++++++++++++------
fftools/textformat/avtextformat.h | 2 +-
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 1277b1e4f9..444810cf43 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -422,7 +422,7 @@ static void log_callback(void *ptr, int level, const char *fmt, va_list vl)
avtext_print_string(tfc, k, pbuf.str, 0); \
} while (0)
-#define print_int(k, v) avtext_print_integer(tfc, k, v)
+#define print_int(k, v) avtext_print_integer(tfc, k, v, 0)
#define print_q(k, v, s) avtext_print_rational(tfc, k, v, s)
#define print_str(k, v) avtext_print_string(tfc, k, v, 0)
#define print_str_opt(k, v) avtext_print_string(tfc, k, v, AV_TEXTFORMAT_PRINT_STRING_OPTIONAL)
diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
index 91469ef576..5b0f92d5cb 100644
--- a/fftools/textformat/avtextformat.c
+++ b/fftools/textformat/avtextformat.c
@@ -290,10 +290,20 @@ void avtext_print_section_footer(AVTextFormatContext *tctx)
tctx->level--;
}
-void avtext_print_integer(AVTextFormatContext *tctx, const char *key, int64_t val)
+void avtext_print_integer(AVTextFormatContext *tctx, const char *key, int64_t val, int flags)
{
const AVTextFormatSection *section;
+ av_assert0(tctx);
+
+ if (tctx->show_optional_fields == SHOW_OPTIONAL_FIELDS_NEVER)
+ return;
+
+ if (tctx->show_optional_fields == SHOW_OPTIONAL_FIELDS_AUTO
+ && (flags & AV_TEXTFORMAT_PRINT_STRING_OPTIONAL)
+ && !(tctx->formatter->flags & AV_TEXTFORMAT_FLAG_SUPPORTS_OPTIONAL_FIELDS))
+ return;
+
av_assert0(key && tctx->level >= 0 && tctx->level < SECTION_MAX_NB_LEVELS);
section = tctx->section[tctx->level];
@@ -445,10 +455,12 @@ int avtext_print_string(AVTextFormatContext *tctx, const char *key, const char *
section = tctx->section[tctx->level];
- if (tctx->show_optional_fields == SHOW_OPTIONAL_FIELDS_NEVER ||
- (tctx->show_optional_fields == SHOW_OPTIONAL_FIELDS_AUTO
- && (flags & AV_TEXTFORMAT_PRINT_STRING_OPTIONAL)
- && !(tctx->formatter->flags & AV_TEXTFORMAT_FLAG_SUPPORTS_OPTIONAL_FIELDS)))
+ if (tctx->show_optional_fields == SHOW_OPTIONAL_FIELDS_NEVER)
+ return 0;
+
+ if (tctx->show_optional_fields == SHOW_OPTIONAL_FIELDS_AUTO
+ && (flags & AV_TEXTFORMAT_PRINT_STRING_OPTIONAL)
+ && !(tctx->formatter->flags & AV_TEXTFORMAT_FLAG_SUPPORTS_OPTIONAL_FIELDS))
return 0;
if (section->show_all_entries || av_dict_get(section->entries_to_show, key, NULL, 0)) {
@@ -504,7 +516,7 @@ void avtext_print_ts(AVTextFormatContext *tctx, const char *key, int64_t ts, int
if ((!is_duration && ts == AV_NOPTS_VALUE) || (is_duration && ts == 0))
avtext_print_string(tctx, key, "N/A", AV_TEXTFORMAT_PRINT_STRING_OPTIONAL);
else
- avtext_print_integer(tctx, key, ts);
+ avtext_print_integer(tctx, key, ts, 0);
}
void avtext_print_data(AVTextFormatContext *tctx, const char *key,
diff --git a/fftools/textformat/avtextformat.h b/fftools/textformat/avtextformat.h
index 87f57d8c24..8f406de322 100644
--- a/fftools/textformat/avtextformat.h
+++ b/fftools/textformat/avtextformat.h
@@ -138,7 +138,7 @@ void avtext_print_section_header(AVTextFormatContext *tctx, const void *data, in
void avtext_print_section_footer(AVTextFormatContext *tctx);
-void avtext_print_integer(AVTextFormatContext *tctx, const char *key, int64_t val);
+void avtext_print_integer(AVTextFormatContext *tctx, const char *key, int64_t val, int flags);
int avtext_print_string(AVTextFormatContext *tctx, const char *key, const char *val, int flags);
--
ffmpeg-codebot
More information about the ffmpeg-devel
mailing list