On date Sunday 2025-04-20 22:59:08 +0000, softworkz wrote:
> From: softworkz <softwo...@hotmail.com>
> 
> This function works analog to the avtext_print_string() which already
> has a flags parameter.
> 
> Signed-off-by: softworkz <softwo...@hotmail.com>
> ---
>  fftools/textformat/avtextformat.c | 21 +++++++++++++++++++++
>  fftools/textformat/avtextformat.h |  2 ++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/fftools/textformat/avtextformat.c 
> b/fftools/textformat/avtextformat.c
> index 893b11298e..d2d84c4f1d 100644
> --- a/fftools/textformat/avtextformat.c
> +++ b/fftools/textformat/avtextformat.c
> @@ -311,6 +311,27 @@ void avtext_print_integer(AVTextFormatContext *tctx, 
> const char *key, int64_t va
>      }
>  }
>  
> +void avtext_print_integer_flags(AVTextFormatContext *tctx, const char *key, 
> int64_t val, int flags)
> +{
> +    const AVTextFormatSection *section;
> +
> +    if (!tctx || !key || tctx->level < 0 || tctx->level >= 
> SECTION_MAX_NB_LEVELS)
> +        return;
> +
> +    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)))
> +        return;

possibly complex logic which should be factorized if shared with
another function - this can be done through an inline function or macro?

> +
> +    if (section->show_all_entries || av_dict_get(section->entries_to_show, 
> key, NULL, 0)) {
> +        tctx->formatter->print_integer(tctx, key, val);
> +        tctx->nb_item[tctx->level]++;
> +    }

We can make avtext_print_integer use the _flags variant to avoid code 
duplication.

> +}
> +
>  static inline int validate_string(AVTextFormatContext *tctx, char **dstp, 
> const char *src)
>  {
>      const uint8_t *p, *endp, *srcp = (const uint8_t *)src;
> diff --git a/fftools/textformat/avtextformat.h 
> b/fftools/textformat/avtextformat.h
> index aea691f351..16cd9b214f 100644
> --- a/fftools/textformat/avtextformat.h
> +++ b/fftools/textformat/avtextformat.h
> @@ -139,6 +139,8 @@ void avtext_print_section_footer(AVTextFormatContext 
> *tctx);
>  
>  void avtext_print_integer(AVTextFormatContext *tctx, const char *key, 
> int64_t val);
>  
> +void avtext_print_integer_flags(AVTextFormatContext *tctx, const char *key, 
> int64_t val, int flags);
> +
>  int avtext_print_string(AVTextFormatContext *tctx, const char *key, const 
> char *val, int flags);
>  
>  void avtext_print_unit_int(AVTextFormatContext *tctx, const char *key, int 
> value, const char *unit);
> -- 
> 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".
_______________________________________________
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".

Reply via email to