[FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract and generalize textformat api from ffprobe.c
Stefano Sabatini
stefasab at gmail.com
Wed Mar 5 22:20:39 EET 2025
On date Sunday 2025-03-02 19:44:34 +0000, Soft Works wrote:
>
>
> > -----Original Message-----
> > From: Stefano Sabatini <stefasab at gmail.com>
> > Sent: Sonntag, 2. März 2025 18:55
> > To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> > Cc: Soft Works <softworkz-at-hotmail.com at ffmpeg.org>; softworkz
> > <softworkz at hotmail.com>; Andreas Rheinhardt
> > <andreas.rheinhardt at outlook.com>
> > Subject: Re: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract
> > and generalize textformat api from ffprobe.c
> >
> > Hi,
> >
> > I'll have a look at this in the week. There are a few things which I
> > want to doublecheck (there is some ad-hoc application logic which
> > might be broken when generalizing this), but I like the overall
> > direction of this changeset.
>
> Hi Stefano,
>
> thanks a lot for your interest in this changeset.
>
> I think I know what you are talking about with regards to possible breakage 😊.
>
> In this changeset, I wanted to keep the changes compact to reduce the number of lines which needs to be reviewed. But there's a preceding patchset
>
> "[FFmpeg-devel,v2,0/8,RFC] avtextformat: Transform text writing into an independent API"
>
> which allows to follow the changes step-by-step.
>
> The part you are probably talking about is done here:
>
> https://patchwork.ffmpeg.org/project/ffmpeg/patch/01413dfbc0c60ee17c79370086abb88d78552929.1740718936.git.ffmpegagent@gmail.com/
>
>
> I have removed the specific fields..
>
> unsigned int nb_section_packet; ///< number of the packet section
> unsigned int nb_section_frame; ///< number of the frame section
> unsigned int nb_section_packet_frame; ///< nb_section_packet or nb_section_frame
>
> ..and replaced it with a 2-dimensional array:
>
> unsigned int nb_item[SECTION_MAX_NB_LEVELS];
> unsigned int nb_item_type[SECTION_MAX_NB_LEVELS][SECTION_MAX_NB_SECTIONS]; <= new
>
> While nb_item counts the total number of current items at a certain level, nb_item_type counts the number of items for each type separately.
>
> Then,
>
> WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER
>
> is replaced with
>
> TEXTFORMAT_FLAG_SUPPORTS_MIXED_ARRAY_CONTENT
>
> and instead of checking for the specific ID
> (SECTION_ID_PACKETS_AND_FRAMES), this is done with a new flag
> (SECTION_FLAG_NUMBERING_BY_TYPE). All that combined allows to
> achieve the same result as before (separate numbering of mixed array
> content sections).
>
>
> Generally, it was done in a refactoring way (not a rewrite), so
> nothing should have gotten lost, only the output writers are new
> (aviowriter, stdoutwriter, bufferwriter).
Cool, I think this should work indeed.
> >
> > On date Saturday 2025-03-01 10:01:58 +0000, softworkz wrote:
> > > From: softworkz <softworkz at hotmail.com>
> > >
> > > Signed-off-by: softworkz <softworkz at hotmail.com>
> > > ---
> > > fftools/textformat/avtextformat.c | 671
> > +++++++++++++++++++++++++++++
> > > 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 ++++
> >
> > Not sure if this is ffmpeg-ish but we might move the formats within a
> > dedicated subdirectory to make more apparent the core/components
> > distinction - anyway this is not a blocker.
>
> I'll do that, but it's not quite clear how you mean it, as they _are_ in a subdirectory already (textformat).
> Or do you mean two separate subdirectories (textformat and textwriters)?
What I mean is that we might move the text formats to a dedicated
directory (e.g. fftools/textformat/formats/compact.c) but it's not
blocking at all.
> Another question: shall I add your name/copyright line in the header
> of the writer files? It's still your code (I assume), I've just
> transformed it a bit.
Feel free to skip it, git blame does a better job at tracking the
authorship and I don't mind a lot about copyright anyway.
More information about the ffmpeg-devel
mailing list