[FFmpeg-devel] [PATCH v10 0/4] print_graphs: Complete Filtergraph Printing

ffmpegagent ffmpegagent at gmail.com
Thu Apr 10 06:30:40 EEST 2025


Due to the additional work on graph visualization (see
https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2025-March/341296.html), I
have removed the two graph printing commits from this patchset rather than
adding to it, as to avoid wasting the effort already spent on reviewing.

So, now it's a graph printing patchset without graph printing :-)

All other commits are unchanged from the previous version. I'm also
resubmitting to give it a final run of the tests on various platforms.


V9
==

 * Fix outdir creation for out-of-tree builds
   (thanks, Michael)


V10
===

 * Nothing new, just fixed a merge conflict that I wanted to take a final
   round through Patchwork before applying.

softworkz (4):
  fftools/textformat: Extract and generalize textformat api from
    ffprobe.c
  fftools/ffprobe: Change to use textformat api
  fftools/ffprobe: Rename writer_print_section_* and WriterContext
  fftools/ffprobe: Rename AVTextFormatContext variables (w => tfc)

 fftools/Makefile                   |   15 +-
 fftools/ffprobe.c                  | 2302 +++++-----------------------
 fftools/textformat/avtextformat.c  |  672 ++++++++
 fftools/textformat/avtextformat.h  |  171 +++
 fftools/textformat/avtextwriters.h |   68 +
 fftools/textformat/tf_compact.c    |  282 ++++
 fftools/textformat/tf_default.c    |  145 ++
 fftools/textformat/tf_flat.c       |  174 +++
 fftools/textformat/tf_ini.c        |  160 ++
 fftools/textformat/tf_json.c       |  215 +++
 fftools/textformat/tf_xml.c        |  221 +++
 fftools/textformat/tw_avio.c       |  129 ++
 fftools/textformat/tw_buffer.c     |   92 ++
 fftools/textformat/tw_stdout.c     |   82 +
 14 files changed, 2779 insertions(+), 1949 deletions(-)
 create mode 100644 fftools/textformat/avtextformat.c
 create mode 100644 fftools/textformat/avtextformat.h
 create mode 100644 fftools/textformat/avtextwriters.h
 create mode 100644 fftools/textformat/tf_compact.c
 create mode 100644 fftools/textformat/tf_default.c
 create mode 100644 fftools/textformat/tf_flat.c
 create mode 100644 fftools/textformat/tf_ini.c
 create mode 100644 fftools/textformat/tf_json.c
 create mode 100644 fftools/textformat/tf_xml.c
 create mode 100644 fftools/textformat/tw_avio.c
 create mode 100644 fftools/textformat/tw_buffer.c
 create mode 100644 fftools/textformat/tw_stdout.c


base-commit: 00c50a29abdd0579c441f114bb8edebf1c82461e
Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-52%2Fsoftworkz%2Fsubmit_print_graphs5-v10
Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-52/softworkz/submit_print_graphs5-v10
Pull-Request: https://github.com/ffstaging/FFmpeg/pull/52

Range-diff vs v9:

 1:  f379c77e88 ! 1:  16b2cf05e6 fftools/textformat: Extract and generalize textformat api from ffprobe.c
     @@ fftools/textformat/avtextformat.h (new)
      +#define SECTION_MAX_NB_CHILDREN 11
      +
      +
     -+struct AVTextFormatSection {
     ++typedef struct AVTextFormatSection {
      +    int id;             ///< unique id identifying a section
      +    const char *name;
      +
 2:  5ebe2a6c20 = 2:  0690336721 fftools/ffprobe: Change to use textformat api
 3:  41dab9d31a ! 3:  a9cfc15a79 fftools/ffprobe: Rename writer_print_section_* and WriterContext
     @@ fftools/ffprobe.c: static void print_private_data(WriterContext *w, void *priv_d
           }
       }
       
     +-static void print_pixel_format(WriterContext *w, enum AVPixelFormat pix_fmt)
     ++static void print_pixel_format(AVTextFormatContext *w, enum AVPixelFormat pix_fmt)
     + {
     +     const char *s = av_get_pix_fmt_name(pix_fmt);
     +     enum AVPixelFormat swapped_pix_fmt;
     +@@ fftools/ffprobe.c: static void print_pixel_format(WriterContext *w, enum AVPixelFormat pix_fmt)
     +     }
     + }
     + 
      -static void print_color_range(WriterContext *w, enum AVColorRange color_range)
      +static void print_color_range(AVTextFormatContext *w, enum AVColorRange color_range)
       {
 4:  ae472da3e3 ! 4:  cad667bb3f fftools/ffprobe: Rename AVTextFormatContext variables (w => tfc)
     @@ fftools/ffprobe.c: static void print_private_data(AVTextFormatContext *w, void *
           }
       }
       
     +-static void print_pixel_format(AVTextFormatContext *w, enum AVPixelFormat pix_fmt)
     ++static void print_pixel_format(AVTextFormatContext *tfc, enum AVPixelFormat pix_fmt)
     + {
     +     const char *s = av_get_pix_fmt_name(pix_fmt);
     +     enum AVPixelFormat swapped_pix_fmt;
     +@@ fftools/ffprobe.c: static void print_pixel_format(AVTextFormatContext *w, enum AVPixelFormat pix_fm
     +     }
     + }
     + 
      -static void print_color_range(AVTextFormatContext *w, enum AVColorRange color_range)
      +static void print_color_range(AVTextFormatContext *tfc, enum AVColorRange color_range)
       {
     @@ fftools/ffprobe.c: static void show_frame(AVTextFormatContext *w, AVFrame *frame
       
           s = av_get_media_type_string(stream->codecpar->codec_type);
           if (s) print_str    ("media_type", s);
     +@@ fftools/ffprobe.c: static void show_frame(AVTextFormatContext *w, AVFrame *frame, AVStream *stream,
     +         print_int("crop_bottom",            frame->crop_bottom);
     +         print_int("crop_left",              frame->crop_left);
     +         print_int("crop_right",             frame->crop_right);
     +-        print_pixel_format(w, frame->format);
     ++        print_pixel_format(tfc, frame->format);
     +         sar = av_guess_sample_aspect_ratio(fmt_ctx, stream, frame);
     +         if (sar.num) {
     +             print_q("sample_aspect_ratio", sar, ':');
      @@ fftools/ffprobe.c: static void show_frame(AVTextFormatContext *w, AVFrame *frame, AVStream *stream,
               print_int("lossless",               !!(frame->flags & AV_FRAME_FLAG_LOSSLESS));
               print_int("repeat_pict",            frame->repeat_pict);
     @@ fftools/ffprobe.c: static int show_stream(AVTextFormatContext *w, AVFormatContex
           print_int("index", stream->index);
       
      @@ fftools/ffprobe.c: static int show_stream(AVTextFormatContext *w, AVFormatContext *fmt_ctx, int str
     -         else   print_str_opt("pix_fmt", "unknown");
     +             print_str_opt("sample_aspect_ratio", "N/A");
     +             print_str_opt("display_aspect_ratio", "N/A");
     +         }
     +-        print_pixel_format(w, par->format);
     ++        print_pixel_format(tfc, par->format);
               print_int("level",   par->level);
       
      -        print_color_range(w, par->color_range);

-- 
ffmpeg-codebot


More information about the ffmpeg-devel mailing list