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 _______________________________________________ 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".