[FFmpeg-devel] [PATCH 1/2] doc/Makefile: scan all files, including .c files, for Doxygen
Michael Niedermayer
michaelni at gmx.at
Sun Nov 3 15:22:01 CET 2013
On Sun, Nov 03, 2013 at 12:19:01PM +0100, Stefano Sabatini wrote:
> On date Saturday 2013-11-02 21:12:45 +0100, Michael Niedermayer encoded:
> > On Sat, Nov 02, 2013 at 12:54:31PM -0700, Timothy Gu wrote:
> [...]
> > > 1. The 2 types of Doxygen should be clearly documented on
> > > website/documentation and also how to generate them.
> >
> > yes
> >
> >
> > >
> > > 2a. The Doxygen on the website should be generated by `make apidoc`, not
> > > the current form (with the other patch in the patch set which fixes style
> > > of course).
> > > 2b. An alternative solution to 2a is to change the section name on the
> > > website from "API doc" to "Doxygen doc for FFmpeg developers", but this
> > > method should not be used as not many FFmpeg devs use Doxygen AFAIK.
> >
> > 2c. build both variants on the server (though i dont volunteer
> > setting that up)
> >
> >
> > >
> > > 3. Optionally add another build rule in Makefile.
> >
> > this could make sense, anyone else has oppinons about that or what
> > exact command the 2nd rule should have ?
>
> I'd say that our currently generated Doxygen is confused at best.
thats the result of it being practically unmaintained
> What's the supposed use of modules, what's the supposed use of
> "namespace"?
>
> Also, but unrelated, library definitions are a bit funny, for example
> I didn't know libavfilter was a "graph-based frame editing library",
> which is a pretty wild interpretation of what I though libavfilter was
> all about.
>
> We should probably get rid of namespace altogethers, and try to give a
> reasonable definition of "module". For a C project each "module"
> comprises a file, but for example here:
> http://ffmpeg.org/doxygen/trunk/group__lavu.html
>
> I can only see the version.h file.
>
> As I see it, "modules" as currently defined are an arbitrary
> schizofrenic half-baked attempt to provide some form of
> classification/grouping.
that would probably be an accurate definition of the current state
>
> For example in case of libavutil:
>
> Crypto and Hashing
> Maths
> String Manipulation
> Memory Management
> Data Structures
Generic Data Structures
> Audio related
> Error Codes
> Logging Facility
> Other
>
> Audio related comprises several C files and seems too much
> coarse-grained, same for Data Structures, not to talk about "Other".
>
> Things are much worse in the case of libavcodec:
> Decoding
> Encoding
> Codecs
> Internal
> Core functions/structures.
> Basic definitions, functions for querying libavcodec capabilities, allocating core structures, etc.
> Utility functions
> Miscellaneous utility functions related to both encoding and decoding (or neither).
random braindump:
Bitstream
Arithmetic / Range coding
Linear transforms (DCT, FFT, Wavelets)
Motion Compensation
Motion Estimation
Rate control
Quantization / Dequantization
Prediction
Error concealment
Individual codecs / codec specific code
[...]
> BTW we should be probably get rid of all the imported trash from other
> projects and from the scripts, such as:
> http://ffmpeg.org/doxygen/trunk/namespacenormalize.html
that page is confusing
>
> ...
>
> Much to the point, about the API to generate. I don't think developers
> will make any use of internal API, so we should focus instead on
> giving a sane display of the public API.
>
> Indeed per-policy we don't require developers to document internal API
> (and for a reason), but they are de-facto required to describe the
> public API (and again for a reason).
I think its very important to document internal API (not arguing about
doxygen here but rather in general) because we need a reference too
for all the ff_ & avpriv_ functions and to a lesser extend the
static functions. Especially when looking at code from other developers
or code that we wrote 5 years ago.
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
No great genius has ever existed without some touch of madness. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20131103/882d1f0f/attachment.asc>
More information about the ffmpeg-devel
mailing list