From: softworkz <softwo...@hotmail.com> This allows future addition of options without changes to the signature of avtext_context_open().
Reviewed-by: Stefano Sabatini <stefa...@gmail.com> Signed-off-by: softworkz <softwo...@hotmail.com> --- fftools/ffprobe.c | 13 +++++++++---- fftools/textformat/avtextformat.c | 21 ++++++++------------- fftools/textformat/avtextformat.h | 16 +++++++++------- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index f5c83925b9..1277b1e4f9 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -3168,10 +3168,15 @@ int main(int argc, char **argv) if (ret < 0) goto end; - if ((ret = avtext_context_open(&tctx, f, wctx, f_args, - sections, FF_ARRAY_ELEMS(sections), show_value_unit, - use_value_prefix, use_byte_value_binary_prefix, use_value_sexagesimal_format, - show_optional_fields, show_data_hash)) >= 0) { + AVTextFormatOptions tf_options = { + .show_optional_fields = show_optional_fields, + .show_value_unit = show_value_unit, + .use_value_prefix = use_value_prefix, + .use_byte_value_binary_prefix = use_byte_value_binary_prefix, + .use_value_sexagesimal_format = use_value_sexagesimal_format, + }; + + if ((ret = avtext_context_open(&tctx, f, wctx, f_args, sections, FF_ARRAY_ELEMS(sections), tf_options, show_data_hash)) >= 0) { if (f == &avtextformatter_xml) tctx->string_validation_utf8_flags |= AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES; diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c index 5ba427d6f2..b8e283d00c 100644 --- a/fftools/textformat/avtextformat.c +++ b/fftools/textformat/avtextformat.c @@ -125,13 +125,7 @@ void avtext_context_close(AVTextFormatContext **ptctx) int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *formatter, AVTextWriterContext *writer_context, const char *args, - const AVTextFormatSection *sections, int nb_sections, - int show_value_unit, - int use_value_prefix, - int use_byte_value_binary_prefix, - int use_value_sexagesimal_format, - int show_optional_fields, - char *show_data_hash) + const AVTextFormatSection *sections, int nb_sections, AVTextFormatOptions options, char *show_data_hash) { AVTextFormatContext *tctx; int i, ret = 0; @@ -155,11 +149,11 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form goto fail; } - tctx->show_value_unit = show_value_unit; - tctx->use_value_prefix = use_value_prefix; - tctx->use_byte_value_binary_prefix = use_byte_value_binary_prefix; - tctx->use_value_sexagesimal_format = use_value_sexagesimal_format; - tctx->show_optional_fields = show_optional_fields; + tctx->show_value_unit = options.show_value_unit; + tctx->use_value_prefix = options.use_value_prefix; + tctx->use_byte_value_binary_prefix = options.use_byte_value_binary_prefix; + tctx->use_value_sexagesimal_format = options.use_value_sexagesimal_format; + tctx->show_optional_fields = options.show_optional_fields; if (nb_sections > SECTION_MAX_NB_SECTIONS) { av_log(tctx, AV_LOG_ERROR, "The number of section definitions (%d) is larger than the maximum allowed (%d)\n", nb_sections, SECTION_MAX_NB_SECTIONS); @@ -202,7 +196,7 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form av_dict_free(&opts); } - if (show_data_hash) + if (show_data_hash) { if ((ret = av_hash_alloc(&tctx->hash, show_data_hash)) < 0) { if (ret == AVERROR(EINVAL)) { const char *n; @@ -213,6 +207,7 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form } goto fail; } + } /* validate replace string */ { diff --git a/fftools/textformat/avtextformat.h b/fftools/textformat/avtextformat.h index aea691f351..071149c5be 100644 --- a/fftools/textformat/avtextformat.h +++ b/fftools/textformat/avtextformat.h @@ -118,17 +118,19 @@ struct AVTextFormatContext { unsigned int string_validation_utf8_flags; }; +typedef struct AVTextFormatOptions { + int show_optional_fields; + int show_value_unit; + int use_value_prefix; + int use_byte_value_binary_prefix; + int use_value_sexagesimal_format; +} AVTextFormatOptions; + #define AV_TEXTFORMAT_PRINT_STRING_OPTIONAL 1 #define AV_TEXTFORMAT_PRINT_STRING_VALIDATE 2 int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *formatter, AVTextWriterContext *writer_context, const char *args, - const AVTextFormatSection *sections, int nb_sections, - int show_value_unit, - int use_value_prefix, - int use_byte_value_binary_prefix, - int use_value_sexagesimal_format, - int show_optional_fields, - char *show_data_hash); + const AVTextFormatSection *sections, int nb_sections, AVTextFormatOptions options, char *show_data_hash); void avtext_context_close(AVTextFormatContext **tctx); -- ffmpeg-codebot _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".